IT projects are, by their nature, destined to fail. When you plan for a new project, you’ll probably realise that while what you’re bui/lding isn’t new, it ts new to you, and you’re bound to encounter some surprises along the way. Maybe you haven’t quite thought out how you’re going to build a specific feature – and when you get to actually building the application, it takes a lot longer than you expect. Or maybe your client decides to change the project requirements half way through when he sees your beta. Here are five ways to avoid cost and timeframe blowouts in your freelance project.
1. Have a thorough project spec
Don’t code anything until both you and the client have agreed on a projert outline or specification, and it covers every area of the application. A thorough spec written now can save hours of wasted development hours due to misunderstanding later on. For example, if building a website, your project spec should outline all the pages of the website, roughly what they will look like and any special functionality on them (such as viewing records in a database).
2. Agree on conditions for changing the project spec
Chances are your client doesn’t know the web. They have a general idea of what they want you to build, but they don’t really know what it’s going to look like, what it can look like, what features you can build. Essentially, they don’t know what is possible – but as the project progresses, they’ll figure it out. And when they do, they’ll have all sorts of little features they want you to add.
Now, this is all very well – client satisfaction is critical for succesful freelancing – but make sure you agree on some terms for changing the project spec from the beginning. For example, “I will give you an estimate for additional hours required to add a feature and add it to the bill.” (This works especially well on hourly rates; clients like to raise issue with adding to a flat rate for the project)
3. Help the client think out their application
I recently had a client wanting to build a simple database-driven application. The emphasis was heavily on the data, and while they’d done some basic design mockups, they didn’t really know what the application should look like – or, for that matter, what it should do. While planning, frequently contacted the client and made suggestions that I knew would improve the effectiveness of the application. It isn’t quite finished yet, but the client already loves the beta.
4. Explain the problems of detrimental design decisions
I mentioned before that your client doesn’t know what is possible with the web – they also don’t know what isn’t possible. Ever had a request from a client, and thought, “Why the heck would they want THAT?” In these situations, don’t just accept the request and move on. Explain to the client that it isn’t a good idea, and why. You’ll save everyone’s time, and if the design decision the client has made is particularly obscure, you’ll probably save yourself a lot of hair pulling trying to implement it later.
5. Maintain after sales support
Make sure the client is happy with the product, and keep it that way. After sales support is an area most freelancers fail on. Your project doesn’t end when you provide the code to your client. Make sure your client knows that they should come to you for support, and provide bug fixes at no cost – often they may feel inclined to hire someone else to fix bugs.
This is all very well, but the client will probably want a few extra features added or maintenance conducted, and with another provider working on bug fixes, your winning this additional business isn’t something you can take for granted anymore. Conversely, if you’ve been called in to rework an existing application, encourage the client to task you with additional development, as opposed to the original provider. Repeat business is highly profitable – no overheads, just get in there and do what you do best.
Follow these tips, and your projects will be more predictable – and better managed within budget. Happy freelancing!