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'