Summary
When I think “Samurai”, I think expert. This is a book for beginners. It gives overviews and illustrations on the full range of development, but does not get into great detail. One thing about this book, the chapters and sub-chapter names are not very descriptive about the content, they are more of the main idea in the paragraph than a heading–which makes it difficult to find things. The Sensei dialogues are not really that effective, more show than content. Much of each chapter is very light reading with little insight, but there are nuggets and good illustrations sprinkled throughout. There are some good techniques throughout, but with the disorganization it is difficult to jump right at them.
Top 3 Things I learned
- The inception deck is a wonderful project chartering tool.
- I really like the tradeoff sliders. A good way to make tough choices early.
- The story gathering workshop was quite good.
Notes: Chapter 1: Agile in a Nutshell
TERM: Adaptive Planning: When reality disagrees with your plan, change your plan
QUOTE: If death is on the line, then you’d better get it done
NOTE: This is a very quick intro, covers a lot of topics quickly
- Deliver something of value every week
- How does Agile Planning work: See term adaptive planning
- Done means done: Shippable and customer happy
- There simple truths:
- Can’t know all the requirements up front
- Requirements change
- More to do than time available
Notes: Chapter 2: Meet your agile team
NOTE: Very good chapter on Agile Teams
TECHNIQUE: In iteration zero, Draw a venn diagram with the following circles: Dev, QA, UX, BA, PM
- How agile teams are different: See technique above with venn
- What makes them tick
- co-location
- enaged customers
- self-organizing
- accountable and empowered
- cross functional
- Typical team roles
- customer
- analyst
- programmer
- tester
- pm
- ux
- teammate tips
- generalists
- ambiguity
- no egos
Notes: Chapter 3: How to get everyone on the bus
NOTE: This chapter is strictly about Project Chartering and introduces and talks about a single technique: Inception Deck. Chapter 4 talks in more detail about the “why” deck elements and Chapter 5 talks in more detail about the “how” deck elements.
Inception Deck
- Why are we here
- Create an elevator pitch
- Design a product box
- NOT list
- Meet your neighbors
- Show the solution
- What keeps us up at night
- Size it up
- Be clear on what’s going to give
- Show what its going to take
Notes: Chapter 4: See the big picture
NOTE: This chapter expands on the inception deck
QUOTE: Your project community is always bigger than you think.
TECHNIQUE: Elevator Pitch Template (below0
TECHNIQUE: NOT list (IN/OUT/UNRESOLVED)
- Why are we here
- Go visit the customer
- Discover the customer’s intent
- Create an elevator pitch
- Design a product box
- NOT like
- Meet your neighbors
Elevator Pitch Template
- FOR [target customer]
- WHO [statement of need]
- THE [product name]
- IS A [product category]
- THAT [key benefit]
- UNLIKE [current way]
- OUR PRODUCT [primary differentiation]
Notes: Chapter 5: Making it Real
SUMMARY: This chapter deals with the “how” items in the inception deck.
PARAPHRASE: If there is too much to do, then do less
PARAPHRASE: If reality disagrees with the plan, then change the plan
- Visualize the problem: use butcher paper and make cartoons
- Project Risks: These are worth sweating
- Size it up: Rough timeline, max, 6 months out
- Tradeoff slides:
- Most Precious (each gets one level): Quality : Time : Scope : Budget
- Not enough time (each gets one level): Out of Scope : More People : Push out release : Sacrifice Quality
- Intangibles
- Clarify stakeholders: he goes for one <– Might be an interesting topic to see how to deal with mult. stakeholders.
Notes: Chapter 6: Gathering User Stories
SUMMARY: Talks about gathering, not writing user stories
QUOTE: Because life is too short to write everything down
IDEA: Capturing requirements in a document, customers rarely get what they want.
IDEA: A user story is a promise of a conversation
Elements of a good user story
- Independent
- Negotiable
- Value
- Estimable
- Small
- Testable
Non-Functional, non-testable user stories turn into constraint cards.
Story Card Gathering Workshop:
- Big Open Room
- Draw lots of pictures
- Personas
- Flowcharts
- Scenarios
- System Maps
- Process Flows
- Concept Designs
- Storyboards
- Paper prototypes
- Write Lots of User Stories
- Brainstorm Everything Else
- Scrub and make shine [I like the story card matrix myself]
Notes: Chapter 7: Estimation: The fine art of guessing
- Cone of Uncertainty. Beginning of a plan, worse time to try to nail down an estimate.
- Relative sizing by points
- Relative Day does not equal calendar day
- Triangulation (story card matrix helps here)
- Spike: Time boxed experiment where we do just enough investigation to make an estimate.
- Planning Poker: Power of a discussion.
Notes: Chapter 8: Agile Planning: Dealing with Reality
QUOTE: Why does reality keep messing with my GANTT chart.
To make a plan:
- Create a master story list
- Size it up
- Prioritize
- Estimate your velocity
- Pick some dates: delivery by date or feature by date
Examples:
- New Requirements
- Flexible about scope
- Push out the date
- Not as fast as you hoped
- Go Spartan
- Lose team member
- adjust expectations
- Run out of time
- Flex scope
- Go Spartan
Notes: Chapter 9: Iteration Management: Making it happen
SUMMARY: A brief introduction on Iterations and the concept of doing everything within the iteration versus waterfall.
- Deliver value every week
- Agile iteration
- Do just enough analysis
- Do you deep dive analysis just-in-time
- Promotes doing analysis one iteration before
- Likes the following steps for Analysis
- Flowchart
- Personas
- Paper prototypes
- Introduces Step 0
- Introduces check work
- Introduces Kanban: WIP: Work in progress
Notes: Chapter 10: Creating an Agile Communication Plan
SUMMARY: A short chapter on how an iteration is organized.
4 Activities:
- Story Planning Meeting: non-customer
- Showcase: A sprint review
- Iteration Planning Meeting: customer involvement
- mini retrospective: Promotes a small, ten minute retrospective at the end of an iteration
Notes: Chapter 11: Setting Up a visual workspace
SUMMARY: Introductory material on information radiators.
4 Key Elements:
- Story Wall (Current Iteration)
- Release Wall (All iterations)
- Velocity and BurnDown
- Inception Deck
Notes: Chapter 12: Unit Testing: Knowing it works
SUMMARY: A very superficial chapter on unit testing.
4 must haves:
- Unit testing
- Refactoring
- TDD
- Continous Integration
Notes: Chapter 13: refactoring: Paying down your technical debt
SUMMARY: Illustration and demonstration of refactoring
TERM: Technical Debt; The continuous accumulation of shortcuts, hacks, duplication, and other sins we regularly commit against our code base in the name of speed and schedule.
TERM: Refactoring. Continuously making small incremental design improvements to software without changing external behavior.
Refactor aggressively:
- rename variable/method
- inline variable
- extract method
Notes: Chapter 14: Test Driven Development
SUMMARY: Overview and Illustration of TDD.
Rules:
- Don’t write code until you have a failing test
- Test everything that could possibly break
What does TDD get you:
- Lower total cost of ownership
- Less code
- Forces you to think
- Quality baked in from the start
- Reduced complexity
- Simpler design.
Notes: Chapter 15: Continuous Integration: Making it production ready
SAYING Production starts on day one
CI:
- Source Code Repository
- Check in
- Automated Build
- Work in small chuncks