We all know industry reports (particularly the infamous CHAOS report of the Standish Group) are always saying that only a small number of software products are “successful”. But what does that mean? People have been struggling to find a proper definition for years and they are still not in agreement. One traditional view has it that a product is successful when it is delivered on time, within budget, and according to specifications. Others say that a product is successful when it matches a customer’s expectations, paying back its investment in the form of business value created, as laid down in a properly defined business case. Another view, often advocated by agile experts, is that a product is successful when the stakeholders are happy, whatever this may signify at the time of delivery. But I think they are all wrong.
Do you think dinosaurs were successful? And do you think humans are successful? I suspect that many people answer ‘no’ to the first question and ‘yes’ to the second. However, dinosaurs have ruled the earth for about 150 millions years, while the family of hominidae (all species of great apes) now exists for six million years — with humans wreaking havoc on the planet’s surface for less than 200,000 years. It appears that humans still have plenty of time to prove that they are more successful than dinosaurs. And do you think horses are successful? My daughter probably does, but she wouldn’t have found the late and great paleontologist Stephen Jay Gould on her side. Gould pointed out that almost all species of wild horses (of the Equus ferus family tree) have vanished from the earth. Only Equus ferus caballus (the domesticated horses) can be considered successful in the sense that they have adapted and allowed Homo sapiens to sit on them, which is likely to have prevented their extinction. I think it is apt to say that every species is a success until it fails and goes extinct. Given the fact that 99.9% of all species are now extinct, failure appears to be in abundance.
I believe that every software product is a success, until it fails.
I have known products that were a success for only a very short time, until the customers cancelled them because they finally figured out what they really wanted, which was something completely different. Even though these products never made it to their first release dates, team members and customers had been working happily together, but the business cases changed and they ran out of budget. I have known other products that were on time, within budget and according to specifications when, at the time of their first release, it appeared that they could not live up to our customers’ expectations. Did they fail? Not really, because we found ways to recover from our errors, adapting to the new feedback, and delivering versions that won back our customers’ trust. I also know products that are still being funded, several years after their first release date, despite the fact that they never returned their investment. It seems they are able to postpone their failure by retaining some stakeholders’ support, for whatever reasons that may be. Maybe some people see value in these products simply because it gives them something we never had anticipated. Maybe they just enjoy sitting on them.
Last year I bought myself a new car, and I consider it a big success. It looks fast, fancy and furious; it has a big sound system, and it has blue lights shining on the pedals. (I really like the blue lights.) However, those are not the main reasons for my contentment. I love my car because I love driving. To me, a car is a success as long as it takes me where I want to go, in a comfortable way, and without giving me any trouble. Basically, anything on four wheels that goes faster than I can walk is a successful vehicle to me. This may include quads and golf carts, and skelters with non-climate-neutral propulsion.
Success is the continued absence of failure.
In my opinion, other definitions seem to be insufficient. Products can be of some value to someone, even though they are not on time and within budget; even though they never returned their investment; and even though they may not satisfy all stakeholders. Species are successful until they go extinct. My car is successful until the day it fails to please me. Products are successful until the day they have lost all users. The agile principles of continuous adaptation, embracing change and customer involvement are all intended to postpone that moment. But all software products will fail someday. I’m 99.9% sure of that. Just make sure to remain agile so you can escape that death penalty for as long as possible.