article: better introduction

This commit is contained in:
Julien Calixte
2025-04-10 22:26:48 +02:00
parent eea6ed74d5
commit f8abdeb4ad

View File

@@ -121,55 +121,50 @@ const createdAt = new Date('2025-01-08').toLocaleDateString(undefined, {
coding, and ensuring the product goes live. coding, and ensuring the product goes live.
</p> </p>
<p> <p>
First, what is a feature? A feature is a software component that First, let's take a moment to define the most important element: the
provides a functionality for the user. Examples include the ability to feature. A feature is a software component that provides a functionality
read articles, share content, or use the app offline. In our simulation, for the user like the ability to read articles, share content, or use
a feature is represented as follows: the app offline. In our simulation, a feature is represented as follows:
</p> </p>
<FeatureItem :feature="feature" /> <FeatureItem :feature="feature" />
<p> <p>
Each feature starts with an intention: "<code>{{ feature.name }}</code Each feature starts with an intention: "<code>{{ feature.name }}</code
>". This defines what we will add to the mobile app. >". "<span class="numeric">{{ feature.leadTime }}d</span>" indicates the
number of days teams work on the feature. The goal is to minimize this
number and deliver features as quickly as possible. "<QualityIssue
class="inline"
:quality-issue="feature.qualityIssue"
/>" shows the number of defects found in the feature during its workflow
<em
>(For simplicity, we assume teams can identify all defects, and no
defective features are delivered)</em
>. Any defect must be reworked by the team that caused it.
</p> </p>
<p>It takes one day to each team to complete their part.</p>
<!-- [complexity] <!-- [complexity]
<p> <p>
<span class="numeric">({{ feature.complexity }})</span> is the <span class="numeric">({{ feature.complexity }})</span> is the
complexity of the feature. The more complex a feature is, the more complexity of the feature. The more complex a feature is, the more
chance we introduce a defect. chance we introduce a defect.
</p> --> </p> -->
<p>
<span class="numeric">{{ feature.leadTime }}d</span> indicates the
number of days teams work on the feature. The goal is to minimize this
number and deliver features as quickly as possible.
</p>
<p>
<QualityIssue class="inline" :quality-issue="feature.qualityIssue" />
shows the number of defects found in the feature during its workflow.
For simplicity, we assume teams can identify all defects, and no
defective features are delivered. Any defect must be reworked by the
team that caused it.
</p>
<p>
Okay! We have 20 features to deliver. Each team takes one day to
complete their part for a feature.
</p>
<!-- [dps] <p>Each day, you can choose between 3 strategies:</p> --> <!-- [dps] <p>Each day, you can choose between 3 strategies:</p> -->
<p>Every day, you can choose between two strategies:</p>
<ol>
<li><PushSystemIcon /> Push system</li>
<li><PullSystemIcon /> Pull system</li>
</ol>
<p> <p>
In this article, well examine how these strategies affect efficiency Okay! We have 20 features to deliver and every day, you can choose
and quality. Lets explore each one! between two strategies:
</p> </p>
<h3>The Push System: Start as Many Features as Possible</h3> <h3>
1. <PushSystemIcon /> The Push System: Start as Many Features as
Possible
</h3>
<p> <p>
In the push system, we aim to maximize the time teams spend working on In the push system, we aim to maximize the time teams spend working on
the product. This ensures no downtime, as everyone always has tasks to the product. This ensures no downtime, as everyone always has tasks to
complete. complete.
</p> </p>
<h3>The Pull System: Produce Features When the Next Team Needs Them</h3> <h3>
2. <PullSystemIcon /> The Pull System: Produce Features When the Next
Team Needs Them
</h3>
<p> <p>
Instead of pushing features forward, the pull system waits until the Instead of pushing features forward, the pull system waits until the
next team is ready. This approach acknowledges that the ideal "push next team is ready. This approach acknowledges that the ideal "push
@@ -177,9 +172,9 @@ const createdAt = new Date('2025-01-08').toLocaleDateString(undefined, {
readiness, we avoid creating a backlog of pre-prepared features. readiness, we avoid creating a backlog of pre-prepared features.
</p> </p>
<p> <p>
To implement this, we introduce "blue bins" as safety stock. These bins We introduce "blue bins" as safety stocks: these bins ensure teams
ensure teams always have work ready to process without delays but we always have work ready to process without delays
stop whenever blue bins are full. <em><strong>but</strong></em> teams stop whenever blue bins are full.
</p> </p>
<!-- [dps] <!-- [dps]
<h3>Problem solving: no production, just reflection</h3> <h3>Problem solving: no production, just reflection</h3>
@@ -191,12 +186,15 @@ const createdAt = new Date('2025-01-08').toLocaleDateString(undefined, {
team learn and start to be extremely good at problem solving. team learn and start to be extremely good at problem solving.
</p> --> </p> -->
</div> </div>
<div class="text">
<p>All set? Let's make this app!</p>
</div>
<FlowDashboard class="above" /> <FlowDashboard class="above" />
<FeatureSteps alias="playground" /> <FeatureSteps alias="playground" />
<div class="manual-simulation text"> <div class="manual-simulation text">
<p> <p>
Well, what do you think? Not so simple... What are the insights from Well, what do you think? Not so obvious... What can we say? Here are
these strategies? Here are some observations: some observations:
</p> </p>
<ol> <ol>
<li> <li>