Snipcart, our startup, has been built by our team of geeks at Spektrum, a web development company. We’ve been handling web projects for 6 years now, and we’ve managed to deliver them on time, and on budget. So, believe me, there is a way to do it right and we’ve spoken at many conferences on the subject.
Yet some people in our industry still find ways to mess up some basic estimation rules — hence the bad rap some give to web developers. We can’t really blame agencies for this because honestly, there are a lot of ways to miss your delivery time frame and estimates.
Here’s 5 common pitfalls and ways to avoid them:
1. Pretend you have it all figured out from day 1
The only constant in a web project is change. Embrace it, don’t resist it. Believing you understand all the requirements fully and that they won’t change will result in an epic fail. And just so we’re clear, we’re not referring to 2 weeks long projects here. We’re talking about significant projects that will last for more than 3 months.
Think about this: are you willing to make the most important decision regarding your project on day 1 — the time when you know the least about it? This is what’s referred to as the Cone of Uncertainty.
Do not bullshit your clients. Acknowledge that there will be change. Let your customers know about the reality of the work you do, and be honest. You have no crystal ball: seeing all the details and subtleties your customer has (or will have) in mind is mission impossible.
2. Treat your developers like production monkeys
As time passes, the web becomes increasingly more complex. Web monkeys (people who just churn out code without thinking about the higher level strategy) are slowly fading away, making way for the professionals. When evaluating a project, you should trust your developers and designers because they are professionals. If they aren’t, well, you’ve got recruitment issues my friend!
It’s true that web developers tend to be introverts, but they are smart (it’s their job to be smart). They are paid to uncover solutions. But treat them like they are just web monkeys who 'just make the donuts' and they will act the part. They won’t take responsibility and they won’t challenge you, leading you down the wrong path simply because they're doing what they are told. On the other hand, if you give them ownership over the project, treat them as professionals and ask for their opinion on your strategic goals, they will blow your mind.
For a bit more on management theory, check out the Hersey-Blanchard model and figure out what quadrant you should aim for. In our industry, we usually deal with D3 and D4, delegating to our team and supporting it when needed.
3. Insist your team tells you what you want to hear
If you need a realistic time estimate for a project, ask your team. Give them all the information you’ve got and let them decide what the best solution is and how long it will take.
Some account managers already have an idea of how much they want it to cost in order to win the project, so they push back when their team comes up with a number that feels too high. There’s no point dealing in wishful thinking. If it’s a big complex project with a lot of uncertainty, tell your client. It’s usually possible to narrow the scope of the project or bite off a small chunk of the app as a way to learn how much the full project will cost.
4. Treat testing as if it’s just a phase
Quality should be woven into the entire development process from beginning to end. Pretending you know how much time it will take to find bugs and fix them means you also know the exact number of defects there will be. Testing is an integrated part of development and should be treated as such. Instead of relying on a planned test phase, your estimates and effort evaluations should be based upon past projects and team velocity.
Once the project kicks off, deliver often and get customer feedback as quickly as you can. By doing so, you’ll integrate the testing phase with the delivery process. By not doing so, you’ll incur a time sink that will only get worse if you wait for your so-called test phase.
5. Ignore the logistics of project management
You probably already know the project management triangle - or in other words, “good, fast or cheap - pick any two”.
Between scope, cost and delays, you have to choose which constraint you wish to deal with: you can’t handle all three. Trying to deliver on all three is virtually impossible. Instead, talk with your client and identify his most flexible constraint. If it’s scope, then you can play with this one, but the other two, schedule and budget, will have to be relatively stable. And if his schedule is more flexible but he wants the scope and budget to remain accurate then it just means you can’t commit to a tight deadline.
In estimating there is no silver bullet. There is a lot of uncertainty; and you can either choose to ignore it, or handle it. So next time you prepare a web project proposition, make sure you avoid these 5 lethal errors.