I’ve seen research that shows that more than 50% of development projects fail. Given the number of projects we inherit from other web developers due to unhappy customers, I would say the figure is at least that high. This doesn’t apply to small websites such as a simple “brochure” site or a WordPress blog. However, when a project becomes more sizeable and has custom programming, it can easily fall apart before it’s done. In the last blog entry, I talked about the primary reasons this occurs. Here I’ll give some tips on how to avoid problems and have a successful outcome.
- Make an informed decision regarding the web developer you choose. In addition to reviewing their online portfolio, have them actually show you the back-end of some of the projects they’ve developed. Check their references. Don’t accept references only for clients they’ve worked with in the last year. See if you can talk to some clients they’ve had for several years. Better yet, get a mixture.
- Develop a project plan. The number one source of conflict in customer-developer relationships is miscommunication about what is included in the project and what’s not. While I believe it’s not possible to entirely eliminate this, a good project plan can go a long ways towards reducing the severity of the misunderstandings. Some developers will call this a Specifications Document or Discovery Document.
- Break the project up into smaller projects. Then, make each section contingent upon the successful completion of the last one.
- Hire your developer on a time-and-materials (T&M) basis. I talked about all the reasons that a fixed-bid is problematic in the previous blog post. If you haven’t already, read it. In addition to avoiding all the problems discussed in that post, working on a T&M basis means that you will know exactly how much time your developer is working on your project because if they don’t put in hours, they can’t bill you. If they are not putting the agreed upon number of hours in on a weekly basis, you will know immediately instead of finding out weeks or even months down the road.
- Use an agile web development methodology. The basic idea behind agile development is that the developer builds small user-definable functions and tests them before moving on to other functions. This not only gives you better visibility into their progress but it also means that you are testing all along the way instead of waiting until the end to do a massive testing effort which is time consuming and can lead to further miscommunication due the administrative effort that it takes to manage the status of all the bugs.
- Communicate often and completely. Leave no stone unturned. Inform your developer of everything relevant to the project, including your goals, vision, the reasons behind the project, your history with the project (if any), your concerns, areas of potential difficulty. Tell your developers you expect the same in return and hold them to it.
Follow the above tips and you should avoid many of the things that go wrong in web development. If all else fails, just hire us!