User Tools

Site Tools


learning_agile-_understanding_scrum_xp_lean_and_kanban_-_andrew_stellman_jennifer_greene

This is an old revision of the document!


"Learning Agile: Understanding Scrum, XP, Lean, and Kanban" - Andrew Stellman, Jennifer Greene

Reference

Notes

Excellent book if you are just starting out down the path of agile. Provides an excellent overview of not only base practices of Scrum, XP, Lean and Kanban, but also offers up the values and principles behind the approaches, and how you can use these tools to address your specific issues. In particular for me, it was an excellent refresher on these basics (see Values and Principles).

On The Differences

I thought this was a pretty succinct way of pointing out the differences between these basic approaches:

“Scrum primarily focuses on project management: the scope of the work that will be done, when that work will be delivered, and whether the outcome of that work meets the needs of the users and stakeholders.

The focus of XP is software development. The XP values and practices are built around creating an environment conducive to development, and developing programmer habits that help them design and build code that’s simple and easy to change.

Kanban is about helping a team improve the way that they build software. A team that uses Kanban has a clear picture of what actions they use to build software, how they interact with the rest of the company, where they run into waste caused by inefficiency and unevenness, and how to improve over time by removing the root cause of that waste.”

On Architecture

I especially liked the discussion on emergent architecture. Quoting from Auke Jilderda in response to th question “So, designing for reuse isn’t always a great thing?” Auke says “It’s not really a very suitable approach for software development. What you typically do in open source is that you start by building something for one use first.” The thinking is that if you “design to reuse” you don't usually end up with the simple, “each function does one thing” type approach that something like UNIX exemplifies.

The idea is to leverage emergent design “When a system is designed so that its behavior seems to emerge from the interactions between the individual units working together, in a way that doesn’t seem to originate from one single unit, it’s called emergent design. Systems built using emergent design almost always consist of small, independent, decoupled units (like Unix tools, or ants). Those pieces are combined to perform complex tasks, and the behavior of the system comes as much from the interactions between those units as it does from the individual units themselves.”

“A system built using emergent design can grow for years, while staying maintainable and easy to change.”

Want to Know More

~~LINKBACK~~ ~~DISCUSSION~~

/home/hpsamios/hanssamios.com/dokuwiki/data/attic/learning_agile-_understanding_scrum_xp_lean_and_kanban_-_andrew_stellman_jennifer_greene.1484946254.txt.gz · Last modified: 2020/06/02 14:23 (external edit)