Unfortunately, not every software development project is a success. In fact, according to the Standish Group Chaos Report 2009, only 32% of software projects were successful. As many as 24% of the projects failed, and 44% were challenged (cost overruns, content deficiencies, etc). One of main reasons why this happens is insufficient, badly setup or absent project management.
Having over the last couple of years successfully delivered tens of projects to our clients worldwide, we have discovered that one can significantly increase the chance of their project succeeding by following a number of simple recommendations.
Tips to help you make your project a success
1. Know what you need
They say that if you don’t know where you are going, you’ll end up someplace else. This is very true for software development. Over and over again, we come across clients who would like to have a website/app developed, but do not have a clear idea of how their product is supposed to look and feel. In these cases, a lot of development time is spent collecting the requirements, and very often, if the product concept wasn’t well thought out by the client, they change their initial requirements after the development has already begun. Naturally, this often leads to time overruns and additional costs – the problems that could have easily been avoided, had the client provided a detailed product description in the very beginning.
2. Hire experience, not a billing rate
It is very common for people to hire contractors based on the lowest bid. We all want to complete the project for as little money as possible. But do you want to hand your project to someone who doesn’t really understand your requirements or who doesn’t have the necessary experience, even if this person meets your budget? Hire only the people who you feel thoroughly understand your goals and needs, and know the best way to implement them.
3. Plan smart, use project management tools
Define realistic milestones and stick to them. Both you as a client and your development team should be on board during the planning process and always know in which direction the project is going. It is best to have project management specialist in the team who will facilitate and setup the process.
4. Never assume anything
It is easy for both clients and developers to assume that everyone understands them. But does everyone in the team really know what you mean? Do they know exactly what’s expected of them or have you assumed they know? Remember: poor communication can (and most often does) lead to confusion and difficulties later in the project.
5. Count tasks as done only when they’re 100% complete
It’s very common for people to “round up” their task completion status. Therefore, it is important to use explicit criteria to determine whether a step is actually completed.
6. Re-plan when necessary
Don’t forget to take periodic snapshots of project progress and health. If there is a significant deviation from the project plan, do not be afraid to change the plan. Consider reducing the scope of the work, and try not to be unreasonably optimistic.
7. Involve the user
You have finally made the decision to create this product that you have envisioned in your head a million times, and you are not going to release it until it’s absolutely perfect. This is natural for our clients to think this way. However, software development is all about creating a product that is useful and usable. You will never know whether your product will actually help your end-user to solve their problem until you get feedback directly from the users themselves, and it’s better to do it as early in the development process as possible.
8. Cultivate team spirit
Especially when your project includes people from different companies, everyone needs to be aware of the common vision that every person on the project is working toward. Each team member needs to know their individual responsibilities, as well as the whole context within which those responsibilities exist.
9. Plan to make changes after quality control activity
Testing and technical reviews almost always find defects or other opportunities for improvement. Don’t count on the fact that you won’t have to do any rework. Your project timeline should include rework as a discrete task after every quality control activity.
10. Close your project effectively
It is usually the projects which do not have a strong closure that have the potential to continue to consume resources. Both the development team and the customer need to agree that all predetermined critical success factors have been met. Confirmation of the project delivery, testing, and release must be agreed upon.
Check out our best tips for managing a remote team here.