I would have put this in Development but it seemed to be of a wider scope than strictly madesafe itself. I was thinking that there will be many apps developed and many more being developed and one of the ways non programmers could help is by breaking down the logic on how the program would actually work. From what I understand of programming development before a program can actually be written it needs to be planned out to the smallest detail because programming is very technical and precise, you can trip over lowly semicolons. So what I was thinking is having an app designed to translate code into human readable sentences (or vice versa) and also have groups focused on just planning out and breaking down all these apps that are being proposed. That way when the developers go to actually code them the heavy lifting has already been done and they already have a detailed plan laid out before them. Well it’s a thought anyway.
There are different approaches to software development, and probably quite a few I don’t know that have come along since I was involved. So sometimes the process might be as you describe, but only sometimes - generally only in mission critical systems (military, safety critical) because getting everything tied down in detail makes things very expensive. Generally its a more staged and iterative process, where there’s more a “centre of gravity” moving from requirements through specification, design, implementation and testing (very crudely).
What you are describing sounds quite like a “tool” that is sometimes used in specification and/or design called “pseudo code”. Basically writing out longhand. This makes it easier for others to review (especially but not only non engineers) and provide input to. I helps manage complexity to. I would guess there are automation tools to help with this these days, and maybe even some formal syntax’s and cross compilers to spec/design etc.
I moved 15 posts to a new topic: Trying out MaidSafe development environment (e.g. with Qt framework)
Trying out MaidSafe development environment (e.g. with Qt framework)