What is Done? Part 2: Defining Victory
Assuming others can read your mind is a fast path to painful outcomes. How can we win if we never agreed on the targets? We can’t. Instead, we must ask questions and discuss specifics together.
In software development, “What Is Done?” has both direction & distance.
Direction: Do we agree on WHAT to build?
Distance: Do we agree on WHEN what’s built achieves the goal?
Lack of clarity on either can lead to miscommunication and frustration.
In part 1, we explored distance (i.e., WHEN). Is software considered done WHEN you get it to work the first time? When can someone else repeat it? When it’s in production use? When it’s stable and bug-free? When it’s delivering value to the customer? How far do we need to go until done means done?
When have I made the point? Hopefully, by now!
Let’s address the other dimension: direction.
This challenge crops up all day, every day, in software development.
A classic example: a hard-working employee spends days, weeks, or months delivering a solution to the wrong problem.
Big oops.
The costs of this mistake can be considerable ($10K to $100K or more). Not only did you lose every billable hour from this employee, but the opportunity costs and timeline delays of a feature, project, or product launch can be a killer.
The solution is simple, yet often skipped over. First, we need everyone to be on the same page on the target.
Agile Development popularized the concept of “Acceptance Criteria.” Typically, this is the laundry list of things the software must do to be considered testable and complete. For example, an e-commerce feature might be described this way.
Users can add a product to their cart.
Users can update the quantity of a product in the cart.
Users can remove an item from the cart.
Any changes to the cart must check against available inventory.
If quantity isn’t available, send an error message and reduce inventory.
To its credit, this is a powerful approach to use, particularly for backend software without any front-end user interface.
However, there’s another approach I like better. Brene Brown uses the term “painting done,” which is an exercise that two or more people do to describe the target TOGETHER. The together part is key because the acceptance criteria strategy often results in a list just being handed to a developer. In painting done, the focus is on a discussion until both sides can repeat each other with shared clarity.
An example might go like this.
Person 1: “I’d like to sell my books on my website.”
Person 2: “Excellent! Let’s paint done together. I’m assuming you want the books to appear with the title, subtitle, picture, price, and checkout button. Correct?
Person 1: “Yes, exactly! Let’s do it.”
Person 2: “Not so fast! Do you want a full eCommerce backend so they can purchase and pay directly on the site? Or can we just link to Amazon?”
Person 1: “Oh, to hell with Amazon. I want them on my website!”
Person 2: “Ok, great! So there we have two options. We can install a dozen or so plugins and configure them within the backend. This full-blown integration would take 50+ hours, but it’ll look seamless. Or we can set up a Shopify subdomain and have it ready and configured in 5 hours.”
Person 1: “Oh, that 1st option is expensive. Let’s just use Shopify.”
In this example, the request to sell on a website had three viable options:
Full e-commerce integration.
Redirect to an ecommerce platform like Shopify.
Direct link to Amazon.com.
By not attempting to mind read from the initial request, a few minutes of back-and-forth conversation zeroed in on the correct direction. They can now get into the nitty-gritty details.
With this decision, the developers and designers have a (more explicit) target and, as a result, a better shot at winning. Next, they can decide how far the Shopify configuration needs to go before its considered complete:
Just get it up and running with a default theme?
With complete branding?
With promo codes?
With sales tax calculations?
With fulfillment workflows?
With the migration of existing customer records?
Now we can shore up these remaining bits into acceptance criteria. Once complete, we have a more robust definition of victory. And by making this clear up front, the team has dramatically increased its odds of success.