My understanding of success has evolved over the years. At first, I thought of it as a pyramid of levels, a la the CMM:
- Level 1: The software works
- Level 2: It's maintainable
- Level 3: It provides value
- Level 4: It provides more value than it costs
- Level 5: It provides the most value possible with the resources used
Later, I realized that there are actually multiple aspects to success:
- Organizational success is necessary for a product continue to receive funding.
- Technical success is needed to keep maintenance costs under control
- Personal success is required to receive support from stakeholders, prevent sabotage, and gain team member commitment.
Recently, Jurgen Appelo pointed me at an essay he wrote that discusses (among other things) the nature of success. He takes a completely different approach. In Jurgen's view, success is the absence of failure. One thought that occurred to me as I read is that we could measure success as the length of time a product is in production. An intriguing idea.
It's a fascinating essay, long, but worth the read. Take a look.