By David Gelperin, CTO, ClearSpecs Enterprises
40-60% of larger projects fail. Fewer smaller projects fail. Therefore, do smaller projects.
It’s safer to do projects you have done successfully before, e.g., build another ecommerce website. Therefore, repeat successful projects.
If you must do something larger and unfamiliar, identify its hazards and how you plan to mitigate them.
Functions are the goals that customers care about and focus on. Developers are told to focus on customer value. Qualities like security, privacy, reliability, and robustness are goals that customers rarely think about.
Functions are easy. Qualities are hard. When system failures make the news, e.g., security breaches, it is rarely because of a functional failure. Qualities are commonly missing from software estimates and inadequately supported in operational software.
Quality may be free, but qualities need investment. Providing a quality is nothing like providing a function. Qualities are dangerous because they are unfamiliar and out of focus.
Current Agile development ignores qualities or treats them like functions. Qualities are incompatible with iterative development. Therefore, current Agile development is dangerous when used on larger and unfamiliar projects.
There is a hybrid Agile process that retains the power of Agile, but mitigates its quality risk.