article: changing the intro, we're getting somewhere
This commit is contained in:
@@ -8,7 +8,7 @@ import QualityIssue from '@/modules/pull-system/feature/QualityIssue.vue'
|
||||
import { Feature } from '@/modules/pull-system/feature/feature'
|
||||
|
||||
const feature: Feature = {
|
||||
name: 'As a user, in the homepage, I can login',
|
||||
name: 'As a user I can have access to the latest news from the homepage.',
|
||||
complexity: 3,
|
||||
leadTime: 2,
|
||||
qualityIssue: 4,
|
||||
@@ -20,30 +20,41 @@ const feature: Feature = {
|
||||
<template>
|
||||
<div>
|
||||
<p>
|
||||
You're a Product Manager in a project who has just started, your goal is
|
||||
to make a product as fast as you can. With you, you'll have the product
|
||||
team, designers, developers and a release team.
|
||||
The project who has just started, our goal is to make a product as fast as
|
||||
you can. With you, you'll have the product team, designers, developers and
|
||||
a release team.
|
||||
</p>
|
||||
<p>
|
||||
First things first, what is a feature? A feature is a piece of software
|
||||
that enables <em>things</em> for the user. It can be the capability to
|
||||
read articles or to share them or even to be able to read one without the
|
||||
need for internet connection. In our simulation, a feature will be
|
||||
represented as follow:
|
||||
</p>
|
||||
<p>This is a feature:</p>
|
||||
<FeatureItem :feature="feature" />
|
||||
<p>
|
||||
It starts with the intention "<code>{{ feature.name }}</code>". This is what we'll add to the mobile app.
|
||||
</p>
|
||||
<p>
|
||||
<span class="numeric">({{ feature.complexity }})</span> is the complexity
|
||||
of the feature. The more complex a feature is, the more chance to have
|
||||
defect we have.
|
||||
of the feature. The more complex a feature is, the more chance we introduce a defect.
|
||||
</p>
|
||||
<p>
|
||||
<span class="numeric">{{ feature.leadTime }}d</span> is the number of days
|
||||
the feature started its journey. The ultimate goal is to reduce this
|
||||
number and deliver as fast as possible.
|
||||
the teams work on the feature. The goal is to reduce this number and
|
||||
deliver as fast as possible.
|
||||
</p>
|
||||
<p>
|
||||
<QualityIssue class="inline" :quality-issue="feature.qualityIssue" />
|
||||
are the number of defects the feature had during the flow.
|
||||
are the number of defects the feature had during the flow. For the sake of
|
||||
simplicity, we assume teams are capable of detecting every defects and we
|
||||
never deliver defects.
|
||||
</p>
|
||||
<p>
|
||||
You have 20 features to deliver, and each day you can choose between 3
|
||||
strategies:
|
||||
Okay! We have 20 features to deliver. It takes one day for each team to finish
|
||||
their part for each feature.
|
||||
</p>
|
||||
<p>Each day, you can choose between 3 strategies:</p>
|
||||
<ol>
|
||||
<li>
|
||||
Push system
|
||||
@@ -58,19 +69,15 @@ const feature: Feature = {
|
||||
<ProblemSolvingIcon />
|
||||
</li>
|
||||
</ol>
|
||||
<FlowControls :with-eraser="false" />
|
||||
<p>
|
||||
In this article we'll focus on how these strategies are efficient and what
|
||||
are the impact on the quality the teams produce.
|
||||
are the impact on the quality the teams produce. Let's dive in each
|
||||
strategy!
|
||||
</p>
|
||||
<h3>The push system: start features as many as possible</h3>
|
||||
<h4>Seeking for the most of each team</h4>
|
||||
<h3>The push system: start as many features as possible</h3>
|
||||
<p>
|
||||
Pushing all the feature as fast as possible, this is the only strategy
|
||||
that allows us to target the best possible result: `# step × # status × #
|
||||
features`. We may overburden teams in the process though. But as we
|
||||
already invest money everybody to work so if there is someone who has
|
||||
nothing to do, this is just money down the drain.
|
||||
By pushing features from the start, we try to maximize the time worked by teams on the product.
|
||||
This way, no money is wasted, everyone has everytime something to do.
|
||||
</p>
|
||||
<h3>The pull system: produce features only when the next team needs it</h3>
|
||||
<p>
|
||||
@@ -79,6 +86,12 @@ const feature: Feature = {
|
||||
waiting for next team to be ready before doing some extra work than having
|
||||
stock of feature pre-baked.
|
||||
</p>
|
||||
<p>
|
||||
To make this happen we first need to setup blue bins: our security stocks
|
||||
Blue bins make sure teams can work without any blockers. The next team
|
||||
will always have material to transform. Here, we'll have 2 blue bins per
|
||||
team.
|
||||
</p>
|
||||
<h3>Problem solving: no production, just reflection</h3>
|
||||
<p>
|
||||
We invest days where we are not productive at all to investigate and
|
||||
@@ -87,15 +100,6 @@ const feature: Feature = {
|
||||
understand and limit rework. The more the team investigate, the more the
|
||||
team learn and start to be extremely good at problem solving.
|
||||
</p>
|
||||
<h3>Blue bin: the security stock</h3>
|
||||
<p>
|
||||
Blue bins are your security stock, they make sure teams can work without
|
||||
any blockers. The next team will always have material to transform. But it
|
||||
comes with a cost: too many blue bins add overburden, stagnation
|
||||
(increasing lead time) and duplicated mistakes. The less you have, the
|
||||
more the team can focus. But the more you have, the more secure you are to
|
||||
make teams work, we have to find the good balance.
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user