Have you ever been on a project that was stopped early or not delivering value to the business fast enough? What was the experience you and your customer felt in that moment? Frustration? Disappointment? Distrust?
As humans, our brains are programmed to break down large problems into logical steps: Step 1, Step 2, Step 3, and so on. After repeating this thought process many times, we form a habit. This is a highly valuable skill when accomplishing seemingly complex tasks such as backing the car out of the driveway, but all too often we form habits when looking at projects this same way. We have trained our brains to think in a certain way and oftentimes it takes effort to retrain that habit.
Today I want to challenge the way you think about projects.
For the sake of illustration, I want to walk through a typical thought process many might use when implementing a major product or project.
Let’s look at a common world example of ordering pizza online. The steps are simple: Start Page, Store Locator, Order Details, Payment Info, and Order Recap. One may identify these steps as high-level vertical features, more likely with more detailed features as shown below:
Software development teams often estimate and start executing their project in the following order: executing vertical features from left to right starting with the start page, moving forward to the store locator, then to the order details, and so on, while attempting to consider all use cases and edge cases along the way. This is complex, confusing, and difficult to manage.
The issue becomes, what business value have you achieved by completing the start page? How many customers can order pizza? The answer is zero. Same question can be asked about the store locator. Even if you write an amazing store locator and support all functionality, how many customers can order pizza? The answer is still zero. Same for order details. Only after the completion of the payment information vertical feature does your business value spike to 80-90% with only maybe a small bit to wrap up on the order confirmation screen.
So is this good or bad? Does this approach have low risk or high risk? What happens when the project has time constraints or budget constraints? Are you in the middle of a project right now that is doing this? And is there a better way?
The answer is yes, there is a better way.
First, we have to briefly discuss the MoSCoW principles: MUST HAVE, SHOULD HAVE, COULD HAVE, and WON’T HAVE. This exercise simply asks your stakeholders to prioritize each feature from most valuable to least valuable, even within each vertical feature, for the entire product. Upon the conclusion of this exercise, you may have a very different picture that might look like this:
This is exciting because it gives us a different way to look at the same project and with horizontal releases and not vertical features work. We can call these horizontal travel paths or business value releases. Oftentimes, the first horizontal path brings significant business value, can be released immediately, then each subsequent release brings on additional value, but on a depreciating ROI curve.
This is important for two reasons. First, business value is realized sooner and resulting dollars or customer experience is positively impacted earlier, giving the project a much better chance of achieving any ROI expectations. Second, consider time or budget constraints that cause your project to be stopped early and you’re unable to complete all requested items; which curve would you rather be in the middle of executing?
We have seen projects that were not approached this way and ultimately resulted in catastrophic disappointments with no business value delivered at all.
You should strive to deliver the highest value possible to the business as fast as possible with acceptable levels of quality and you shouldn’t be afraid to step back and slice work differently.