Voltaire:“Common sense is not that common”
Three essential ingredients characterize an effective software development process:
- Treat every software element according to its presumption of quality
- Allow for speedy iteration
- Make engineering judgment the center piece of your process
The first ingredient requires a methodology to estimate the presumption of quality of software in order to plan a concentration of effort and talent on the areas that will require it the most. Conversely, a process which allocates resources evenly is bound to produce mediocre results at best because budget constraints will starve areas that need the most attention and put resources where they are not needed as much.
The first ingredient recognizes the variability of human factor inherent to any human endeavor.
The second ingredient is a consequence of the recognition of the way the human mind works, namely in an iterative way. A process that only allows the “fast forward” methodology is bound to conflict with human nature and therefore be less than optimal. In fact, processes that call for “do-it-right-the first-time” instill fear of mistake, slow the output down and lower productivity. Conversely, managers who recognize the way the human mind works and who design processes accordingly will reap increased staff productivity.
The third ingredient is based on the fact that software process data cannot be assessed blindly because it is the product of variable human beings. Therefore, data - an important product of any process - must be carefully analyzed by skilled staff and understood before it is acted upon. Conversely, processes which look at software data in the same way manufacturing does (the “bean counting syndrome”) are bound to lead to poor decisions.
Most common processes for software development can accommodate simple and intuitive modifications which will unleash productivity and increase software quality
Let us see how.