Running a lean startup on Azure DevOps
TL;DR — lean epics, features, stories
We will review our in-house implementation of a lean startup exploratory lifecycle using Azure DevOps epics, features stories and tasks.
Lean startup exploratory lifecycle
Lean is a framework that takes a flexible approach to software-based solution delivery. Lean lifecycle is typically followed in situations where you are unsure of who your user base is, or what your user base wants.
Lean software artifacts
The two main artifacts of lean are MVP and MMP:
- Minimum Viable Product (MVP).
A product with just enough features to satisfy early users. The final, complete set of features is only designed and developed after considering feedback from the product’s initial users. Gathering insights from an MVP is often less expensive than developing a product with more features, which increases costs and risk if the product fails. - Minimum Marketable Product (MMP).
A product development strategy that is based on the philosophy that “less is more”. The MMP describes the product with the smallest possible set of features that can address the user needs, creates the desired user experience, and can hence be marketed and sold successfully. The MMP is a tool to reduce time-to-market: It can be launched more quickly than a fat, feature-rich one.
Lean startup RnD lifecycle
Instead of slowly baking a well known product, we iterate multiple mostly baked MVP -> MMP epics discovery rounds until we find a product market fit.
Each iteration is a two week sprint shipping stories from the backlog.
The 51% experimentation rule
Mostly inspired by SpaceX RnD model. Each epic should have a 51% chance of success. NASA would wait until they had 80–90% chance of success and there would be lot more meetings about the work or process.
This more rapid testing leads to more rapid development.
Our team includes 6 fullstack engineers and 2 devops, are able to maintain 5 active epics = about 10 concurrent active features. We aim to deliver 5 new epics every 4 * two weeks sprints.
This model allows us to explore 2–3 hypothesis every quarter, 1–2 of which will mature from MVP to MMP and then productized.
Lean with Azure DevOps — a startup’s journey
The question we will try to answer is “how good of a fit is Azure DevOps for lean startups?”
* DISCLAIMER:
My baseline for evaluating was heavily biased towards AWS alternatives.
Spoiler — 9/10 score — pretty awesome fit
All in all I think MS has done a killer job in making their cloud accessible for lean startups, given the following setup time:
- 2–3 days required for cloud setup
- 2–3 days for Git / CI / CD setup
- 2–3 days for lean process and boards
Being Microsoft and all, setup this meant visiting multiple customization forms for states and layouts. All in all not a bad experience, compared with Jira’s awkward UX.
Azure DevOps — the good
Azure DevOps comes preloaded with everything you need to run end to end RnD:
- Goody #1- iterations for sprints
- Goody #2 - GIT
- Goody #3 - even more GIT awesomeness
- Goody #4 - release pipelines automation for lean DevOps
- Goody #5- Azure Kubernetes Service for lean DevOps
- Goody #6 - test plans automation for lean QA
- Goody #7 — Azure DevOps Extensions
Some of the things out there are really helpful:
- Goody #8 — Azure Application Insights
So, yeah. That’s quite a long list under “good”.
Azure DevOps — The bad
- Environment changes are not tracked in git — see “what is gitops, realy?”
- Some of the AKS k8S network stuff can get non trivial — see “https on AKS”
Azure DevOps — The ugly
- Complex and redundant user management hell with Azure Active Directory and Azure DevOps— see “Connect your organization to Azure Active Directory”
- Complex AKS network setup for VPN, see “VPN on AKS”
Configure Azure DevOps for lean workflow
We followed a two step plan:
- Step 1: Configure lean process
- Step 2: Configure Kanban boards
Since our source control was already
Step 1: Configure Azure DevOps organization process for lean
In Azure DevOps go to Organization Settings > Process:
- 1.1 Create a new lean process
- 1.2 Process > Epic
- 1.3 Process > Feature
- 1.4 Process > Story
- Step 2: Configure Azure DevOps boards for lean
At this point our newly created lean process is ready, just need to configure the default board views for Product and RnD.
- 2.1 Boards > Backlog > Epics
- 2.2 Boards > Backlog > Features
- 2.3 Boards > Backlog > Stories
Key takeaways
- Running a lean startup on Azure DevOps requires heavy buy-in to MS DevOps toolset.
- With the above in mind, adopting an end-to-end lean RnD cycle like ours is likely feasible if you are running on GIT and K8S.
- Epics, features and stories make the bulk of the content that needs to be managed to deliver MVPs and MMPs.
- Adapting Azure DevOps work items states and fields to reflect lean workflow was intuitive and quick.