Agile patterns & practices and the developer divide

In what little free time I have, I’ve been slowly working my way through the book "Agile Principles, Patterns, and Practices in C#" by Robert C. Martin. This is a GREAT book, and a real eye opener.

image

This book has shaped some of the fundamental ways that I look at software. Whenever I look at a problem now, I think about how I’m going to create the building blocks to solve that problem. As an example, MSDN magazine just had a great article about the opened-closed principle which actually discusses this book.

Sure, I used to have excellent test coverage and modularity, but this book has given me insight to take it to the next level. For example, following the single responsibility pattern is a concrete way of making your code more adaptable to change, and makes your code easier to maintain and understand.

The book even offers information about studies that have shown a correlation between how often working software is delivered, and the quality of the final product. When points are made, evidence is often provided to back it up. It’s difficult to argue with real numbers.

The book covers these areas:

  • Agile principles, and the fourteen practices of Extreme Programming
  • Spiking, splitting, velocity, and planning iterations and releases
  • Test-driven development, test-first design, and acceptance testing
  • Refactoring with unit testing
  • Pair programming
  • Agile design and design smells
  • The five types of UML diagrams and how to use them effectively
  • Object-oriented package design and design patterns
  • How to put all of it together for a real-world project

If you haven’t read this book, I highly recommend it. I think just about everyone could get something out of it. Even if you’re not practicing or learning agile, the techniques themselves are still valuable.

On a personal note, I feel like I’m entering a completely new level of software development. I don’t know if I’ve just been unlucky, but I’ve never worked with a team that really understood and/or practiced these patterns and practices. They certainly didn’t teach this stuff in school.

I became curious as to the adoption rates of agile, and the rate of success that people are seeing. There is plenty of information that shows that the agile process is being used, and has been working well for lots of teams.

Kick It!

4 Comments so far »

  1. Arjan`s World » LINKBLOG for June 21, 2008 said,

    Wrote on June 21, 2008 @ 9:16 am

    [...] Agile patterns & practices and the developer divide - Jason Young Book review [...]

  2. Federiko said,

    Wrote on June 21, 2008 @ 1:27 pm

    Great post!, i will try to get the book.
    Why don’t you make a post recommending book’s for architects or best practices.
    Best Blog ever!

  3. Weekly Link Post 47 « Rhonda Tipton’s WebLog said,

    Wrote on June 22, 2008 @ 4:15 pm

    [...] Jason Young gives a great review of the book Agile Principles, Patterns and Practices in C#. [...]

  4. Using objects or repository interface in constructor said,

    Wrote on July 8, 2008 @ 1:48 pm

    [...] been really trying to use the Single Responsibility Pattern in all of the classes I design. Recently, I needed to create code to query a list of holidays from [...]

Comment RSS · TrackBack URI

Leave a Comment

Name: (Required)

E-mail: (Required)

Website:

Comment: