Software Reflects The Process That Creates It
Of all the ‘laws of software’ that I subscribe to, this one is one of the most fundamental, and unwavering. I cannot find an exception to it, and years of experience reinforce it for me. I can look at a chunk of source code, or an operations manual, or even a build script, and see the effects of the software development process used to create the artifact.
Process affects architecture. If you use agile techniques, you will not only get your results in a different amount of time and features will appear in a different sequence than if you used iterative spiral techniques, but the software itself will have a different structure, different patterns, and different interfaces.
Just making an observation. Probably not even a controversial one, but one that bears making.
Software reflects the process that creates it.
Corollary:
If you want to improve the quality of the software you produce (regardless of how you measure quality), you can change tools, and you can change information, and you can change training, to your heart’s content… but the big effects will come from changing the process.
Comments
Anonymous
November 26, 2008
PingBack from http://blog.a-foton.ru/index.php/2008/11/27/software-reflects-the-process-that-creates-it/Anonymous
November 26, 2008
I believe that this is another manifestation of Conway's law (http://en.wikipedia.org/wiki/Conway%27s_law).Anonymous
November 29, 2008
Hi Udi, Thanks for the link. I wasn't aware of who had claimed credit for pointing this out. This law predates my time in computing, that's for sure. It is somewhat obvious, but it bears repeating. The implication is interesting, of course, because people will try to change the quality of software without changing the processes used to create it. --- NickAnonymous
December 07, 2008
The comment has been removed