#blog
象のカルパッチョ
[https://docs.google.com/document/d/1TCuuu-8Mm14oxsOnlk8DqfZAA1cvtYu9WGv67Yj_sSk/pub](https://docs.google.com/document/d/1TCuuu-8Mm14oxsOnlk8DqfZAA1cvtYu9WGv67Yj_sSk/pub)
# なぜこのブログを読んだか
ユーザーストーリーを細かく分割する方法として [[Staff Engineer Leader ship beyond the management track]] に載ってた
# 何が書かれているか
ユーザーストーリーを小さくするためのワークショップの開催の仕方
## What we will do
- Build a simple application in 40 minutes, divided into 5 iterations x 8 minutes.
- Most people would build this app in 2-3 slices, we will do it in 15-20.
- Elephant carpaccio = very thin slices, each one still elephant-shaped. Together they form the whole elephant.
## The Product
小売業者の計算プログラムを作成する
3つの入力を受けて合計に応じて値引きを適用しつつ税率をかけて出力する
- How many items
- Price per item
- 2-letter state code

## Create Backlog
- 10-20 程度の人にデモすることが可能なユーザーストーリーに分けて、 何もないところから 5 states & 5 discounts までいけるようにする
- Slice のガイドライン
- Implementable in 5~10min
- Noticeable different from last slice
- More valuable to customer than last slice
- 最初のいくつかはリスクにフォーカスしてもok
最初の方は、

- 最初は環境構築レベルの "Hello world" から入って概ね5個くらいにはなった
- もっと小さくしていく
- e.g.
- Order value. 2 inputs, 1 output. No state tax, no discounts.
- Hard-coded state tax. Still 2 inputs, 1 output. Utah state tax added automatically. (Now we can go live in Utah!).
- 3 inputs (price per item, # of items, state tax %). Output is order value with state tax added.
- User inputs actual tax rate rather than state code. This gives simpler code (no internal data structure to map state code to tax rate), so we get faster delivery.
- 3 inputs (price per item, # of item, state tax), but only two states are supported. Any other gives error message.
- Add the other 3 states. (discuss why there is limited value in adding 1 state at a time at this point - there is no risk reduction value, and it takes literally just a few seconds more to all 3 states at once)
- 最低でも15個のストーリーになるようにしよう
## write and test
このワークショップがユニークなのは実際に実装までするか
まずは、どのように実装していくか
- ペアプロ
- 開発者とビジネス役に分かれて開発者が作ったものをビジネス役がテストしてフィードバックする
- etc...
どうやってテストを書いていくか
- TDD
- Red-green
- Some Tests (TDDほど先にテストを書くということはしない)
- NFT (no f*ing test)
40minutes = 5 iteration * 8minutes per iteration
- 毎回のイテレーションのたびに「デモタイム」がある
## 終わり
- How far did you get?
- value curve のどの辺までいけたか
- How many slices
- Acceptance test
- Utah, 978 items, cost $270.99
## 振り返り
- How is your code quality, how proud are you of your code (1~5)
# メモ
- [https://github.com/omuomugin/Elephant-Carpaccio-Exercise](https://github.com/omuomugin/Elephant-Carpaccio-Exercise)
- 実際に自分でもやってみた
- テスト環境を整えるとか、CI/CD に事前に投資するとかは実は分けてやってもよかったかもしれない
# 感想