Essential Practices

Episode Summary

We dive further into Extreme programing and get hands on with practices. Informative workspace, Energized Work, Pair Programing, Stories and more.

Episode Notes

A weekly podcast about programming, development, and design through the lens of amazing books, chapter by chapter

John: Hi, I'm John and I'm joined by JP.

JP: Today we will be going through chapters 6, 7, and 8 for those following alone - which are all about Extreme Programming practices. These are the things that XP teams are doing on a daily basis. Kent Beck defines two categories for practices: Primary Practices and Corollary Practices. You must first master the primary practices before considering corollary ones. This episode focuses on primary practices.

Practices that do not serve a purpose or have values are empty. For example, pair programming for the sake of making your boss happy doesn't make much sense. However, pair programming to communicate, get feedback, simplify the system, catch errors, and bolster courage makes a lot of sense.

Reminder - XP Principles

Primary Practices (Chapter 7)

Sit together

XP predicts that the more face time you have, the more humane and productive the project.

👨‍🏫 humanity

👨‍🏫 improvement

👨‍🏫 quality

Informative workspace

Make your workspace about work. An interested observer should be able to walk into the team space and get a general idea of how the project is going in 15 seconds.

👨‍🏫 mutual benefit - doing stuff today that benefits me now and in the future

👨‍🏫 flow

Energized work 🔥

Work only as many hours as you can be productive and only as many hours as you can sustain. Burning yourself out unproductively today and spoiling the next two days' work isn't good for you or for the team.

Taking care of yourself is the quickest way back to energized work.

I turn to long work hours as a way of grabbing control in a situation in which I am otherwise out of control

👨‍🏫 flow

👨‍🏫 humanity

👨‍🏫 improvement

👨‍🏫 mutual benefit

Hot tips:

➡️ stay the same amount of time but manage time better

➡️️️️️ block off 2 hours at a time in your calendar just for coding

➡️ turn off phone, email, and slack notifications

Pair programming


Plan using customer-visible functionality. As soon as the story is written, try to estimate the development effort necessary to implement it.

Write stories on index cards and put them on a frequently passed wall. Every attempt I've seen to computerize stories has failed to provide a fraction of the value of having real cards on a real wall.

👨‍🏫 flow

👨‍🏫 reflection

👨‍🏫 quality

Ten-minute build

Continuous integration

Getting Started (Chapter 8)

REMEMBER! XP is a way to improve both your development process and your experience in it.

Change always starts at home. The only person you can actually change is yourself. [...] Dictating practices to a team destroys trust and creates resentment.