Building a successful software development project in general is not an easy task. Building a quality piece a software on-time and on-budget is really challenging. Based on this article written by the team at McKinsey & Company in 2012, about 45% of large IT projects run over budget and 7% over time. Although there are no specific numbers for success rates of software development projects for small businesses, I believe the ratio is the same if, not higher. Let’s consider a “fail” those projects whose time and budget go over the estimated.
The reasons for running over budget and/or over time are many, but based on my experience, here are my top 5 reasons why software development projects in (or “for”?) small businesses fail.
1. Badly defined project scope
Most organizations fail to recognize the importance of spending the necessary time to plan and clearly define project objectives and expectations. Making sure to fully understand what it is the client needs from the software is also key to avoid this mistake. We utilize the exploration phase to go over all these questions; and even if the client arrives with an outlined project, it’s advisable to go over it together (always including the development team).
2. Inaccurate estimates of needed resources
Building custom applications ensures that clients get what they need, but it also lengthens the development project, increases the chances of bugs, and increases the risk of specification changes during the development process. The right platform can help consolidate common development tasks which will improve delivery time.
It is perceived that the major causes of inaccurate estimates are client’s changes in their requirements and a lack of understanding of those requirements, but it’s management control issues (lack of project control comparing estimates and actual performance, lack of careful examination of the estimate by the software department) what matters when predicting inaccurate estimates.
3. Poor Communication
Disrupted communication among clients, developers, and users. The problems start at estimating, continue during project management, and burst at delivery. Open and constant communication with every part involved throughout the project is important for user acceptance.
Users are a piece often in disconnect with the rest of the team; they are the front line of every project, but fail by including them in conversations too late in the projects. Users understand the details of organizational processes and the daily transactions required in the software, so keeping them in mind is essential.
4. Sloppy development practices
The best examples (and worst habits) are: poor or rushed testing, using slow locking revision control systems, waiting until the end to engage users, buying commercial apps when unnecessary, failure to prioritize bugs, and avoiding to take clients through the company’s methodologies before starting a project.
5. Poor project management
A lot of organizations still put their practices before their people, forgetting that bad project management can incur in enormous financial costs, and even higher costs for the team.
There have been multiple takes on solutions for this issue; the behavior-based project management approach brings up the importance of emotional involvement from stakeholders to improve engagement and performance. It uses scientific research on human nature and the workplace to develop more effective project teams and to enable better project delivery.
Adding to the project management problem: not assigning the right person to manage the project… but we can talk about this next time.