Last week an attendee at my Gangplank presentation contacted me with an interesting question. He wanted to learn more about Agile and Scrum. He asked “Where do I start?”
That is a hard question to answer. Not for a lack of information, but because there is so much out there. A great problem!
To answer the question I just sat down and started typing a flow of information. Below is the email I sent to the him, largely unchanged. Eventually I should turn this into a polished document. I hope you find it valuable and get a starting point that works for you!
First, I have a few Agile learning philosophy tips. I’m sure you have your own learning style and I don’t want to pre-empt that, just give you a frame of mind.
Focus on “academic” (pure) knowledge before you dive into “useful” (applied) knowledge. But, remember that full understanding doesn’t come without application.
There are many things about Agile that are so different in thinking to traditional project and people management that we may want to reject some parts and pieces right off the bat. Suppress this reaction by seeking to first academically understand the concepts and practices. Like you are just taking a class in college that is a general education requirement with no thought of actually applying it after the final exam. But you do need to get an “A” on the final, so learn the topic.
Work through the application stages of knowledge. A concept pulled into Agile from marshal arts is “Shu-Ha-Ri”
- Shu – You learn and do the basics, sometimes without knowing why, because the masters say so.
- Ha – You begin to mix your own experience into the basics, learning where your knowledge can enhance the new knowledge.
- Ri – You are a master and the basics are just part of what you do, are now part of your experience.
Individuals, teams and enterprises go through these stages all the time. The hardest is to accept the Shu stage because we have to unlearn other habits and trust the new knowledge.
It’s about people
As I stated in my presentation, Agile is about people. Yes, eXtreme Programming (XP) is a set of Agile practices that tell developers to pair program and other specific things. Yes, Scrum is a definition of certain meetings, documents etc. that help a team work in a more Agile fashion. But these and other Agile frameworks are designed the way they are because it is the best way for people to communicate and work together. Don’t let the practices become more important than the people.
The definition of “Agile” may be ambiguous to you. It also takes some abuse in companies who claim to be Agile but really only have some of the outward practices without following the true spirit of the movement. To remove this confusion, go to the Agile Manifesto website, read, study and learn the statements and the principles. If you are working to follow these ideals, you are becoming Agile.
The Agile Manifesto was created by smart people who had already developed one development framework or another, realized they had some common foundation and got together to define that foundation. So, one of the best was to start being Agile is by learning and using a framework. The more popular frameworks (sometimes called methodologies) are, in my view:
- Scrum – The one with the most traction and widest use. It is a project management level framework that focuses on the development team. It is simple to understand the basics and get started but that makes it simple to do the motions without being Agile. I started with this framework.
- eXtreme Programming – XP is also well known but not widely implemented. It has some of the same elements of Scrum but emphasizes engineering practices where Scrum does not. Pair programming is the most well known element of XP and probably the reason many reject it. XP and Scrum work very well together.
- Kanban – This one is currently gaining in popularity and originated out of lean manufacturing ideas. It concentrates on work flow, making the flow very visible, thereby exposing bottle necks and waste that should be corrected.
I found Scrum the easiest to personally pick up and to evangelize into the enterprise. Practicing it for three years now, I have much still to learn and am seeking wider Agile knowledge.
The internet is FULL of great resources about Agile. Videos, presentations, blogs and email lists abound. And it is just as good as what you find in books. So don’t be afraid to go searching for things. You will find treasures! Let me give you some starting points.
- http://mountaingoatsoftware.com – This is Mike Cohn’s website. He has written excellent books on Agile like “Agile Estimating and Planning” The site is full of good ideas and, I think, the slides of every presentation he has ever given. A gold mine for learning.
- http://implementingscrum.com – This is Micheal Vizdos’s website, a Certified Scrum Trainer. He uses cartoons to poke fun and knowledge about Scrum. He was my ScrumMaster trainer and still helps me today. His training style is thoughtful and active. If you want to take a course, he’d be a good trainer to pick.
- http://groups.yahoo.com/group/scrumdevelopment/ – The email group for discussions of all things Scrum. All the Agile luminaries, it seems, show up here and answer questions. Troll the archive for great practical advise. If I could never buy another book about Scrum, I’m not worried because this group has all the authors brain’s wired!
- http://video.google.com/videoplay?docid=-7230144396191025011 – This is a video of Ken Schweber speaking a Google about Scrum. This was the first video that hooked me into learning about Agile. It’s worth the time even though Ken is a bit dry.
- If video is a good learning mode for you, check here: http://agileroots2009.confreaks.com/ for videos of all the session of the Agile Roots 2009 conference. Great stuff there!
- http://phxsug.org – This is the Phoenix Scrum Users Group website that I mentioned at the end of my presentation. We have monthly meetings on the 3rd Thrusday of the month. We focus on Scrum but other frameworks come up from time to time.
- Anything by Mike Cohn.
- “Agile Retrospectives: Making Good Teams Great” is awesome for doing this key element of team building practices.
- If you are introducing these practices into a workplace, you need to be a great change agent. The book “Fearless Change” is indispensable knowledge for such an effort.
There are many more great books out there.
The best way to learn is by doing. Apply some of the principles and framework pieces as you can. Try a retrospective or make a task board. Use it, inspect how you did, adapt and improve. That’s how it works.
Education is compressed experience and a good class can jump start your improvement efforts. If you don’t feel up to pushing change in you organization, hiring an Agile coach is a good investment.
Find a community, site or friend. Ask questions of them and yourself. Ask here if you like since I like to answer!
3 Responses to “Learning the Basics of Agile”