We spend a lot of time examining software project failures but it’s equally important to understand why some projects succeed. Here’s a short list.
- Commitment. The business stakeholders and the technologists are committed to the project — not just at the outset but throughout. This takes intense collaboration. There is also an executive sponsor or champion — someone with the authority to make things happen. (If there is a client-consultant relationship, this is doubly important.)
- People. The right team is assembled. There is an appropriate mix of senior, mid-level and junior people. The skill sets are also mixed and complimentary. Everyone understand their role and how it fits into the project. Most importantly, there is a core group of exceptional people who are capable of leading the project both administratively and technically.
- Goals. The project has clear goals that everyone understands and accepts. This includes the critical dates that the team has to hit. The scope of the project is narrow enough for everyone to comprehend and embrace yet wide enough to deliver value to the business. The constraints placed on the project are reasonable and realistic.
- Communication. Frequent and open communication is encouraged. Everyone is willing to share information and thus everyone knows what’s going on. Whenever the team reaches a milestone or achieves a major successful outcome, everyone celebrates.
- Focus. The team is focused on getting the project done. They are not distracted by cultural, hierarchical and bureaucratic barriers. They use informal contacts and relationships to make things happen.
- Learning. Everyone has the opportunity to learn and grow during the course of the project. They are encouraged to test and experiment. When mistakes are made, they are leveraged as learning opportunities.
- Change. The team deals with change effectively. That means they don’t try to block change but they don’t throw the doors wide open and allow anything to change any time. They find a middle ground and accept change as an opportunity to learn and improve the final result.
- Environment. The team has the right environment for getting the job done. This covers everything from office space to desks and chairs to software development tools.
Every situation is unique, of course, but these traits are common to most successful software projects whether they follow a prescriptive approach like waterfall or an agile one like Scrum.