DEV Community

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

Picks

Episode source