Learning Agile Savvy 101

September 16, 2009 

what the customer really wanted

Understanding Agile is not easy. Many think that it is easy. Let me tell you that it is not. You wouldn't expect that a methodology that manages complex software development projects would be. Just because it's lightweight doesn't mean it's easy. So here's a clue, if you thought you would learn Agile Development (any flavor) but you didn't put in much work, time or thought into it then it's not Agile.

Learning Agile Step 1) Read the Agile Manifesto's 4 Values and 12 Principles (link). OK, you've read them. Now spend some time and understand them. Because when you say you are using Agile you are really saying that you are using a Methodology or Framework that conforms to the Agile Manifesto's 4 Values and 12 Principles.

Learning Agile Step 2) There are many books on Agile Software Development but what you want at this point point is a real good over view. I would suggest Craig Larman's Agile and Iterative Development: A Manager's Guide. It's probably the best Agile overview I have read. And I stress "overview" because in this book Craig definitely does not dive into details.

Learning Agile Step 3) Now that you have a firm foundation on the Agile Values and Principles as well as an understanding of where we came from and how we got here (and what we learned along that way) it's time to dive into the details and ask other questions like:

* What is the Cone of Uncertainty and why does it matter?
* Why is estimating in Story Points better than Use Cases?
* Are Use Cases no longer relevant?
* Which Agile processes are less important than others?
* Are Definitions of Done (DoD) important and if they are how are they used?
* and many more

Get involved in local and national groups such as Scrum User Groups, the Agile Project Leadership Network, Agile Alliance, Agile Events, etc. They discuss the answers to these types of questions so that we can continually improve ourselves and our teams.

Learning Agile Step 4) There are many flavors of Agile; Scrum, XP, FDD, DSDM, Crystal and a some others (See Resources for links) and you should have a decent understanding of the similarities and differences between them.

Learning Agile Step 5) While you should have a fair understanding of what everyone on the team does and is responsible for you also need to dive down into the practices for your particular area of expertise (because not everyone is a true Generalizing Specialist). If you are a Developer then what does Done and Quality look like to you; commented code, Unit Tests, Test Driven Development, Continuous Integration, Automated Promotion, etc. If you are in Quality Assurance the what does Done and Quality look like to you; owning Test Cases, Executable Requirements, Load/Performance Testing, Test Automation (Smoke and Regression), etc.

Learning Agile Step 6) Agile is a way of viewing the things we do in software development through the lens of the Agile Manifesto's 4 Values and 12 Principles. Agile can look and act differently between teams, companies and even projects. The best example of this is Crystal from Alistair Cockburn which promotes different processes and practices depending on where your project falls within a matrix. However, no matter which methodology or framework you chose you need to plug in, get involved and read, read, read. BUT remember not to believe everything you read. You can start with the Agile Savvy Resources page. Throw it up against the Agile Manifesto's 4 Values and 12 Principles, your IT experiences and other people you know and trust. Integrate what makes sense, test it out and keep it if it makes you better/throw it out if it doesn't.


Thank you for taking the time to read this article. I would be happy to receive any comments that you may have. email feedback@agilesavvy.com and include the article name "Learning Agile Savvy 101" in the subject line.