How I Under-promised, Over-delivered and Screwed Myself
nathanconyngham.com
nathanconyngham.com
"How I didn't know how to under-promise."
I did freelance web design in high school (nothing fancy, HTML/CSS with stuff that clients thought was fancy in 2006, like Lightbox and RSS) and after my second client, where a five-page photography portfolio turned into a Frankenstein's monster of a PHP web-app held together by duct tape and invalid code, I realized two things:
1. There is never such a thing as being too specific.
2. Bill hourly.
Bill weekly, or at the least daily.
Fixed-price jobs generally take double the time (losing me half); sprints work if the client understands and is in charge of the project, but most see it as a cost-sink and nothing will be delivered without extorting extra cash (which a long-time fixed-price client spat at me last week...).
Usually this results in the buyer either:
(i) asking for a lower price;
(ii) disagreeing with the FP bid and going T&M;
(iii) walking away.
The basic assumption is that scope is narrowly enough defined. If it isn't, then try hard to narrow the scope and give the deal 1 to 3 hrs for this exercise (depending on your available hours classified for business development aka "biz dev"). At this point, hopefully you've got the requirements narrow enough that you can then engage in the exercise above after coming up with an estimate or quote.
If (i), then roughly itemize and remove items to bring the price down to change the value proposition. Avoid keeping scope the same and bringing price down, or else this is a plain discount pure and simple and hurts you down the road.
If (ii), then the follow-up move for future deals with the same buyer is to clearly show why their final T&M billables could have been cheaper if they'd gone with FP.
If (iii), count yourself lucky. Nothing harder than letting business go until you get yourself into a deal where your costs are higher than revenue (aka. negative margin deal).
>>Fixed-price jobs generally take double the time (losing me half)
... that sentence implies a pattern of failed FP deals and lack of scope. However, I am empathetic because other clients have stated that they are uncomfortable with code sprints on a professional services basis solely because of the lack of concrete deliverables that can be used as payment milestones or triggers.
Code sprints are better off billed on a T&M basis unless, as you say, the client really understands what they're doing. In most cases, buyers don't know what they want, which is why some time must be spent on building on biz dev building the pipeline.
Could you define T&M in this context? How does it differ from code sprints?
> If (ii), then the follow-up move for future deals with the same buyer is to clearly show why their final T&M billables could have been cheaper if they'd gone with FP.
I understand (i) and (iii), but why is showing them FP is better than T&M a good idea? Isn't T&M more profitable for me?
> ... that sentence implies a pattern of failed FP deals and lack of scope.
That's accurate unfortunately. There's always scope, but for sub-£2k jobs (and worse for sub-£1k) there's a trade-off between time spent tying down the scope and time doing the job. If I spend an hour on it, that's 5-10% of the overall budget gone.
FP is generally (not always) better for both the buyer and provider because:
1. Buyer benefit: For a given scope there is a corresponding, known budget. Typically, fixed/forecasted budgets are preferred by buyers so they can forecast and set internal expectations.
2. Seller benefits:
(i) If it's a task that you feel can be done quickly or with less effort than normal (e.g. done repeatedly for others in the past), you can still charge based on the VALUE of the work vs. the # LABOUR UNITS, ultimately resulting in a higher margin for the seller with a tightly scoped budget for the buyer, even though it takes you less time to complete. The only time you need to consider lowering list prices for work done several times in a row is when a perception of commoditization creeps in, either by the general industry or (more likely) by the customer(s).
(ii) T&M is more profitable for you in the short term, but often causes more overhead and problems for the buyer on larger deals as scope uncertainty and ambiguity increases. Typically, the easier you make your buyer's life in terms of reducing overhead and paperwork, the more likely they are to want to work with you in the future.
>>There's always scope, but for sub-£2k jobs (and worse for sub-£1k) there's a trade-off between time spent tying down the scope and time doing the job.
Sounds like you're an independent freelancer. In this instance, you're in a tough spot. I suggest putting in 1.5hrs that you swallow from a cost basis with a firm goal to minimize potential risks during the engagement.
The worst part of being an independent is that your overhead is typically higher if you try to go the FP route for higher-valued deals as you are solely responsible for writing the SOWs, thinking about the timelines, managing the customer AND delivering. I can absolutely understand why, in that situation, you're comparative advantage is defaulting with T&M in most situations and hopefully raising your prices a bit to compensate for the inevitable pre-sales discussions you need to have with potential customers.
Sorry I can't give more advice there. I've found patio111's posts to be very informative for independents looking to grow.
every time anyone gets an estimate, double it. so, you estimate yourself, double it before you give it to a manager. the manager should double it before they give it to a client. the client should double it before they give it to their finance department... and you'll come out on budget for the project.
Sure enough, when the soil is getting turned, there's a need for more cash to do unexpected -foo- or increased price of -bar-... and now the project is 'over-budget'. And almost always wouldn't have been if the contingencies fund wasn't removed.
Other types of construction may indeed carry contingencies through construction phase but it must be made absolutely clear to the owner of the project that the contingencies are for X unknown and not just a "we can't estimate very well so hit it with 10%".
Rather than taking it in and showing them. The lead decided that we should just start in on the second deliverable.
We busted out most of the work there before the meeting began regarding the first deliverable.
When we went in to the meeting we were shocked to see that everyone who had written up the requirements had quit and moved on to other jobs. The task had fallen to other employees who wanted to completely change the direction of the application. While the first deliverable did not change. All the work we had done on the second was worthless.
After that I never again worked 12 hour days while on schedule and I never again did anything ahead of schedule that wasn't a 100% sure thing.
The team still could have gone ahead with the second deliverable "at-risk" (i.e. on the assumption that the customer still wants the next deliverable). The key failure point here was the touchpoint with the customer and the invoicing. If there was no payment trigger/invoice for the first deliverable, that only emphasizes the importance of the customer checkpoint.
Usually, the project manager (sometimes known as the engagement manager in other shops) is responsible for this. That person failed the buyer, your organization, and your team.
The requirements doc was extremely clear and robust. We felt confident that we were on the right track. Regardless I pestered him to schedule a meeting right away. After two weeks he relented but it took us another two weeks just to get in there due to people leaving at the state, general confusion over there and I assume them spending time rewriting the second deliverable.
There are a number of things we could have done to avoid the grief on our end.
1) We definitely should have made a greater effort to get in there as soon as we were done with the first deliverable.
2) we could have not burned ourselves out working 12s in the first place on salary and finished about at the right time when they were ready for us.
3) After finishing early we could have taken the equivalent time off instead of trying to power through the second deliverable. (not getting ahead of ourselves or burning us out)
We ultimately delivered the project within the time constraints of the estimate (a miracle considering we lost almost a month). although not including the OT we spent initially. So the client was happy but our team's morale never quite recovered.
Honestly, I've found that the value of even simple web applications in modern business is so enormous that once you have your foot in the door in a place the contracts just dont stop coming. Especially when you were intelligent enough early on to be selling them an ecosystem, a complete automated solution to their problems, instead of a single, one-off application. The price of going out and developing a good relationship another contractor who is capable enough to understand your existing code becomes prohibitively high, especially when they already have a good working relationship with you.
Is this cynical? No. I'm not suggesting that you slack off or deliver substandard products. I am making an accurate statement about the value of IT in the marketplace. It just reflects the business reality of the moment: people who can make applications are still rare, these applications are immensely valuable to businesses, and if you can do them, there will be someone to pay you to do so.
When competition becomes steeper you can start to play games with expectations. Until then, never let the company intimidate you into thinking they're doing you a favor by giving you a longer deadline. You're doing them a favor, assuming the product works like it should. Deliver and promise exactly that.
>>“We need to under promise and over deliver.”
Great! But, why? There has to be a concrete, preferably measurable, reason(s) to have this mindset. As other commentators noted, what he did wasn't really under-promising, but simply adhering to the original schedule, which implies that the customer was on-board with the agreed timeline.
>>The project moved along and thanks to some long days we actually managed to deliver functionality ahead of schedule.
What did he expect to get out of this? What did he tell the team to justify this?
>>We continued our iterations, tuning functionality and consistently over delivering when the team started to become disgruntled and exhausted.
Even with the right motivation, burnout is a constant issue for services staff in any industry, especially when the engagement lead doesn't monitor both sides (customer and internal). He would have monitored this more closely, or would not even have gone down that path if his internal team were billing him on an hourly basis, as it would have forced him to more concretely justify to himself and his partners what he expected to get out the self-imposed accelerated schedule.
>>To continue to over deliver, the team had been working very long hours, weekends and some had missed important family appointments.
Live and learn. Seems like you are somewhat charismatic, or have a hold on your employees that made them put in the long hours and miss family time without pushing back on you.
>>The next day we presented to the client, they were surprised at what we’d achieve in such a short time and were happy that we were ahead of schedule.
As engagement manager, you should have ensured that this wasn't a surprise to the customer! It would have allowed you to more quickly gauge whether (a) it's worth continuing on the death march and (b) how the customer will react.
>>The discussion turned to the next set of deliverables, the effort and the expected delivery dates. This is where it all started to fall apart.
No -- we need to be very clear here. Things started to fall apart well before this due to: (i) lack of identifying value exchange for the death march on the first deliverable; (ii) lack of continual communication with the customer.
>>“Why can’t you do it? We’re not asking for anything more, it’s actually less than what you delivered before.”
The standard answer here is:
(i) We can't do it because the first deliverable was a one-off to help you reduce time-to-market / internal target date, but this second deliverable will require additional staff that I don't have. From a resourcing perspective, I'm not going to charge you for the additional hours that my staff spent on the accelerated schedule for the first deliverable because I made that decision unilaterally. We must stick to the same duration for the second deliverable.
(ii) I know you're not asking for anything more; that's why we're able to commit to our originally agreed upon deliverable duration (e.g. 2 weeks), and nothing shorter.
(iii) If you want us to work weekends, as per the Statement Of Work ("SOW") that you signed, you'll need to pay for the additional weekend and holiday staff shifts for the second deliverable [context: sounded like the OP did in fact have a contract in play, and hopefully had language in the SOW that covered increase in base rates for weekend & holidays]. We'll swallow the increase in costs for the first deliverable because we did it of our own volition.
(iv) I'm glad that we confirm our original agreement regarding the nature, specificity and scope of the second deliverable (i.e. that it is "less than what you delivered before"). This further emphasizes that our originally agreed upon duration for the second deliverable is firm and we can deliver with the agreed upon duration.
>>Over the next few meetings, with significant effort, the discussions started to turn around. I had been reborn and now realised:
There's hope for you yet! In most situations, this is where the customer escalates, goes over your head and tries to get you off the project, or where the firm partner/general manager tries puts a PIP on your record because your customer relationship management skills (the number one reason you're typically chosen to become an engagement manager) was so severely lacking. Seriously, that was a great turnaround if the OP did that himself.
>>It’s not about the effort, it’s about the outcome. The client did not care how much effort we’d put in.
In general, this is true. However, as part of your job you are supposed to tie in the effort with the outcome, whether via narrative, task-based estimate or simply pure dollar terms. Do this, and your job becomes easier explaining timelines and pricing deliverables.
>>We needed to become a partner
Yep. However, as part of your job, you must be cognizant when a psychopathic or aggressive customer has no interest in becoming a partner and only extracting as much value as possible out of the current deal. Customers can flip, and engagement managers must always be taking the customer's temperature to protect the deal, the team, and the deal margin.
>>The expectations had to be reset
As others noted in this thread, they weren't managed properly. OP was fine up until the kick-off when the baseline timeline was established and agreed upon, but then went off plan for no compelling reason(s).
>>As painful as this was, it did teach me a lot. Get on top of this before it blows out.
Amen.
>>Under promising and over delivering is for suckers.
This last sentence is wrong. Forget about under promising. Just focus on the over-delivering part. Only over-deliver if you have the appropriate risk appetite, enough deal margin you're willing to sacrifice, and compelling exchange of value. Examples of exchanges of value are:
(i) "If we make a great impression that is sustainable in the long run, we can leverage this influential customer for references in the future!" --> Make sure your sales team has the balls to follow-through on this. Surprisingly, many organizations and field teams have a hard time asking for references for future deals.
(ii) "When we were talking, the customer kept referring to feature X that's gating the next phase of their program and holding up future deals. If we deliver a proof of concept showing that we can deliver this functionality, it might clear the obstacle for future services deals." --> Make sure your product/engineering group can deliver, and that your support group will actually support the new 'feature' that you deliver.
(iii) "The customer is asking us to bring in the schedule. We've got no other deals on the table and all of our guys would be on the bench (i.e. idle) otherwise. Let's swallow the cost for a short period of time." --> Engagement manager needs to go into 'expectation management' overdrive and find a narrative that works for both parties.
As far as they are concerned, you're pretty much almost done because all the stuff they will ever see is there and looks good. No matter how much you try to rationally explain to them that it is just a superficial shell of an app and is a long way from done, a lot of them just aren't capable of internalizing this concept meaningfully.
Obviously there are situations where the client will, in fact, understand the distinction, but I assume they won't until proven otherwise.
First of all, pad estimates realistically, add contingency estimates, trade off deliverables against shortened schedules, and then you're in a position to underpromise and overdeliver and not screw yourself. Oh yeah, and don't deliver early, ever. Wrong axis to exceed expectations on. Deliver more features than originally promised, or more polish. Never create expectations of faster delivery, you shoot yourself in the credibility.
I still don't understand how our industry makes any forward progress in the aggregate.
On the other point, this seems more like a US/India thing. In Europe, where there are certain regulations about working hours, mobbing, and in general, higher employee protection by law, people are not that afraid to say "no" like in the US, but it's still not always clear and loud.
I guess centuries of taking heads from people saying "no" have taken its toll, and it's still hard to say "no" to superior.
Don't let a client, or anyone for that matter, corner you w/statements like that.
Regardless of whether they were right or wrong, in terms of the amount of work they're asking for being less than the previous, have something to show in regard to why it's not as simple as they perceive.
For example, consider adopting a thorough estimating strategy, broken down into small iterations of work. An estimate showing the amount of hours or calendar days the next iteration would take, accompanied by more realistic dev-hours-per-week (burn rate), would have been the right way to counter the client's statement. It's much harder to argue with with supported numbers.
My grand plan to under promise and over deliver had led to a disaster!
Any plan where you take on more work than you can handle in a given time frame will lead to disaster. Under promising and over delivering had little, if anything, to do here. This was entirely a management problem (dev schedule, client expectations, etc.).
Dude, those are the words to live by. Not marketing spiel. By saying it to the client you did the exact opposite. You over promised.
I've found this happens often with clients who are the least knowledgable in your area of expertise. Sometimes their insecurity compels them to avoid getting screwed, by making sure they're getting everything they can out of you.
Other clients, with lower expectations, might be overjoyed by the the same efforts. All clients are not equal.
The client must take away the feeling of "they moved heaven and earth for me and I really can't expect them to pull such inhumane hours for me next time" and not "well, they clearly can do a lot more if I just challenge them a bit more". It depends a lot on the client relationship and the related communication.
As in all things, there's a balance - having the client understand that it wasn't a cake walk is important, but not beating them over the head with it is important too.
(I like the whooshing sound they make as they fly by.)
They would have happy and amazed client and lot's of spare strength.
Really??
So it does take 3 hours to fix your car, and they charge you for 6. Then you care.
The reason that it seems they charge a 'standard' amount for a job is because certain jobs (changing brakes/tires/oil, general checkups, car detailing, etc.) have been enough times across the industry and in the shop that reliable statistical (or consensus) baselines allow one to more easily and reliably estimate.
Admittedly, this doesn't fix the original principal-agent problem[1], but I thought I'd throw in my experience with mechanics and getting cars serviced.
[1] http://books.google.ca/books?id=4XcR7Y5ddcoC&pg=PA323&lpg=PA...
1. Under-promise for a sustainable output pace.
2. If/when you finish early, everybody gets an appropriate amount of time off.
3. Repeat.
Your client is happy, and your team is happy, healthier, and ultimately more productive.