Eight Characteristics of Successful Software Projects
We do a lot of software projects at Xebia Software Development. We work most of the time at our client’s location, in their teams. Together we improve the quality of their software, their process, and engineering culture. As such, we’ve seen a lot of projects play out. Most of these efforts succeeded but some failed. Recently we did a retrospective to learn from these experiences. The result is this opinionated list of characteristics of successful software projects.
1. A clear and realistic goal
You know what the short and long-term goals are. You fundamentally believe that reaching these goals matters. There is a sense of urgency, people are unhappy when you don't deliver.
2. Powerful team-leadership
Your team leader knows what business value to deliver. The surrounding organization, as well as the team, respects, and honors his/her choices. This leader is a single person who takes full responsibility for the results of the team. In scrum terms, this is what we would call a "great product owner".
3. Sense of ownership
Your team feels responsible for the outcome of the project. You spend the customer’s money as is if it is your own, both in respect to functionality as to the technical solution.
4. Commitment to quality
You can count on each member of your team to deliver high-quality work on time. It is ok to give feedback when standards aren't met. Issues are resolved in time. You have proper automation in place for testing and delivery.
5. Getting things done
It is possible to get things done. 'Done' means business value delivered to production. Your team can independently deliver iterations to production. You go live from day one. If you are dependent on other parties, they deliver with quality and on time, or don’t impact your results.
6. Psychological safety
You can take risks in your team without feeling insecure. Your teammates give and receive honest feedback. You learn from each other. Everybody is open about the progress and structure of their work and their own strengths and weaknesses.
7. The right skills in your team
You have all the skills in your team that are necessary to accomplish the work that needs to be done. Each team member feels included and is able to contribute to the results of the team.
8. Your tech-stack is a right fit
The technology fits the client, the project, and the expected scale. It also is sustainable, which means that you can find people that can take over if either one of your teammates decides to move on to other projects. The solution fits the problem, not the recent buzzwords or latest hype.
This list draws from the collective experience of our consultants at Xebia Software Development. When your have the feeling your project isn't going all that well, you can use this list to start a conversation.