Software Is Not Manufactured
Software development is a creative process that requires invention. Even the simplest projects have unknowns. A new software development approach is necessary to meet the needs of the fast-moving modern business climate.
The Art of Programming
There is an unfortunate tendency among non-IT people to perceive software development as a manufacturing process. This tendency is understandable. We have inputs called orders, we have raw materials in the form of servers and PCs, and we have workers in the form of programmers who assemble the orders based on what options they want, and they do this to a particular timing based on the needs of the customers. The length of time it takes to complete an order—three weeks, three months—depends on the size of the order.
The perception that software development (SWD) operates by the same principles as manufacturing processes leads to mistaken assumptions, false beliefs, and disappointing outcomes. To be blunt, SWD is not a manufacturing process.
SWD is an engineering and innovation process. It is invention at its very core. By definition, anything that has to be developed doesn't exist. Things that don't exist are far less predictable than things that just need to be assembled. That's an extremely important concept that is often lost in the dialogue between business leaders and IT leaders.
Small SWD projects, such as creating a new report with a couple of additional fields, are relatively ...