Building the MDP
How to mobilize a team to build a minimum delightful product.
After my last update about the ZenRetreat, someone of you have may have been wondering what it is that we did there for a few days. The answer is we sketched out our Minimum Delightful Product (MDP). Essentially, we went through the following flow:
What is the (exact) user persona we are targeting?
What are the problems faced by that persona (precisely)?
What is our first best guess as the best solution to this problem?
How can we take ZenML from what it is now to solving that problem?
Obviously, we had answers to the above. However, we had to gather everyone’s thoughts, get input, reveal things that we did and did not want to do, challenge ideas, and do all the grunt work of actually aligning a team of 8-10 people. This was not trivial, and it stretched beyond the retreat and spanned many meetings afterwards. But boy oh boy was it worth it.
This is how we did it:
🦊 How we got to a MDP
After days of discussion, we narrowed down our solution space enough so that we can put it into Epics in JIRA. After that, we used the Foxly add-on to help us with prioritizing feature sets using the ICE framework. ICE is basically three scores for each epics:
Impact: How impactful will this feature be?
Effort: How much effort will it take to build?
Confidence: How confident are we of the above two scores?
Foxly allowed us to do Planning Poker to get polls going so that everyone could enter their scores in a non-biased way. This is how it looks after we vote:
This was painful, and took ages. But it was necessary. We needed to discuss each Epic, and flesh out what it meant. After many hours of discussions we arrived at these scores:
The ‘Score’ column is simply a multiplication of all 3 ICE factors. Of course, an easy way to now go about business is simply selecting the top score and running with it. However, that would mean we miss some of the nuance here — What if we want to take something which is hard to implement due to reasons other than just Impact? Luckily, we could visualize the scores in another way:
Using the above, we can pick something in the bottom right quadrant as a trade-off of effort vs impact. It’s useful to be able to discuss with the team the merits and demerits of such things in a visual way.
In any case, we ended up picking the Epics we thought were the best and then set ourselves a deadline to complete the Epics. And there you go, that’s the MDP. Keep an eye out on the GitHub releases to see how we went from this planning phase to actual execution. It’s going to be fun!
👴How mature is your MLOps?
In January 2020, both Microsoft and Google released what they referred to as ‘maturity’ models for MLOps. These outlined a series of levels that described the full spectrum of practices among organizations training and deploying machine learning models. A little later that same year, Google released an AI Adoption Framework that tackled similar ground from a different angle. They offered their take on how to go from worst practices to best practices in terms of MLOps.
Alex wrote a blog post that went mini-viral about these MLOps maturity models. He takes a deeper dive into these frameworks, and see whether they are useful when analyzing internal ML efforts. Do give it a read and leave your thoughts as a reply to this substack!
🎬More delight with GitHub Actions
Alexej wrote one of my favorite recent blogs about how we (he) spent ages trying to fix our CI pipelines on GitHub actions. Its a must read if you want to geek out about Python integration tests (yeah I know you’re out there!). We have:
⭕ Caching with poetry
⭕ Reusable and modular workflows
⭕ Composite actions
⭕ Comment interaction to trigger special cases
⭕ Automated avoiding of unwanted concurrency
✏️ We’re hiring a Digital Designer
Eagle eyed observers would have noticed that a big epic in our MDP is redesigning the webpage, GitHub README, docs, etc. We are going towards a facelift and more precise messaging! Therefore, we are looking for a Digital Designer to join the team to help us out for this and other tasks in the future.
You can be full-time, part-time, freelance, whatever, we’ll figure it out. We need someone who has a visual design aesthetic that suits us, and is willing to make the entire ZenML feeling beautiful (the Delight part in MDP).
Head over the the careers page to find out more abDelightout the opening and more!
Alright, that’s it for me. See you in two weeks!