In the next section, we outline the MVP for the sample project.
3.3.2.2. Sample: MVP ideas and choice
In general, the sample project’s team agreed that it makes sense to start delivering value in the form of an MVP matching the goals of the sample project. Once the MVP proves it is all valuable to the stakeholders at a reasonable cost, the sample project’s team will be able to add features based on team vote/priority later.
In other words, whatever features the team/stakeholders come up with now, they can be classified into two big categories:
It is important to mention that all the features/items preliminary planned for some “post-MVP” release, they may or may not end up being implemented. The feedback from users/stakeholders of the MVP will be collected shortly after its release, the requested improvements will likely be considered along with the pre-existing “candidates” for inclusion into the next release.
In section 3.1.3. “Sample: Motivation Mapping…,” we introduced the sample project’s overall goals along with other contextual details. Here are they per corresponding domain:
(a) The important for business App
Business users should have stable, 24/7 access to the app.
(b) Patching and security remediation for the Linux fleet
Patching should be fully automated.
Having the goals in mind, the project team decided to have an “Let’s outline MVP” session. The team members proposed some ideas placing them on a whiteboard/a Miro board. It took like 10 minutes of their collective effort. The ideas were further grouped and a bit refined by the facilitator of the session. That grouping activity went along with some semi-informal discussions around the points, which targeted overall clarity for all the participants. That took 25 more minutes.
Here are the resulting refined ideas for the MVP to deliver for the sample project in the first delivery iteration:
- Automated patching with downtime (for non-critical Linux boxes)
- Replatforming of the app to Kubernetes/Red Hat OpenShift
- Improvements to the app deployment, patching, observability and performance. (We will automate patching of the app only. We will try to expand this idea to more Linux boxes with HA requirements later.)
During the discussion over the above-mentioned items, the team highlighted the following:
- Idea (A) is covering the “Patching should be fully automated” in detail, but it does not give reasonable attention to the app, for example, its availability expectations in the sample project.
- Idea (B) has a potential of being a breakthrough in operational readiness for the app, leveraging recent developments in containerised applications orchestration, observability, and availability. However, the “Automated patching of Linux fleet” aspect is missing here, while the own Linux fleet is a natural and important part of IT assets of the organization benefiting from the sample project’s outcomes.
- Idea (C) covers both the relevant app improvements as well as patching of Linux boxes. A disadvantage of this option, at this point, is that it is not immediately clear what exactly will need to be done. The original author of that idea was able to persuade the team it is not that bad via giving some insights into the technical design though.
The facilitator decided to run a voting session to agree on the resulting MVP idea, that is on the idea the team decides to deliver. It took seven minutes. Here are the voting results:
- 1st place – Idea (C): Improvements to the app deployment, patching, observability, and performance
- 2nd place – Idea (B): Replatforming of the app to Kubernetes/Red Hat OpenShift
- 3rd place – Idea (A): Automated patching with downtime (for non-critical Linux boxes)
As mentioned earlier, a disadvantage of the winning Idea (C), at this point, is that it is not immediately clear what exactly will need to be done to achieve the MVP results. In the next section, we introduce several practices which help us get the needed clarity.
3.4. Is everything ready to start the first delivery iteration?
As we discussed previously, the sample project’s team agreed that it makes sense to start delivering value in the form of the MVP matching the goals of the sample project. The MVP is:
Improvements to the app deployment, patching, observability and performance
(We will automate patching of the app only. We will try to expand this idea to more Linux boxes with HA requirements later.)
Such improvements must progress along with the overall project goals:
- Business users should have stable, 24/7 access to the app
- Patching should be fully automated
It is now time for the sample project’s team and the informed stakeholders to come up with particular features to deliver in the simple project. They should be then classified into two big categories:
The in-MVP-scope features will effectively form the Scope-of-Work (SoW) for the MVP.
By now, the team understands the “Sample Org” domains well. They have the big-picture Event Storming results and the “Domain Story” diagrams. They have identified “bottlenecks” in the domain processes via applying the MBPM practice. Plus, they summarized current issues as described in section “3.2.3. Sample: Issues and risks today.”
It all informs in terms of specific functionality as well as non-functional requirements which the
team/product owner wants to get delivered. In the next section, we will quickly revise some relevant terminology and concepts, and then focus on identifying features for the first delivery iteration of the “sample project.”
3.4.1. What are “User Story Mapping” and “Value Slicing” practices?
Let us first double-check we are on the same page when it comes to the relevant terminology.
3.4.1.1. Terminology
In general, “Epics” can have nested “Features”, while “Features” can have nested “User Stories.” They can be all used to represent functional as well as non-functional requirements for a product / system. “User Stories” are just a technique for “requirements by conversation.” Non-functional requirements here are just a category of conversation, along with functional requirements. They are all an aspect of an item we are aiming to deliver.
Epic:
- Large initiatives delivering new products, solutions, services to stakeholders / customers
- Comprised of a large collection of features
Feature:
- Capabilities that the product owner is interested in
- Provides values to users / stakeholders
- Realized by some number of user stories
User Story:
- Represents an individual need of users / stakeholders
- Describes a chunk of functionality / non-functional aspect that will be of value to a user / stakeholders
- Serves as an atomic item for project planning
- Represents the smallest increment of value in project
- Convenient to serve as the focus of a targeted conversation by the project team
3.4.1.2. “User Story Mapping” and “Value Slicing”
“User Story Mapping” is an evolution of the traditional Agile backlog practice. It is an effective practice for creating lightweight release plans that can drive standard Agile delivery practices. When correctly applied, it gives you the following:
- A backlog of scope items (captured as stories or simply feature titles) the project team believes can be delivered in the planning window.
- The backlog “sliced” into about three "delivery iterations", such that it forms the outline of nearest plan for delivery
- Enough detail for the first "delivery iteration" of the plan to get started with the work
See also: User Story Mapping & Value Slicing.28
Here is an example of User Story Mapping with an initial (MVP) delivery iteration identified via “Value Slicing”. Note: the domain in the picture below is different from the “sample project” of the guide, this particular example is for an imaginary modern taxi service domain. We will apply the practices to the “sample project” in the next sections.
The mapping below was identified by a team, along with some “value slices” preliminary allocated to the iterations of “Release 1” and “Release 2” correspondingly.