This is an online simulation of the agile dot game
Go to https://afternoon-bayou-75731.herokuapp.com/
see https://github.com/michelgrootjans/dot-game/projects/2
Demo the simulation on a test project first. Show every person's task in the workflow.
Once the demo is over, ask the audience to estimate the average task in seconds.
We're going to run a number of iterations:
Process for each participant
- Wait for a batch of 4 items to appear in their inbox
- They take exactly 4 items in their workspace
- They solve the 4 items
- Move the 4 items to their outbox
- go to 1.
Process for each participant
- Wait for an item to appear in their inbox
- They take exactly 1 items in their workspace
- They solve the item
- Move the item to their outbox
- go to 1.
Process for each participant
- Wait for a batch of 4 items to appear in their inbox
- They take exactly 4 items in their workspace
- They solve the 4 items
- They move the 4 solved items only if their outbox is empty
- go to 1.
Process for each participant
- Wait for an item to appear in their inbox
- They take exactly 1 items in their workspace
- They solve the item
- Move the item to their outbox only if the outbox is empty
- go to 1.
The Product owner creating the items cannot go over a total WIP of 10. Everyone else works on one item at a time without the previous constraints.
The Product owner creating the items tries to keep the inbox of development populated to 2 items. Everyone else works on one item at a time without the previous constraints.
- There is no correlation between Effort and When will it be done?
- The nature of the work never changed
- The effort required to do each task was equal in all iterations
- The time it took for a single story to be done (lead time) was wildly different in each iteration.
- Parallel work with integration at the end of the process
- Collaboration: swarming, pair programming, ensemble programming
- Variability of work: some items might be analysis heavy, others QA-heavy
- ... probably more
run the following commands in two separate terminals:
npm run serverstartnpm run webpack:watch
open localhost:3000
There are a few scripts to simulate iterations. They require curl to be installed (which is usually pre-installed on most systems).
./scripts/work_hard.sh- Workers process tasks in parallel- Optional parameters:
TIME=30(default: 60) - Sets the simulation duration in secondsBASE_URL=https://example.com(default: http://localhost:3000) - Sets the base URL for API calls
- Example:
./scripts/work_hard.sh TIME=30 BASE_URL=https://afternoon-bayou-75731.herokuapp.com
- Optional parameters:
./scripts/kanban.sh- Kanban: workers limit their personal outbox WIP (PO included; QA not constrained)- Optional parameters:
WIP=4(default: 4) - Personal outbox limit per worker (applies to PO, Analyst, Developer, Ops; QA has no outbox WIP limit)TIME=30(default: 60) - Simulation duration in secondsBASE_URL=https://example.com(default: http://localhost:3000) - Base URL for API calls
- Example:
./scripts/kanban.sh WIP=4 TIME=45 BASE_URL=https://afternoon-bayou-75731.herokuapp.com
- Optional parameters:
./scripts/limit_wip.sh- Workers process tasks in parallel with a WIP limit- Optional parameters:
WIP=5(default: 10) - Sets the work-in-progress limitTIME=30(default: 60) - Sets the simulation duration in secondsBASE_URL=https://example.com(default: http://localhost:3000) - Sets the base URL for API calls
- Example:
./scripts/limit_wip.sh WIP=5 TIME=30 BASE_URL=https://afternoon-bayou-75731.herokuapp.com
- Optional parameters:
npm run test
npm run test:watch
npm run format
This work is licensed under a Creative Commons Attribution 4.0 International License.
