I have worked inside healthy software delivery processes for a long time and learned a lot from my surroundings and books like The Pragmatic Programmer and The Clean Coder. The shortcoming of these kinds of books is that they are aimed at programmers. They told me what I needed to know to follow the process like an expert programmer and why the processes and methodologies existed, but they did not prepare me for leadership in improving my team’s processes. I wanted to know some of the same things the experts know so that I could have an intelligent conversation with an agile expert and even stand in as the next-best-expert when no expert was around.

I recently finished listening to Learning Agile.

Key takeaways

  • There is no best way to build software. Each organization and team will define success differently and find that success by different means. Still, understanding how others have found success and which are generally good and bad practices will help drive success.
  • Agile is a mindset laid out in the Agile Manifesto
  • Scrum is a software development methodology that has specific practices to follow. My favorite is to deliver working software every two weeks.
  • Kanban is a system for continual process improvement. It does not prescribe specific practices but lets you evaluate and improve the process you already have.
  • XP (Extreme Programming) is a set of specific practices for programmers.
  • Make decisions at the last responsible moment.

Biggest Surprise

XP suggests pair programming all the time. Needing to align schedules to pair on an easy-to-implement programming task seems extreme (pun intended).

Who would I recommend it to?

Anyone working in software.