There are many more ways to fail than ways to succeed. (Anything that can go wrong, probably will, right?) Yet most software project failures are attributable to a small set of common mistakes. Avoid these and your chances of success increase dramatically.
Here’s a short list of common, but often overlooked, project mistakes. Review this list and take action to mitigate your risks. Your projects will be more successful, more often — and so will you.
1. Relying on individuals rather than teams: Many companies have one or more superstars. These employees get stuff done and make things happen. While it’s natural to rely on these superstars and give them even more responsibility, it’s counter-productive.
Cross-training is essential. People should work on a variety of projects and be exposed to varied situations. By encouraging collaboration and shared responsibilities, workforce morale improves and the business benefits.
2. Setting unrealistic project timelines: Deadlines that seem a long way off will morph into tight, aggressive commitments over time. As the details unfold, what appeared to be simple may turn out to be nearly impossible. Software projects are never fully understood at the outset.
Maintain some flexibility. Identify risks and possible mitigation steps before committing to a deadline. Keep everyone informed throughout and be prepared to negotiate the feature set.
3. Living on the edge: Technology suppliers are always looking for beta testers and trying to find buyers for the latest and greatest. There are times when it makes sense to be early adopter but beware of the risks. Using a measured approach involving pilot projects usually makes more sense.
Also, watch out for the opposite extreme. Keeping legacy systems around long past their prime can be costly and disrupting. Keep track of operating costs and downtime. Know when to move on.
4. Reinventing the wheel: Too many companies develop software in house that could readily be purchased. Why build a CRM application or a content management system when so many good packages already exist?
If you can’t resist the urge to create your own, start with an open-source package and customize it to your needs. Use scarce in-house resources are for projects that deliver uniqueness and offer a competitive advantage.
5. Failing to consider scalability: Systems that pass pilot implementation testing are not necessarily ready for enterprise deployment. Even when fully deployed, adoption may start off slowly and ramp up over time. Will your systems be able to handle it?
Watch for interdependencies. As systems grow in size and complexity, they develop many more interdependencies. Any weak link could drag down the entire operation.
6. Not addressing the needs of mobile and remote users: System and network management tools are designed to take care of PCs attached to the corporate network. What about employees who spend most of their time away from the office?
Be sure to offer anti-malware tools, backup options and email support that do not require a connection to the corporate LAN. Leaving these road warriors exposed to the wild will jeopardize the entire company.
7. Relying on a single vendor: Whether it is an operating system, an application suite, a service provider, or your network infrastructure, exclusivity is not good business. Picking one vendor and dealing exclusively with them makes life simple, right?.
There’s only one organization to blame when problems occur. However, vendor exclusivity limits your options and locks you in. Select a primary vendor and have a secondary one available for special needs or odd jobs. Keep your options open.
8. Never killing failed projects: Face it, some projects will fail. Some very big projects will fail catastrophically. Learn to let go.
When a project repeatedly misses major milestones and incurs cost overruns, it’s time to cut your losses. Always have an exit strategy or a fallback plan. Don’t assume that every project will succeed.
9. Mismanaging your data center: Keep your data center neat, orderly and controlled. Spaghetti cabling, unlabeled equipment and poor ventilation will cost time and money. Every time you need to add or change anything you’ll waste hours deciding what to do and how to do it.
Avoid having production servers scattered around the office. They will gather dust, overheat and cause endless problems. If you don’t have the space for a full-blown data center, at least find an isolated, controlled area big enough to house mission-critical servers.
10. Ignoring the human side of security: Elaborate security controls and enforcement are ultimately only as good as the people that use them. Social engineering tricks have proven successful in getting innocent people to divulge passwords. User training is essential to good security controls.
Don’t get carried away with overly zealous password policies. If your users have to employ overly complex passwords and change them often, they’ll write them down in plain sight. Keep policies clear and consistent to avoid undermining your goals.