diff --git a/src/modules/feature/FeatureSteps.vue b/src/modules/feature/FeatureSteps.vue
index 2098129..b5b2a58 100644
--- a/src/modules/feature/FeatureSteps.vue
+++ b/src/modules/feature/FeatureSteps.vue
@@ -17,7 +17,9 @@ onMounted(() => featureStore.initBoard())
{{ featureStore.meanLeadTime }} days
-
+
Total days: {{ featureStore.meta.totalDays }}
diff --git a/src/modules/feature/feature-board.ts b/src/modules/feature/feature-board.ts
index 8ccc2a4..bf5c29c 100644
--- a/src/modules/feature/feature-board.ts
+++ b/src/modules/feature/feature-board.ts
@@ -1,6 +1,7 @@
import { Feature } from '@/modules/feature/feature'
import { FeatureStep } from '@/modules/feature/feature-steps'
import { features } from '@/modules/feature/feature.fixture'
+import { Strategy } from '@/modules/lean/strategy'
import { pickRandomElement, popNElement, shuffleArray } from '@/utils'
const MAX_FEATURES = 30
@@ -73,11 +74,13 @@ export const initBoard = (
export const nextDay = ({
backlog,
features,
- initialStep
+ initialStep,
+ strategy
}: {
backlog: Feature[]
features: Feature[]
initialStep: number
+ strategy: Strategy
}): Feature[] => {
features.forEach((feature) => {
const isFeatureLive = feature.step === 0 && feature.status === 'done'
@@ -111,7 +114,7 @@ export const nextDay = ({
}
})
- if (features.length < MAX_FEATURES) {
+ if (strategy === 'push' && features.length < MAX_FEATURES) {
const [newFeature] = popNElement(backlog, 1)
if (newFeature) {
diff --git a/src/modules/feature/store.ts b/src/modules/feature/store.ts
index a8d17e8..5b71cdd 100644
--- a/src/modules/feature/store.ts
+++ b/src/modules/feature/store.ts
@@ -1,6 +1,7 @@
import { Feature } from '@/modules/feature/feature'
import { initBoard, newBoard, nextDay } from '@/modules/feature/feature-board'
import { FeatureStep, featureSteps } from '@/modules/feature/feature-steps'
+import { Strategy } from '@/modules/lean/strategy'
import { sumElements } from '@/utils'
import { defineStore } from 'pinia'
@@ -29,11 +30,12 @@ export const useFeatureStore = defineStore('feature', {
this.features = initBoard(this.steps, this.backlog)
this.meta.totalDays = 0
},
- nextDay() {
+ nextDay(strategy: Strategy) {
this.features = nextDay({
backlog: this.backlog,
features: this.features,
- initialStep: this.steps[0].stepIndex
+ initialStep: this.steps[0].stepIndex,
+ strategy
})
this.meta.totalDays++
}
diff --git a/src/modules/lean/strategy.ts b/src/modules/lean/strategy.ts
new file mode 100644
index 0000000..6988ea2
--- /dev/null
+++ b/src/modules/lean/strategy.ts
@@ -0,0 +1 @@
+export type Strategy = 'push'