Here are the top reasons software projects fail, according to a report by the Standish Group. We’ve touched on these throughout the book, but I wanted to provide a quick refresher.
1. Start Working With Incomplete Requirements.
How to Avoid it: Work with the client or stakeholder and write out a project roadmap before you begin work on the project. The planning stages of a project are vital and valuable. If needed, it can be treated as a separate project and billed accordingly. Don’t ever feel bad spending time and billing for a service that is helping you prevent the no. 1 cause of project failure.
2. Don’t Keep The Stakeholder Involved.
How to Avoid it: If you have any stake in the success or failure of a project at all, even if it is just the desire to protect your reputation or have an excellent case study, keeping the project owner involved is your responsibility. Regular check-ins and progress report help. Before starting a project, make sure expectations about communications are known and agreed upon by all parties.
3. Working Without Adequate Resources.
How to Avoid It: lack of resources is often due to a lack of time or budget, which are out of your control. The best thing to do is try to figure out if there are time and money constraints, and if the project can’t be met within those constraints, to avoid it altogether. If avoiding the project is not an option, then try to mitigate the damage by communicating early, and finding compromises.
4. Attempting to Meet Unrealistic Expectations
How to Avoid It: Like #3, the best solution is to gauge expectations and prevent the project altogether. Also like #3, if working on the project is unavoidable, or it’s too late to bail out now, mitigate expectations as best you can. Work with and educate the client on what is reasonable to achieve in certain timeframes with certain resources.
It also helps to realize what is out of the control of both you and the client. Sometimes no matter how hard you work or how much it seemed like a good idea, a project may not fly or get the acquisition that you wanted.
5. Working on a Project For Someone Who Doesn’t Care
How to Avoid it: Unless you are a one-man startup, you are never 100% accountable for the success of a project. Clients, project managers, and project owners all have a stake in the project as well. You will need feedback and resources from them throughout the project lifecycle.
Before starting a project, document what you will need from other people. It can also be helpful not to start your part of a project until you have received everything you need in advance. Also, setting regular intervals for feedback and meetings.
6. Always Changing the Requirements
How to Avoid it: Don’t get this point confused with #1, incomplete requirements. A change may happen because a client did not confer their needs early, despite all of your careful questioning. But sometimes the client changes their mind, or factors outside of your control happen.
As I write this, Facebook just announced it’s shutting down Parse, a backend-as-a-service that was a critical to several iPhone applications. I imagine that a lot of schedules are out there changing right now, and unfortunately, some apps are not going to make it to the App Store that otherwise would have.
Before you start working on a project, make sure you set expectations on how you will be handling changes, and what will be acceptable. It’s also useful to plan milestones in shorter bursts, so to contain the effect of changes within a project.
7. Start Working Without A Plan
How to Avoid It: Knowing the requirements is not the same as having a plan on how you will deliver something that meets said requirements.
8. Work on A Project That Isn’t Valuable
How to Avoid It: Asses the value of the project in the planning stages to ensure the is value there. Sometimes projects get cancelled because the desire for the finished project can’t last as long as the development cycle; Also why many side projects stay on the shelf and never see the light of day.
9. Work Without Management or Discipline
How to Avoid It: God I wish I knew. If you are in a situation where you are both the project manager and in charge of producing the deliverables, such as being a one-person freelance business, then you have to make sure you stay disciplined.
Writing processes and schedules help, but you have to stick to them. Otherwise, they’re useless.
There’s no easy answer here. Work hard, and practice. Discipline is a muscle that’ll come with time.
10. Work With a Technology You Know Zero About.
How To Avoid It: Work with between zero and one new technologies on a project. Don’t try two new things, as the number of new things increases the chances of failure exponentially. When working with a new technology, you can do some research or get a bit of training in beforehand, or even build a small toy project to get your hands dirty.