from Alistar Cockburn workshop (https://docs.google.com/document/d/1TCuuu-8Mm14oxsOnlk8DqfZAA1cvtYu9WGv67Yj_sSk/pub)
Releasing software is actually releasing decisions. Every delivered decision is actually a choice that can be wrong. So what we release in production can contains a set of wrong decisions. Furthermore a decision can depend on other decisions, so a failure on one early decision impact the subsequent ones. This mean that rework an early decision is more difficult if not impossible to do. Thereby a failure in one early decision can consequently challenge the entire delivery.
How to fix? reducing the amount of decision per release, and organize the release like a business test on the delivered decision. If some assumption was wrong you can still rework and adjust, before going on.
- How to slice large applications into 1-day to 1-week requests, business perspective.
- How to slice application requests into 15-30 minute work slices, programming perspective.
Accept inputs from the user:
- Quantity: a number of items,
- Price: a price for the item,
- State: a 2-letter state code
Compute the price of the order, giving a discount based on order value (not number of items), adding state tax based on the state and discounted order value.
Order value | Discount rate | State | Tax rate | |
---|---|---|---|---|
$ 1,000 | 3% | UT | 6.85% | |
$ 5,000 | 5 % | NV | 8.00% | |
$ 7,000 | 7% | TX | 6.25% | |
$ 10,000 | 10% | AL | 4.00% | |
$ 50,000 | 15% | CA | 10.00% |
# | Inputs | Output | Value |
---|---|---|---|
1. | no input | Output: Hello world | setup the project |
2. | Quantity and Price | Output: echo inputs | having a walking skeleton |
3. | Quantity and Price | Output: order value with no discount and fixed UT tax | Possibility to enable a test in UT |
4. | Quantity, Price and State | Output: order value with no discount and tax based on UT tax + echo State | verify that the enter State is correct |
5. | Quantity, Price and State | Output: order value with no discount and Tax based on UT tax | Automatic calculation of UT tax from the mapping of State with tax_rate |
6. | Quantity, Price and State | Output: order value with no discount and Tax based on UT and NV State | Go live on NV |
7. | Quantity, Price and State | Output: order value with no discount and Tax based on UT, NV, TX | Go live on TX |
8. | Quantity, Price and State | Output: order value with no discount and Tax based on UT, NV, TX, AL | Go live on AL |
9. | Quantity, Price and State | Output: order value with no discount and tax based on UT, NV, TX, AL, CA | Go live on CA |
10. | Quantity, Price and State | Output: order value with discount on $1,000 and tax based on UT, NV, TX, AL, CA | Possibility to put a discount over $1,000 |
11. | Quantity, Price and State | Output: order value with discount on $5,000 and tax on all State | Possibility to put discount over $5,000 |
12. | Quantity, Price and State | Output: order value with discount on $7,000 and tax on all State | Possibility to put discount over $7,000 |
13. | Quantity, Price and State | Output: order value with discount on $10,000 and tax on all State | Possibility to put discount over $10,000 |
14. | Quantity, Price and State | Output: order value with discount on $10,000 and tax on all State | Possibility to put discount over $50,000 |
15. | Quantity, Price and State from fancy cli | Output: order value with discount on $10,000 and tax on all State | User insert input through interface |