Agile Resources - Information and Inspiration
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