Why Software Projects Fail: Lack of Planning
There is one fundamental reason many software projects fail - because we're all human. In this month’s series of blog posts, we’re taking a deeper look at three human factors to consider in your software projects. For more, check out the series overview post and learn how lack of empathy can lead to failure.
We all know the old proverb about the best-laid plans. That’s why the first thing you need to do in planning your software project is to build what we're calling "intentional flexibility."
Think about the best stage presentations or performances you’ve seen. There’s usually a feeling of control balanced by flexibility. The control makes the presentation feel smooth, confident, and polished. The flexibility creates spontaneity and allows for unexpected interactions with the audience.
The key to "intentional flexibility" is preparing so well that you can plan for spontaneous moments and surprises. The best presenters and performers practice, plan and prepare more than anybody. But as part of that preparation, they build in moments or options for spontaneity to arise.
You want a similar approach to your software project planning - plan so well that you’re ready to adjust to whatever problems arise.
The Project Management Institute has started calling organizations that have this type of flexibility the “gymnastic enterprise.”
“These organizations and their project teams combine structure, form, and governance with the ability to flex and pivot—wherever and whenever needed. But most of all, gymnastic enterprises focus on their people, knowing that organizational performance is a well-choreographed dance of individual performances.” - PMI 2021 Pulse of the Profession® survey
Source: PMI 2021 Pulse of the Profession® survey
Here are three ways you can create “intentional flexibility” within your software project plans.
Set Achievable Goals with Realistic Timelines
One of the biggest reasons software projects fail is because they run out of time. In PMI’s 2021 survey, respondents estimated that a little more than half (55%) of their organization’s projects were delivered on time in the last 12 months.
When a project misses a deadline it’s often because of unclear or unrealistic expectations. Goals that are vague or too broad leave teams unsure of where they are and how to get there. Timelines driven by business needs often sacrifice good design principles and usability standards. This can all sabotage long-term success in favor of meeting a short-term deadline.
Set high project goals and then break those goals into smaller achievable chunks. That helps teams feel excited to generate great ideas and empowered to execute on them. Involve team members in setting the timeline so they hold each other accountable for meeting deadlines.
Most important, build in some buffer for unforeseen circumstances.
Identify (and Empower) the Right People for the Job
It’s not enough to throw a bunch of people at a software project. More is not always better. Plenty of projects fail because of too many cooks in the kitchen.
You need the right people with the right mix of skills balanced and calibrated to the needs of the project. Assess their skill sets and align those skills to the right roles. Then empower them to make change happen.
When you empower people to use their strengths and their judgment, you help them get more enjoyment out of their work. That enjoyment is infectious and leads to an innovative mindset across the team.
Clearly Define Your Scope and Budget
Few things will get a team’s budget cut faster than a failed project. Successful software projects have clear scopes and set budgets before any work begins.
This doesn’t mean the scope and budget can’t change. But if you leave either one open to interpretation without clear boundaries, you’ll end up with a sprawling expensive mess.
That means being honest with management and your team about what you can and cannot do. Clear communication (something we’ll dive into in the next post) is key to making sure everybody understands the expectations and available resources.
Of course, it's always difficult to plan for every aspect of a project. That’s why it’s important to not be too optimistic and promise too much with too little. Try to plan for known and unknown obstacles by using historical data or previous experience as a guide. Budget for three scenarios: best-case, worst-case, and somewhere in between.
Give your project team the leeway to do their best work and account for mistakes or unforeseen challenges. This will help avoid bad bottom-line surprises down the road.
Need Help Planning Your Next Software Project?
As a consulting agency, we have to be experts in allocating the right resources to the right work at the right time. It’s our lifeblood and the way that we create meaningful experiences for our clients and their customers.
For a look into one of our secrets, check out how we use Tetris for team building and efficiency.
If you’d like a more direct hand, drop us a line and let’s talk about how we can build intentional flexibility into your next project.