Agile Resources - Information and Inspiration



Scrum

Scrum Resources on this SourceCell site

Scrum Alliance - http://www.scrumalliance.org
Scrum Alliance - Core Scrum - http://www.scrumalliance.org/why-scrum/core-scrum-values-roles
Agile Atlas - http://agileatlas.org

  • The Scrum Primer - http://www.scrumprimer.org/
  • Succeeding with Agile by Mike Cohn
  • Agile Project Management with Scrum by Ken Schwaber
  • Coaching Agile Teams by Lyssa Adkins
  • Agile Retrospective by Esther Derby and Diana Larsen

Checklists



Intros to Agile Software Development and Extreme Programming

Wikipedia.org is a great resource to find info about agile software and extreme programming, including:

http://en.wikipedia.org/wiki/Agile_Software_Development
http://en.wikipedia.org/wiki/Extreme_programming, with description of values and practices.

What is XP by Ron Jeffries: http://www.xprogramming.com/xpmag/whatisxp.htm




Books Frequent Reference


Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin.  A great read and on-going reference for developers.  The best place I've seen for seeing the relationship between object-oriented design principles and design patterns, leading one to feel that the principles are more important than specific patterns.  I appreciated the humilty by which Martin explained his adoption of XP, rather inventing his own methodology.  Examples are in C++ & Java, but apply to any OO language.

Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series) by Kent Beck.  The 2nd edition places much more emphasis on the values and principles that lead to the XP practices.

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) by Erich Gamma, et al.  The key reference for 23 key design patterns.  Examples in C++ and Smalltalk.

Refactoring: Improving the Design of Existing Code by Martin Fowler.  A key perspective, vocabulary and reference for keeping software maintanable and extendable.  Examples in Java.

Refactoring to Patterns (The Addison-Wesley Signature Series) by Joshua Kerievsky.  Draws a key connection between refactoring and design patterns.  Examples in Java.

Patterns of Enterprise Application Architecture by Martin Fowler.  More patterns for bigger systems.

Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin Series) by Rick Mugridge, Ward Cunningham.  A compelling approach to automated system testing in terms of user stories.  An especially powerful way to manager a project if these tests are written before development starts.

Agile Web Development with Rails (Pragmatic Programmers) by Dave Thomas and David Hansson.  Recommended highly by Robert Martin.

Working Effectively with Legacy Code (Robert C. Martin Series) by Michael Feathers. Great examples of refactoring legacy code and making it testable as you go.

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition by Martin Fowler.



Books - Context, Inspiration, and Education

Agile and Iterative Development: A Manager's Guide by Craig Larman.  Important overview of history of iterative development over the last 50 years.

Agile Project Management with Scrum (Microsoft Professional) by Ken Schwaber and Mike Beedle.

Lean Software Development: An Agile Toolkit for Software Development Managers by Mary Poppendieck and Tom Poppendieck.  Includes compelling analogies from lean manufacturing.

Pair Programming Illuminated by Laurie Williams, Robert Kessler. Includes suggestions for different pairing combinations: expert + novice, expert + expert, etc.  Particularly useful for new teams.

Head First Design Patterns (Head First) by Elisabeth Freeman, et al.  Great intro to design patterns and principles. Fun read and useful reference. Java examples.

Extreme Programming Pocket Guide Chromatic



Articles, Blogs, Wiki, Web

The original wiki www.c2.com  A wonderful community of software ideas, hosted by Ward Cunningham, father of XP, wiki, FIT. A brilliant yet humble developer and overall great humble human being.

XP Programming.com by Ron Jeffries.  Key agile thought leader.

Agile Alliance

"Who Needs an Architect?", by Martin Fowler.  Provocative title. Thoughtful article on the benefits of architecture by the team.


Alternatives to official "Agile" or XP
I am a big fan of the agile perspective and practices.  But there are many ways to develop software that we can learn from, including:

Getting Real - The smarter, faster, easier way to build a successful web application. by 37signals. A very interesting pragmatic perspective to developing web applications, especially as products. Not classic agile/xp. Worth comparing and learning from. It is how 37signals develops products, including Ruby on Rails framework.  You can read the book on-line for free.  A quick read.

Good Agile, Bad Agile by Steve Yegge  9/27/06
A very interesting description of how Google does development, after a an anti-"agile" rant. Skip down to "The Good Kind" to hear about how Google development works.

Other things to look at: Apple, SEI Product-Line Architecture, Joel on Software



Team Rooms (aka War Rooms, Bull Pens, ...)

A Gallery of 16 Team Rooms and Charts collected by William Wake
http://xp123.com/xplor/room-gallery/index.shtml

An XP Team Room by William Pietri
http://www.scissor.com/resources/teamroom/

Osmotic Communication by Alistair Cockburn
http://www.awprofessional.com/articles/article.asp?p=345009&seqNum=3&rl=1

What Makes a Good War Room by Brian Button
http://www.agileprogrammer.com/oneagilecoder/archive/2005/05/20/3435.aspx

Nominum's Team Room picture by Christian Sepulveda
http://christiansepulveda.com/blog/archives/000042.html


Agile Architecture

"Who Needs an Architect?", by Martin Fowler.  Provocative title. Thoughtful article on the benefits of architecture by the team.

"Agility and Architecture: Can They Coexist? by Abrahamsson, P.; Babar, M.A.; Kruchten, P., IEEE Software, March/April 2010"
“Architecture Meets Agility H. Erdogmus, IEEE Software, vol. 26, no. 5, 2009, pp. 2–4."


Misc

Smalltalk Programming Resources


Software Development  | Agile Coaching  | Training  | Calendar  | Clients  | People  | Scrum Resources  | Definitions of Scrum  | Lean Startup  | Agile Resources  | Contact