complete the article

This commit is contained in:
Julien Calixte
2023-07-31 22:58:16 +02:00
parent b2eeb1c02b
commit 3cc24fe8aa
9 changed files with 87 additions and 24 deletions

View File

@@ -19,5 +19,6 @@
"titleBar.activeForeground": "#e7e7e7", "titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#00299299", "titleBar.inactiveBackground": "#00299299",
"titleBar.inactiveForeground": "#e7e7e799" "titleBar.inactiveForeground": "#e7e7e799"
} },
"peacock.remoteColor": "#002992"
} }

View File

@@ -1,8 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import SeparatorIcon from '@/icons/SeparatorIcon.vue' import SeparatorIcon from '@/icons/SeparatorIcon.vue'
import FlowConclusion from '@/modules/article/FlowConclusion.vue'
import FlowHypothesis from '@/modules/article/FlowHypothesis.vue' import FlowHypothesis from '@/modules/article/FlowHypothesis.vue'
import FlowIntro from '@/modules/article/FlowIntro.vue' import FlowIntro from '@/modules/article/FlowIntro.vue'
import FlowMultipleSimulation from '@/modules/article/FlowMultipleSimulation.vue'
import FlowSetup from '@/modules/article/FlowSetup.vue' import FlowSetup from '@/modules/article/FlowSetup.vue'
import FlowSingleSimulation from '@/modules/article/FlowSingleSimulation.vue'
import FeatureSteps from '@/modules/feature/FeatureSteps.vue' import FeatureSteps from '@/modules/feature/FeatureSteps.vue'
import FlowDashboard from '@/modules/feature/FlowDashboard.vue' import FlowDashboard from '@/modules/feature/FlowDashboard.vue'
import SimulationControls from '@/modules/simulation/SimulationControls.vue' import SimulationControls from '@/modules/simulation/SimulationControls.vue'
@@ -21,8 +24,14 @@ import SimulationDashboard from '@/modules/simulation/SimulationDashboard.vue'
<FeatureSteps alias="introducing" /> <FeatureSteps alias="introducing" />
<FlowDashboard class="above" /> <FlowDashboard class="above" />
<FeatureSteps alias="playground" /> <FeatureSteps alias="playground" />
<SimulationControls class="above" /> <SimulationControls type="single" class="above" />
<SimulationDashboard /> <SimulationDashboard />
<FlowSingleSimulation class="text" />
<SimulationControls type="multiple" class="above" />
<SimulationDashboard />
<FlowMultipleSimulation class="text" />
<SeparatorIcon />
<FlowConclusion class="text" />
</div> </div>
</template> </template>

View File

@@ -0,0 +1,24 @@
<template>
<div class="flow-conclusion">
<p>
When money and pressure are in the game, fear, uncertainty, and doubt
spread out rapidly. So we rush, as fast as we can, and when a team has
nothing to do, it becomes a disaster: money are being burned.
</p>
<p>
Teams will overproduce. They will do every pieces they can as they are
autonomous: product team will pitch their features, designers will design
every pages, developers will rush to code forgetting why the customer
needs this precise feature. They will then struggle to get these pieces to
the very end when they will transfer them to the others teams.
Multitasking will drastically drop the productivity. So the fear of having
nothing to give to the next team pushes us to produce just in case. Bugs
lead to more bugs that lead to more bugs.
</p>
<p>
But the best way to succeed is to ask: "Is this what you need? How can I
help you?". Just like in Ekiden, handovers are where the real struggles
happen but we're on the same race, together.
</p>
</div>
</template>

View File

@@ -2,7 +2,7 @@
<template> <template>
<div class="flow-hypothesis"> <div class="flow-hypothesis">
<p>Hypothesis:</p> <p>Here our hypothesis:</p>
<ol> <ol>
<li>it takes the same amount of time for each team to complete a task</li> <li>it takes the same amount of time for each team to complete a task</li>
<li> <li>

View File

@@ -1,18 +1,12 @@
<template> <template>
<div class="flow-intro"> <div class="flow-intro">
<p> <p>
This article is here to plan ahead ourselves to what can be misconceptions How good are we to succeed a project? Delivering the features at the good
on how to be effective. Teams will overproduce. They will do everything quality and at the right time. We're pretty bad at it and there is a lot
piece they can as they are autonomous. They will then struggle to get of misconceptions on how to manage people to do what need to be done. I
these pieces to the very end when they will transfer them to the others wanted to create a simulation to plan ahead and see what are the
teams. Multitasking will drastically drop the productivity. So the fear of consequences of different strategy patterns and which is the most
having nothing to give to the next team pushes us to produce just in case. effective.
Bugs lead to more bugs that lead to more bugs.
</p>
<p>
When money and pressure are in the game, fear, uncertainty, and doubt
spread out rapidly. So we rush, as fast as we can, and if a team has
nothing to do, it becomes a disaster.
</p> </p>
</div> </div>
</template> </template>

View File

@@ -0,0 +1,17 @@
<template>
<div class="flow-conclusion">
<p>Teams tend to underestimate how long a project will be.</p>
<p>
If we're not in a good pace, we just have to try harder. Only once. "Just
in time" becomes "Just this time". So teams overproduce. Creating stock
and latent defects the teams need to rework. The worse the project do, the
more silot we become and we tend to argue with a "I've done my job, if the
project fails it's not my fault.". The fact is that it's nobody's fault,
it's a system.
</p>
<p>
Short term objectives become the norm. It is never the right time to do
problem solving. To think on how we think.
</p>
</div>
</template>

View File

@@ -0,0 +1,10 @@
<template>
<div class="flow-conclusion">
<p>Pull systems win by a lot! Why is that?</p>
<p>
But it was only one simulation, maybe it can be different. To be sure,
let's generate 200 projects delivering 200 features each! And see what
happens...
</p>
</div>
</template>

View File

@@ -33,13 +33,8 @@ const featureStore = useFeatureStore()
days days
</div> </div>
</div> </div>
<div class="card"> </div>
Days <div class="row cards">
<div class="data">
<span class="numeric">{{ featureStore.meta.totalDays }}</span
>d
</div>
</div>
<div class="card"> <div class="card">
Takt time Takt time
<div class="data"> <div class="data">
@@ -47,6 +42,13 @@ const featureStore = useFeatureStore()
days days
</div> </div>
</div> </div>
<div class="card">
Days
<div class="data">
<span class="numeric">{{ featureStore.meta.totalDays }}</span
>d
</div>
</div>
<div class="card"> <div class="card">
ETA ETA
<div class="data"> <div class="data">
@@ -66,6 +68,7 @@ const featureStore = useFeatureStore()
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
gap: 1rem;
.cards { .cards {
display: flex; display: flex;

View File

@@ -1,6 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { Strategy } from '@/modules/lean/strategy' import { Strategy } from '@/modules/lean/strategy'
import { useSimulationStore } from '@/modules/simulation/simulation-store' import { useSimulationStore } from '@/modules/simulation/simulation-store'
defineProps<{
type: 'single' | 'multiple'
}>()
const simulationStore = useSimulationStore() const simulationStore = useSimulationStore()
const NUMBER_OF_SIMULATION = 200 const NUMBER_OF_SIMULATION = 200
@@ -15,7 +20,7 @@ const simulateEverything = () => {
<template> <template>
<div class="simulation-controls"> <div class="simulation-controls">
<div class="row"> <div class="row" v-if="type === 'single'">
<button <button
class="button button-outline" class="button button-outline"
@click="simulationStore.multiSimulation(1, 'push')" @click="simulationStore.multiSimulation(1, 'push')"
@@ -41,7 +46,7 @@ const simulateEverything = () => {
simulate pull with DPS simulate pull with DPS
</button> </button>
</div> </div>
<div class="row"> <div class="row" v-else-if="type === 'multiple'">
<button class="button button-outline" @click="simulateEverything"> <button class="button button-outline" @click="simulateEverything">
simulate {{ NUMBER_OF_SIMULATION }} simulations for each system simulate {{ NUMBER_OF_SIMULATION }} simulations for each system
</button> </button>