Slashdot Mirror


Integrating Agile Development

James Edward Gray II writes "If you've ever wanted to know more about the agile programming methodologies, Integrating Agile Development in the Real World is a fine place to look for the answers to your questions. Various agile methodologies are explained, compared, and contrasted within. A good look is taken at how they work, their strengths and weaknesses, and how they compare to the more traditional approaches of software development. This proves to be a strong introduction and overview to agile programming practices." Read on for the rest of Gray's review. Integrating Agile Development in the Real World author Peter Schuh pages 346 publisher Charles River Media rating 8 reviewer James Edward Gray II ISBN 1584503645 summary An encyclopedia of agile software development practices.

The book opens with a couple of chapters exploring exactly what it means to be an agile development team. The author doesn't spoon feed you a definition. Instead, he takes a look at the Manifesto for Agile Software Development and pulls from that a collection of values important to agile software development. A list of agile principles is presented, and each of these aspects is examined from the angle of what it's trying to accomplish and where it can help when building software.

At this point, the book introduces seven methodologies including The Crystal Methodologies, eXtreme Programming, and Scrum. Each approach is defined by their practices and focus. The author does a nice job of telling you where these methodologies excel and even where they don't. The approaches are contrasted, but not with an eye towards finding out who is right and who is wrong. Instead, the author digs for the strengths in each practice.

The next few chapters offer suggestions about what agile practices can do for your development team, and outline how to adopt a few agile practices. This is one of the many places where the book really shines, thanks to its realistic approach. The author knows that not everyone can run out, soak up some eXtreme Programming training, and convert their entire division overnight. If you can, great, but this book is more focused on people who don't meet certain agile requirements and others who just want to test the waters a little. For these groups, there is sensible advice like, "Start by doing X, Y, and Z, because they're great ideas, easy to implement, and will help you a lot." If you like those changes, the author suggests what to try next. Even better, you're told to back away from the changes you don't like, sprinkle in some ideas from other methodologies, and even customize the practices to your needs. That may not be as extreme as some agile developers would prefer you to be, but it is agile programming distilled down to what it can do for you personally. I found that to be a great touch.

With the introduction to this new world of software development covered, the book moves into detailing actual agile practices. Early chapters in this section focus on the programmer, testing, and even the database side of the operation. Later chapters get into management, the project, and an agile development cycle. When a practice is defined, you're warned of prerequisites you should have in place before considering it, offered advice for how to get started with it, and even given a few variations that might work better for your group. I wouldn't say that the detail here is sufficient to teach you all you need to know, instead this section arms you with the knowledge to decide what you should be looking into. To kick-start your research efforts, a practice always ends with a list of further resources, available both online and in print.

The final chapters of the book get more abstract, dealing with customers, communication, and even just people. There's a lot of sound advice hidden away in these pages for some difficult challenges. I personally learned a lot about how agile development deals with customers and I have a few new ideas I'm anxious to try on my clients.

As an added bonus, the book has a very nice layout, filled with intelligent, witty prose and good looking charts. These effects are always subtle but can make a text a lot more approachable. I believe my only complaint was that the author tends to throw around acronyms assuming you know what they stand for. I think he even eventually got around to defining all but a couple, but not always when you first encounter them. A glossary probably could have helped in this case.

In summary, this book is agile programming for everyone. As a one-man operation, common practices like pair programming aren't even an option for me. The author knows that the methodologies aren't one-size-fits-all, and really focus on exactly what they can do for you, whatever your own needs may be. If you don't follow any development strategy (hope that's not true), would like to know more about the agile practices without joining a cult, or even just want to stay sane in your traditional software development company, Integrating Agile Development in the Real World will give you plenty of fresh ideas.

You can purchase Integrating Agile Development in the Real World from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

2 of 121 comments (clear)

  1. Re:Need help with my Mac please... by xenoandroid · · Score: 0, Offtopic

    In OS X it's called alias. Look in the file menu while in the finder, drag the alias to the desktop. There are other faster ways such as holding down command+option while dragging it as well. Also in the mac world, most people don't put apps on their desktop. If they want something quickly accessible they use the dock, otherwise they just go to the applications folder. If you really have a lot of programs you might want to build your own folder tree to categorize things like I do. If you want a "start menu" then drag that folder into your dock and right-click/ctrl-click on it when you want to use it.

  2. Re:Need help with my Mac please... by xenoandroid · · Score: 0, Offtopic

    As a mac user I have found a lot of Windows users are snobs when they find out you use a mac, they come off just like you, assholes who don't know what they're talking about.

    There's nothing wrong with someone being excited about their new machine, I see PC users bragging about how nicely certain games run.

    Apple's ads pompous? Dude, they're just trying to target people who don't know much about computers. Think about it, what else does Apple have to advertise? Ghz? (which mean very little), Computability with games?

    The only thing they can advertise to get users who are clueless about what all those specs mean is: "This machine works better than Windows, is easy to use (you don't have to be a computer geek to use it just because it's based off unix), and we try to make it fit well into a home environment (believe it or not, some people really value having a machine that runs quietly and doesn't look like an eyesore in your living room).

    Stop being a snobbish anti-Apple AC and try to see the reasoning behind Apple's business model, SURPRISE! A corporation needs money to survive, you don't think Apple is going to let this chance to not 'die' (as they were doing for so long) slip by do you? Be happy that they at least have the innovation to make up for any 'snobby' business tactics they make.