Estimating Without Lies
At Tanooki Labs, we have a saying: “There are two types of people: those that say they are great at estimating software, and liars. The Venn diagram of those two groups is actually a single circle.”
Estimating software is hard in any form, but the margin of error grows exponentially with the complexity and size of the project. In our experience fixed-bid proposals, where the vendor hopes to come in cheaper than they quote and take the rest as profit, and the entrepreneur is hoping to get the maximum output for a contained cost, are adversarial in nature, and ultimately harmful to entrepreneurs. Even the most well-meaning vendors are incentivized to make you feel good during the sales process, and we’re all guilty of wishful thinking.
Fixed bids also limit flexibility during the design and build phases, and without fail lead to “out of scope” arguments. These arguments fracture the relationship between entrepreneur and developers at the time when a great partnership is most crucial to the success of the project.
Typically, a vendor will have an initial sales meeting with you and then go away, whisper some magic incantations and pull a number out of a hat delivering it to you in a shiny proposal deck with your name and number cut-and-pasted in. Of course that estimate would be based on previous similar clients and from years of experi-blahblahblah. Let’s be honest with each other. Most of the time that estimate is a wild-ass guess.
We approach the estimation process from a different perspective. Our goal isn’t to just hand you a shiny new tool — it’s to help you grow your business and set you up for future success. If we don’t give you an accurate roadmap that shows us both the path, as well as potential bumps in the road, there’s no way we’ll make it to the end as happy partners. Our mission is to empower entrepreneurs, while that’s certainly reflected in our approach here, the truth is that it’s also good business for us. If we all get to the end of phase 1 together successfully and unlock the next chunk of funding or revenue, there will be plenty more to work on together going forward.
Our estimation process is simple, and we’re transparent about it. After our initial meetings with an entrepreneur (where we’re known for typing like crazy as we take rapid-fire notes), we’ll break all the requirements we heard down into a full set of user stories. This generates the same document that we’ll use in an eventual project kickoff, so we make sure that we gather as much as possible, and we’ll often bring up ideas or pitfalls from similar projects we’ve worked on at this point.
We then assign each user story a high and low estimate of the developer hours that will be required to complete that story, and yes, these are wild-ass guesses as well.
What we’ve found is that while each micr0-estimate is wrong, our approach to breaking out the details tends to average out estimation errors over the course of the project, and we end up coming pretty close.
This granular estimate also lets us sit down with entrepreneurs before we start and review what we expect to be easy and hard about the project. It’s amazing how often we hear “oh wow, that part’s way more expensive than I would have thought, let’s punt that to v2!” or realize together that there’s an entire feature missing that would have come to bite us all later.
It also gets us in the habit of taking a feature, breaking it down and estimating it, and involving the entrepreneur in the prioritization — something that will be crucial as we come to the end of the build together where timing and budget are often tight.
In our experience, the final cost of a project usually comes out somewhere between the average and the high of our initial estimate.
Because we see ourselves as a partner and not a vendor, complete transparency is important to us, and we share the raw estimate document with everyone we discuss a project with. In the document you’ll be able to see every user story, the time/effort budgeted against it, the individual rates for CTO, Project Manager, and Developer, and the mix that we used to get to your specific quote.
The beautiful part is, once we’ve completed this process, we’ve got a great sense of what’s required and a basis for a strong project kickoff, as well as some experience of what it will be like to work together.
We know it’s not the traditional way to quote work in this industry and that we’re likely leaving money on the table, but it starts every partnership with transparency and trust, and we wouldn’t trade that for anything.