Iteration Podcast
Deeper Into Extreme Programing
Welcome to Iteration: a weekly podcast about programming, development, and design through the lens of amazing books, chapter by chapter
Corollary Practices of Extreme Programing
corollary: noun, a proposition that follows from one already proved. e.g. "The huge increases in unemployment were the corollary of expenditure cuts.
TLDR: Walk before you run
Real Customer Involvement
The point of customer involvement is to reduce wasted effort by putting the people with the needs in direct contact with the people who can fill those needs.
- things I’ve missed from not including customers: block width buttons, “bookings” language, “clickable cards” SO much is missed without really involving customers.
Root Cause Analysis
(After you write tests and fix the bug...) Once the defect is resolved, figure out _why_ the defect was created and wasn't caught. Initiate the necessary changes to prevent this kind of defect in the future
Five Whys
- hint: it's usually a people-problem
Incremental Development
- "Slices" concept from Shape Up
- Scoping the work into a very tiny working piece of functionality and incrementing work from there. - If you were to rebuild facebook, just create a "Wall" and a "newsfeed", leave "likes" or "comments" for a future iteration.
Negotiated scope contract
Magic formula for success as an agency:
- It's taken me 4+ years of freelance software development to learn this lesson.
- Scope is flexible, budget, time quality are not.
- This is a game-changer, learn this as early as possible.
Other practices
- shared code
- single code base
- daily deployment
The Whole XP Team
A variety of people must work together in interlinking ways to make a project more effective. They have to work together as a group for each to be successful.
TLDR: what should each of these roles do on an XP team?
Tester - find the happy path; find ways to break it
Interaction Designer - choose overall metaphors for the system; create personas and goals; help the team analyze and make sense of the world;
Product Managers - write stories; pick themes and stories in quarterly cycles; prioritizes; encourage communication between customers and programmers
Project Managers Facilitate communication, help identify priorities and consistent accountability.
Executives Courage, confidence and accountability