fix: talking about cycle time and ensure we have a lot of simulation
This commit is contained in:
@@ -43,9 +43,9 @@ const feature: Feature = {
|
||||
different strategy patterns and which is the most effective.
|
||||
</p>
|
||||
<p>
|
||||
Let's see what happens when we want to create a Newsletter mobile app.
|
||||
We have some functionalities to implement and we want to measure how
|
||||
long it takes.
|
||||
Let's see what happens when we want to create a news mobile app. We have
|
||||
some functionalities to implement and we want to measure how long it
|
||||
takes.
|
||||
</p>
|
||||
<p>
|
||||
<em
|
||||
@@ -206,19 +206,19 @@ const feature: Feature = {
|
||||
<SimulationDashboard />
|
||||
<div class="text">
|
||||
<p>
|
||||
Pull systems seem better. But before any conclusion, comparing two
|
||||
simulations is not enough. Let's generate 200 projects delivering the 20
|
||||
features of the Newsletter app and see what happens.
|
||||
Let's simulate... 1000 news mobile app! 500 for each system and see what
|
||||
are the trends.
|
||||
</p>
|
||||
</div>
|
||||
<SimulationControls type="multiple" class="above" />
|
||||
<SimulationDashboard />
|
||||
<div class="flow-multiple-simulation text">
|
||||
<p>
|
||||
Okay, now we're pretty sure! The takt time is quite close actually. But
|
||||
as the quality issue increase in the push system, these defects and
|
||||
corrections pile up and generate at about 15 days of difference. For a
|
||||
long time, I wanted a proof
|
||||
Okay, now we're pretty sure! The cycle time - the time needed to
|
||||
complete one feature - is quite close actually. But as the quality issue
|
||||
increase in the push system, these defects and corrections pile up and
|
||||
generate at about 15 days of difference. For a long time, I wanted a
|
||||
proof
|
||||
<em>to trust the process</em>, that's the beauty of simulations. It's
|
||||
quite impossible to convince people when we're in the middle of the
|
||||
battle. If teams change every time, you are doomed to get this problem
|
||||
|
||||
@@ -46,9 +46,9 @@ const featureStore = useFeatureStore()
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
Takt time
|
||||
Cycle time
|
||||
<div class="data">
|
||||
<span class="numeric">{{ featureStore.taktTime }}</span>
|
||||
<span class="numeric">{{ featureStore.cycleTime }}</span>
|
||||
days
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -62,11 +62,11 @@ export const useFeatureStore = defineStore('feature', {
|
||||
qualityIssues: (state) =>
|
||||
state.features.map((f) => f.qualityIssue).reduce((a, b) => a + b, 0),
|
||||
meanQualityIssue: (state) => getMeanQualityIssue(state.features),
|
||||
taktTime: (state): string => {
|
||||
const taktTime = (
|
||||
cycleTime: (state): string => {
|
||||
const cycleTime = (
|
||||
state.meta.totalDays / state.features.filter(isFeatureDone).length || 0
|
||||
).toFixed(2)
|
||||
return taktTime === 'Infinity' ? '-' : taktTime
|
||||
return cycleTime === 'Infinity' ? '-' : cycleTime
|
||||
},
|
||||
featuresGroupedByStep: (state) => {
|
||||
const groupedByStep: Record<number, Feature[]> = {}
|
||||
@@ -82,12 +82,12 @@ export const useFeatureStore = defineStore('feature', {
|
||||
return groupedByStep
|
||||
},
|
||||
eta(): string {
|
||||
if (this.taktTime === '-') {
|
||||
if (this.cycleTime === '-') {
|
||||
return '-'
|
||||
}
|
||||
|
||||
const eta = (
|
||||
parseFloat(this.taktTime) *
|
||||
parseFloat(this.cycleTime) *
|
||||
(this.features.filter((feature) => !isFeatureDone(feature)).length +
|
||||
this.backlog.length)
|
||||
).toFixed(2)
|
||||
|
||||
@@ -7,7 +7,7 @@ defineProps<{
|
||||
}>()
|
||||
|
||||
const simulationStore = useSimulationStore()
|
||||
const NUMBER_OF_SIMULATION = 200
|
||||
const NUMBER_OF_SIMULATION = 500
|
||||
|
||||
// [dps]
|
||||
// const strategies: Strategy[] = ['push', 'pull', 'push-dps', 'pull-dps']
|
||||
|
||||
@@ -42,9 +42,9 @@ const strategies: Strategy[] = ['push', 'pull']
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Takt time</td>
|
||||
<td>Cycle time</td>
|
||||
<td class="numeric" v-for="strategy in strategies" :key="strategy">
|
||||
{{ simulationStore.meanTaktTime(strategy) }}
|
||||
{{ simulationStore.meanCycleTime(strategy) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -8,7 +8,7 @@ import { defineStore } from 'pinia'
|
||||
|
||||
type Mean = {
|
||||
leadTimeSum: number
|
||||
taktTimeSum: number
|
||||
cycleTimeSum: number
|
||||
complexitySum: number
|
||||
qualityIssueSum: number
|
||||
teamWorkExperienceSum: number
|
||||
@@ -25,7 +25,7 @@ type State = {
|
||||
|
||||
const initMean = (): Mean => ({
|
||||
leadTimeSum: 0,
|
||||
taktTimeSum: 0,
|
||||
cycleTimeSum: 0,
|
||||
complexitySum: 0,
|
||||
qualityIssueSum: 0,
|
||||
teamWorkExperienceSum: 0,
|
||||
@@ -99,7 +99,7 @@ export const useSimulationStore = defineStore('dashboard', {
|
||||
|
||||
this.dashboards.push(dashboard)
|
||||
this.mean[strategy].leadTimeSum += dashboard.analysis.meanLeadTime
|
||||
this.mean[strategy].taktTimeSum +=
|
||||
this.mean[strategy].cycleTimeSum +=
|
||||
dashboard.meta.totalDays / newState.features.length
|
||||
this.mean[strategy].complexitySum += dashboard.analysis.meanComplexity
|
||||
this.mean[strategy].qualityIssueSum += dashboard.analysis.meanQualityIssue
|
||||
@@ -131,9 +131,9 @@ export const useSimulationStore = defineStore('dashboard', {
|
||||
state.mean[strategy].leadTimeSum,
|
||||
state.mean[strategy].simulations
|
||||
),
|
||||
meanTaktTime: (state) => (strategy: Strategy) =>
|
||||
meanCycleTime: (state) => (strategy: Strategy) =>
|
||||
getRound(
|
||||
state.mean[strategy].taktTimeSum,
|
||||
state.mean[strategy].cycleTimeSum,
|
||||
state.mean[strategy].simulations
|
||||
),
|
||||
meanComplexity: (state) => (strategy: Strategy) =>
|
||||
|
||||
Reference in New Issue
Block a user