That’s a damn fine cup of computer code

How we quote technology

Hugh Francis
6 min readApr 27, 2018

--

TLDR? Check our example (client facing) story points document, over here.

When I was a younger developer, working freelance, I found out very quickly that my clients were not comfortable with simply paying me hourly until the project was done — almost everyone would ask for a fixed fee, so that they could budget around the project. Of course, this makes the most sense for the client; how could you sign off on a project who’s cost could vary by thousands, even if it only exceeds a timeline estimate by a week?

I started “eyeballing” a project as a number of hours, and trying to stick to it. This wasn’t scientific: often I’d be agreeing without signing a full SOW or seeing designs, meaning that if a client wanted to add features to the scope mid-project, I’d often have to agree just simply to keep the relationship in good standing — and eat the cost of the extra additions.

After a year or so of guesstimating, there was only one thing clear — I could not estimate development hours directly with any level of realism & precision.

In order to get work, I had two choices: I’d either have to eat the cost of an underquoted project, or try and maximize a client’s budget for the sake of padding. Neither approach sat right with me, both ethically, and business-wise: quoting without consistency makes it impossible to project profit (and hire appropriately).

Enter Composable Costing

One thing I noticed in my time working in the agency world was that whenever we tried to estimate hours as a team, we were almost always hugely wrong (luckily these were internal timeline estimates).

However, when we broke our workload into agile story points, and compared it against our team’s burndown rate, we were radically more accurate in shipping projects on time.

We found that by simply estimating abstract story points (and translating them back to time after the fact) made our estimates honest & realistic!

With this revelation under my belt, and when I started Sanctuary Computer, I resolved to quote only by a project’s complexity, rather than guessing the timeline. I began by picking a burndown rate (say 11 points per developer, per full-time week) and a complexity scale: 1, 2, 3, & 5*. When a project came through the door, I broke the requirements out into a Google Sheet, and put a story point estimate against each line.

* This is part of the magic. As Scotty Weeks would tell you, if you think it’s a 4, it’s probably a 5.

Dividing the total story points by our burndown rate allowed us to arrive at a timeline, and multiplying that timeline by our weekly rate meant we arrived at a cost & timeline that felt grounded in logic.

Over time, and with further analysis, we learnt a few lessons to help protect the budget & ensure the project launched with the appropriate level of polish:

  • A +30% multiplier to our “raw” story points allows us to account for a calm & effective QA cycle.
  • Analyzing past projects taught us that our burndown rate is actually closer to 13.5, making projects cheaper for the client, and making us more competitive!
  • We’ve introduced point totals of 8 & 13 for complexities that are “too unknown” to break out in the quotation process (but rarely use them in actual development).

The Positives

Collaborative Proposals

Every proposal we prepare includes a link to our story point Google Sheet. Often we find it’s a little too complicated for the client to absorb on first blush, but when an opportunity to negotiate arrives, we’re able to work with the client to make the project cheaper by trimming unnecessary features.

Our composable approach to costing effectively allows us to be “on the same team as the client” during the negotiations, without risking our ability to turn profits.

Shared Scope Clarity

Another nuance we noticed early on was that when a client signs off on a project, they can often take certain additions for granted. For example — adding a mailchimp signin, or a terms & conditions page. Left unchecked, it can mean death by one thousand papercuts — unaccounted hours always translate to lost profit.

The effect of laying out every fine-grained effort out in the open means that those lil’ features that are often swept under the rug until last minute are forced out into the open. This has the added effect of providing more scope clarity & setting client expectations.

Unit Economics

Unit economics continues to be my favorite phrase in the consulting business model. In its simplest form, it means that given all of your expenses, a developer who works for a single hour should make a certain amount of profit during that hour.

In the case of composable costing, we know that a developer who completes a single story point will create profit after payroll, rent, and other necessary expenses.

Building strong unit economics starts on the micro scale — but when you’re confident in that “atomic unit”, you can build it up to comprise a large scale project, and provided you were diligent, you’ll have confidence that it’s at least as profitable as your single unit.

Knowing how our unit economics play out makes projecting profit & taking on big expenses (like hiring) much easier to plan around!

Growing Accuracy

As we’ve completed more and more projects, you’ll be able to “hone in” on your burndown rate, and understand places you can optimize for a better shared success for our client and ourselves.

You’ll also learn where the parts of your estimates fall short, and be able to tweak & adjust your math over time.

The (Big) Negative

The Elephant in the Spreadsheet

There’s one big risk we take on when working to composable costing: in actuality, we must hit our burndown rate, or better.

Sanctuary Computer lives & dies by our burndown rate. In the case we can’t achieve our rate on average, over the course of the project, it slides off of our initial timeline. As soon as our project starts sliding to the right, we start eating profit. This can be risky business — by using a burndown rate, you’re essentially gambling on your teams’ ability to carefully make the “right” micro decisions, and ultimately get the work done with precision & efficiency.

You’re essentially gambling on your teams’ ability to carefully make the “right” micro decisions…

However — the counterpoint to that risk is sweet — if our burndown rate is higher than the one we quoted with, we made extra profit — additional to the expected profit shown in our unit economics.

Ok, so how do I do it?

We’ve cloned and mocked out a simple version of our client facing story point document here. It’s designed to be simple, readable, and fun to play with — an environment where a client feels free to craft their project, and see the effect that changing features has on the overall cost.

If you’d like to start using Composable Costing, simply copy this document into your own Google Drive, and scope out your project!

Some tips:

  • If you feel you can’t accurately break out the project, it’s likely you don’t have enough information to quote the project in the first place. In cases like this, we suggest a discovery & design phase, and instead give the client a wide ballpark. If they’re not comfortable with the higher pricing tier, it’s a good chance to ask for a budget, and use the story points document to define affordable features.
  • Feel free to share it with a client! Let them chop & change the document, and see how it changes the price (either keep an internal copy, or ask them to duplicate it internally).
  • Remember — if a client removes a feature, you aren’t losing profit. Provided your story points are accurate, they’re equally lowering the amount of work you’re signing on for, making room for other clients while making negotiation simple!
  • When projects kick off, keep track of when they started, and how many developers worked on them. That’s the only way you’ll be able to reassess and hone your burndown rate. You may find it’s higher than you originally thought, allowing you to make your estimates more competitive!

Let’s keep chatting!

Wanna talk more?

Please reach out at hugh@sanctuary.computer / isabel@sanctuary.computer — we’re friendly and open and would love to chat in greater detail on some of the specifics here.

Ultimately, we believe that large, full service agencies are becoming less appealing to clients out there, and instead, we’re hoping to encourage a world where nimble, specialist companies work together to carefully create intimate & unique work for clients, at realistic prices.

So get in touch! We’re always down for a margarita @ forgtmenot!

--

--