When it comes to software development (agile or not), what’s most valuable to your company (in alphabetical order)…
Pick one (and only one). Before you answer that, let me better define the choices.
The “Features” of the software refers to its capabilities and its capacities. In other words, capabilities are what the software does and capacities are how much it can do. Features are mostly controlled by the business requirements though the development team may include additional features that the business team cannot anticipate.
The “Quality” of the software refers to how the software does things both functionally and structurally. At a functional level, the software should meet business needs and be suitable for the business processes being supported. At a structural level, the software should be designed well and be maintainable and extensible.
The “Time” element is the simplest of the three to define and perhaps the most difficult to nail down. It is the target date. When must the software be deployed into the production environment or be packaged and ready for sale.
So, which is most important … Features, Quality or Time?
Many people will argue that the three are equally important. They might say something like, “All the features listed are important; they have to be high quality; and the target date must be met.” That’s not an answer. It’s an excuse. If the software development team doesn’t have clear direction, each developer will set his own priorities. The resulting mix of personal decisions will damage the customer’s perception of the software.
Good companies and strong managers are able to isolate what’s most important — the single, most-critical, success factor.
No company wants to admit that it cuts corners on Features or Quality yet great companies do it routinely. Apple, Google, HP, IBM, Microsoft, Oracle, and everyone else have released software that they knew was not Feature complete or Quality ready. Yet, they released it anyway. Why?
- To get customer feedback
- To learn more about the marketplace
- To obtain first mover advantage
- To solve 80% of the problem for 80% of the customers
- To generate revenue so they could continue to develop the software
Don’t seek perfection (unless you have boatloads of money and time). Force yourself, your team, and your company to prioritize. You can’t have everything but you can have what’s most valuable — if you’re willing to choose.