In 2009, the Standish Group published a study covering 40,000 software projects over a 10 year period. They discovered that 51% were “challenged” – over time, over budget or lacking critical features.
Even worse, an estimated 24% of all projects failed completely and were cancelled prior to completion; or were delivered and never used.
Now KRS knows that stats can be manipulated, and our experiences are rather different. But for many South African companies, these figures are not that surprising.
Is there a magic bullet? We don’t think so, but there are some very practical ways that companies can reduce risk, and make sure that their projects don’t become another failure statistic.
Eliminate Waste
- Make sure you don’t build the wrong thing: we all know business priorities can change, so apply your minds to an honest appraisal of the business benefit of your proposed new system.
- Failure to learn: many organizations (and people) repeat the same mistakes over and over again.
- Don’t allow (or cause) Thrashing: many practices interfere with the smooth flow of delivery, such as task switching, causing organizations to deliver less and less value whilst using ever more resources.
Build Quality In
- Final QA should not find defects: your single goal is to find and fix defects as early in the development process as possible.
- Test Driven Development: you need a suite of tests (unit tests, end-to-end tests, and integration tests) that can be run on each new iteration of the software. We’re really serious about this one – if you get Test Driven Development right, you will never be a failure statistic!
Deliver Small and Fast
- Companies that compete on the basis of speed have a big cost advantage, deliver superior quality, and are more attuned to their customers’ needs.
- Managing Workflow is a lot easier than Managing Schedules.
- The best way to establish reliable, predictable deliveries is to establish reliable, repeatable workflows with iterations or a kanban system.
Improve Relentlessly
- There is no such thing as “best practice”. Please quote us on this!
- Use a Scientific Method: establish hypotheses, conduct rapid experiments early on in a project, and implement the best alternative.
- Measure: measure development velocity, measure business value, measure customer satisfaction. Then improve.
Respect People
- Engaged, thinking people provide the most sustainable competitive advantage.
- Teams thrive on Pride, Commitment, Trust, and Recognition.
References: poppendieck.com/