Perfect is the Enemy of Good: Product Development in the Wake of Covid
By: Robison Rogers
Tags: Product Management, Product Development, Covid 19, Software Development

Up and to the right

Everyone has been impacted by the Covid-19 pandemic. It greatly changed the way each of us go about our daily lives. There is a helpless feeling watching so much suffering, pretty much all of us what to do something to be part of the solution. In the software development world the pandemic has been an opportunity to recognize how valuable our products are for our users and has pushed us to reflect on what our most important features are.

For our team specifically we were left wondering how we could respond to this situation. We were looking to react to the situation. In most cases in the product development world we are trying to be proactive in the ways that we help our customers. We try not to be heavily swayed by what others are doing, but we must always be aware of shifts in markets and society. The pandemic was a shift nobody was really prepared for.

Our Situation

In response to the pandemic many of our customers in the healthcare space had to shut down their businesses temporarily or drastically scale back how much business they were doing for an undetermined amount of time. Within this shift came the realization that we (as a communication platform for our customers) had an obligation to do everything we could to help them stay in businesses. We were perfectly poised to facilitate much of the necessary communication required to help our customers communicate necessary changes needed at the time.

We had a strong obligation to provide solutions in response to the pandemic. As the primary means of communication for our customers it fell on us to help them navigate these new circumstances. We needed to find ways to make the tools and features within our product best cater to the situation.

We started looking at what features we had and how those features were currently being used. We came up with ways to educate our customers on how to best use existing features and in some cases even recommended disabling certain features to reduce confusion.

Our Plan

It’s not that simple

After making an assessment of our existing features we started looking for changes that could easily be applied to our products to serve the changing needs of our customers.

The features we devised during time were the following:

A Covid-19 screening form that could be delivered ahead of upcoming appointments to allow our customers to screen their customers ahead of appointments.

Prebuilt templates in one of our messaging features that allowed our customers to easily message multiple of their customers to cancel appointments and another one to ask them to wait in their car to be seen.

Many of our customers were already closing down and we had limited time before they would attempt to open back up. Our hope was to have new features ready in time.

Our Approach

We set out to build something that could be used by thousands of our customers and be available to virtually all of them. At the time were weren’t as focused on how often the features would be used as much as how many of our customers would be using them.

We gave ourselves a two week window to complete our features. Giving ourselves this time frame and mental framing really helped us as we approached our problem at hand. First and foremost we knew we weren’t going to be afforded the necessary time to go through a formal design and development processes so instead we built out the UI and then asked our designer if it was up par. (Ultimately he gave us his blessing with a couple of minor tweaks.) This is atypical of how we normally work, but we effectively asked for forgiveness instead of permission with what we developed. Luckily for us our design team has invested in a design system that served as some great guardrails. I wouldn’t recommend this approach in most cases, but given our circumstances it was our best path forward.

Just read the next sentence…

We divided and conquered, but we were careful not to have too many cooks in the kitchen. We wanted to ensure we could keep as many aspects progressing as possible. In this case we weren’t relying on other teams which allowed us to coordinate easily and move quickly. If we were to need help I like to think we were aligned enough across our department that any conversations around needed support would have been relatively straightforward.

Looking back our alignment on this project might have been the most important aspect. In a time crunch having everyone aligned on what the top priority is really helps reduce noise and provides clarity on what is and is not important. That clarity starts at the top. We had received clear direction from our leadership on what we wanted to achieve, (which I appreciated) from there they got out of our way and let us figure out how to execute.

Our Results

Our Covid-19 screening form exceeded all expectations… eventually. Usage for the first couple of weeks was pretty pedestrian, but it was trending upwards. As we increased our education around our new features and our customers realized they were going to have to continue operating, even if in a limited fashion, usage really started to take off. In the next month and an half the usage of our screening form increased 10X to the tune of being completed 1 million times. Something we built in 2 weeks had been used by over 1 million people in just over 2 and a half months! In the month after that we saw usage double to 2 million (see chart at the top). This kind of usage came as a surprise, and honestly given the time accelerated schedule we were on we didn’t really think much about what our success criteria should be, but this exceeded our initial vision for what we were creating.

Our Reflections

Stunning

In retrospect it felt like we caught lightning in a bottle. We, as a team, had the right features in place. Features we could use together to create something responsive and valuable. There are ideas around things like design sprints or other short term periods designed to produce high quality work. For us I think it was having a clear customer need, a time constraint, and alignment. We clearly understood, we had to buy in, and we moved forward. We had the pressure of knowing our customers needed us and we had to respond to something out of anyone’s control.

While reflecting on our experience I came across this quote that was very applicable to our situation.

In today’s complex business environment, where things are changing constantly, speed of execution is a lot more important than perfect execution. While you’re trying to perfect a certain solution or product, the situation might have changed already, rendering your product or solution irrelevant. Make it “good enough,” ship it, improve it based on market feedback, rinse and repeat. This approach attains a solution much faster because of the snowball effect of iterative learning. — Sunnie Giles

I will be the first to admit that our solution wasn’t perfect, it provided value and was “good enough”. We received plenty of feedback on improvements we could make to the product, it wasn’t perfect. But at the end of the day it delivered on a need for our customers.

In relation to Covid-19 the situation was ever changing in the first 2–3 months. Had we not been able to deliver until months 4 or 5 in the process our features may have already been made irrelevant. In our case we did a lot of things that were “good enough” that we probably wouldn’t have done in our normal release process. I was reminded (by one of my mentors) of the timeless words of Voltaire, “Perfect is the enemy of good”.

Our Conclusion

On the other side I’m left asking myself how can we do this more often? I don’t think you can fabricate or replicate the situation we found ourselves in. I also don’t think it’s healthy to consistently be working they way we were during that time. What I do think you can do is ask yourself questions like “what would it take to ship this next week?”, “what features do we feel like will deliver the most value”, and “why are we doing this?”. Answering these questions can help ground you and your team and realize what is really important about what you’re working on.