Maybe it’s time to stop saying “under promise and over deliver”
Commitment, Integrity, and Vulnerability in software development
In order to push ourselves to do our best work, we don’t want to under promise (aka. under commit) and over deliver — despite that phrase being said all the time.
The claim is “under promise and over deliver” is how to treat customers well. They get more than they expected. However, I wonder if this is less about customers getting the most value and, rather, it is more about us looking good. If we truly respect and want the best for our customers, don’t we want to be overcommitting?
I’m often reminded of the Joker’s line from The Dark Knight, “Nobody panics when things go according to plan. Even if the plan is horrifying!”. Software (thankfully) isn’t so dramatic. However, we do tap into this emotional (likely evolutionary) desire to “not be surprised” in order to build trust. I think we can do better.
I think, we want to overcommit. Overcommitting pulls us out of business as usual thinking (we see this with OKRs) and can make our day to day more fun, more exciting, less repetitive, and ultimately deliver more value and fulfillment — for customers and for ourselves.
On the other hand, there is a reason to believe “under committing” is a good idea, trust is elusive and difficult to build. If we under commit, we can build trust because we have extra time and space to deliver what we said we would (even though its less value than we would deliver if we overcommitted) — so our promises are fulfilled. Note, it’s not the point of this post, but this belief in under committing is also somewhat of a fallacy, you can read more about it here. The point here is just to say the problem with overcommitting is losing trust.
So, in order to do our best work we need to overcommit and find a way to maintain trust. I suggest we can do that through developing integrity and vulnerability.
I think building integrity can be done in three steps. First, set appropriate expectations up front — we still want to avoid surprising our stakeholders. For example, tell customers “the way we work is by overcommitting so we deliver the most value and this means we won’t always be on time”. Second, update honestly and immediately when plans change. For example, having a shared board/document/roadmap of progress, or saying “we just realized this is what will be late”— more on this in the next paragraph. Third, acknowledge whenever there is a loss of integrity: clearly state where the loss occurred, make a new plan (that will avoid this type of loss of integrity in the future), and recommit to achieve the new plan. For example, “we didn’t realize that bug fix was so critical; next time, we will label it critical which puts it at the top of our iteration, and, thus, if another comes up, those won’t be delayed until the next iteration”.
Being vulnerable is much clearer than integrity for what it looks like, but it still hard to do. About 3 months into my career in software, I was managing a team who had changed from consulting with a number of clients to having just one massive client (over 100,000 employees and $50 billion revenue). And, it became apparent we were going to be late on delivering the first release. My heart was in my stomach, we weren’t even going to be close. So, I had to have the tough conversation with the client. As it turns out, the client was not upset at all. When software projects were behind schedule, their previous vendors had all made false promises and/or stopped communicating. They were actually okay with it being late (despite the deadline pressure being prominent in every meeting for months). This moment of being vulnerable led to a much better and higher trust relationship than we had before. Moreover, making a mistake, owning it, and doing your best to fix it actually tends to result in more trust than if everything goes well all the time.
To me, under committing seems like a race to the bottom, or maybe the middle. When my stance is one of under committing, it’s kind of depressing and definitely not motivating. Instead, I suggest we continue to find paths to build trust (maybe those paths are integrity and vulnerability) and continue to push ourselves with our commitments to reach new levels of what our best work looks like.