I don’t know about you but I like Halloween. It’s fun. Kids get to wear costumes and collect candy. Adults get to engage in fantasies of their own and eat the leftover candy (along with some of the candy their kids collect). It can be scary for some but it’s all in good fun.
Software projects can also be scary at times. Many of them start off wrong and go down hill from there. Even those that get off to a good start often succumb to predictable events. I’m not writing about disaster planning or responses to catastrophic events. The situations in this article can be assessed and mitigated from the get go.
So in honor of Halloween, here are 13 frightening reasons why your software project will fail. They are all readily foreseeable at the outset of a project. You simply have to look for them.
- You have the wrong people on your team. Simply assigning “available resources” to a project is the wrong thing to do. Assign the right people — that is, those with the right skills and attitude.
- The business folks don’t know what they want even though they think they do. Most people don’t really know what they want (or don’t want) until they see it. By then, it’s often too late. Combat this reality by delivering early and often.
- The target date is far too aggressive. Everyone wants everything ASAP (as soon as possible). ASAP is fine. “Everything” is not. Be selective about what you can deliver by the drop-dead date.
- End-user expectations are way too high. Target dates, feature sets, quality levels, etc. are often out of control. They simply do not align. Work with the business stakeholders to create a vision of what success looks like.
- Everyone involved is more interested in protecting turf than getting stuff done. People are often more loyal to their departments and their managers than they are to the project team. Make it clear that the project team comes first.
- The development team doesn’t have the right tools for the job. Trying to save money by reusing existing development tools rather than adopting the right ones for the job is foolish. Invest in the right tools.
- The developers lack the experience and/or training to accomplish the tasks. If the developers are blazing a new trail for themselves without adequate support, trouble will follow. Get them trained and coached appropriately.
- The senior executive team isn’t on board. There must be an executive sponsor. Without one, the project will lack a voice who can remove impediments and make things happen. Find a sponsor.
- The existing technology infrastructure can’t handle the anticipated work load. Developing a big, fancy application that will run on antiquated desktops, servers and networks is asking for trouble. Evaluate the infrastructure and upgrade as needed.
- The underlying technologies will be outdated before the software is delivered. Reusing old technology on a project destined to take many months or even years before final completion is risky. Allow enough time for technology evaluation and replacement.
- Major software components are still emerging and not yet proven in mission-critical applications. This is the opposite extreme. Going too far out on the technology curve is also risky. Allow extra time for testing and implementing alternative approaches.
- The development team spends too much time meeting and documenting. Meetings and documentation are necessary evils — they can’t be totally eliminated. Yet they can be huge time sinks. Always question the need for any meeting or document. Keep them short.
- No one is having any fun. If team morale is poor, productivity and quality will suffer. Building great software is hard and stressful work but it can still be fun. Allocate time for the team to stop and think as well as relax a little.