Agile Software Development with Scrum 168
Agile Software Development with Scrum | |
author | Ken Schwaber and Mike Beedle |
pages | 158 |
publisher | Prentice Hall |
rating | 9/10 |
reviewer | bADlOGIN |
ISBN | 0130676349 |
summary | This book could be viewed as the Why component to all of Extreme Programming's Hows. It explains managing software development as an empirical process. |
What it's all about:
Books that claim to hold the keys to developing software the right way are most often: a) a dime a dozen, b) self-serving vendor drivel, or c) all of the above. While this book is fairly new on the shelf (Copyright October 2001), it has a level of research, professionalism, and effort towards being tool- and language-agnostic that may place it in a fourth category of being: d) none of the above. Agile Software Development with Scrum is a complete picture of the Scrum process from theory to practice in real life examples. The name Scrum was chosen because the process is similar in nature to rugby play where success is built upon being quick, adaptive, and self-organizing. The target audience for the book is "executives, software managers, project leaders, and programmers." While the authors make no assumptions directly, being familiar with Extreme Programming, "classic" waterfall methodology, and having hands-on experience with the chaos of software development is indeed helpful.
The primary theme of the book is simple, but the impact is profound: software development is an empirical rather than a defined process. That's a nice big sweeping claim to make: fortunately, the authors spends a lot of time making sure that you as the reader understand what they mean by the statement and that they're serious about it. Comparisons to other empirical processes are illustrated with examples of changing, complex problems. The authors seek out and provide unique insights from process dynamics experts on the nature of empirical versus defined processes, and cite profound supporting work regarding the limitations of algorithms in complex systems with external inputs (e.g. Wegner's Lemma).
Along with a good dose of theory, there is a generous helping of practice and how-to. Agile Software Development with Scrum covers the basic practices and concepts needed to manage software development in an empirical fashion. The authors do a good job of addressing the classic "but what about..." questions on the spot in a conversational manner and include anecdotes throughout to make specific points and include full process examples towards the end.
What's good about the book?
Scrum is the missing "why" to Extreme Programming's "how." By it's nature, Extreme Programming incorporates all of Scrum's spirit, and vice versa. This book has a foundation of ideas and an explanation of what it takes to seriously improve the state of the practice of software engineering. The order is reasonable, and the depth of information should give any determined individual the ammo they need to make a change in how software is developed in their current job or their next.
What could have been better?
There are only three things worth mentioning for improvement, all of which could be easily done. First, there were occasional typographical and formatting errors -- places where indentation, capitalization, or bullets were missing broke the flow. Second, the graphics in more than one section were blocky, low resolution circa 1987. And last, the $30.95 list price was a bit steep for 158 pages. It should be noted that the typographical and graphics issues were the only thing that prevented me from rating this 10 out of 10.
Summary
In my opinion, this book has been needed for a long time. The issues and failures of defined processes such as the "classic" waterfall methodology can't be set aside until there is an approach that can justify itself both in theory and in practice to replace it. Extreme Programming has gained much attention, but tends to depend too much on the fact that "it works because it works." Scrum gives you a way to fix your development efforts without as much culture shock or risk. It's worth considering implementing before your competition does.
You can purchase Agile Software Development with Scrum from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
What is Scrum? (Score:5, Informative)
CmdrTaco, the whiny little bitch. (Score:0, Informative)
The twist this time, is that he posted the dupe an HOUR AND A HALF after the first one [slashdot.org]. Not a week. Not a day. 1.5 hours. There was only ONE story between them.
Amost every single post in the discussion attached to CmdrTaco's article says "OMG DUPE".
Of course, he didn't bother reading this (nor the other stories on the front page). Once he woke up and discovered that his idiocy was laid bare, he had the nerve to suggest that the readers should have emailed him:
Listen up, shithead. YOU should be proofreading and checking up on your posted stories, NOT THE READERS. Some readers ACTUALLY PAY YOU, so the least you could do is not insult them by posting dupes and implying they should do your checking for you.
What a fucking worthless prick.
Totally Useless (Score:5, Informative)
"How" eXtrEmE pRogrAMming destroyed my project (Score:5, Informative)
Anyways, XP doesn't work. Proponents like to say that XP is high throughput, but I just don't see it. At my last job (where XP was employed) programmers had to put in long hours, despite this being against XP tenet. This resulted from abbreviated design cycles and hit-and-run feature development.
We like to talk about agility and mentally substitute quick hack jobs as a way of limiting cost overrun when features change midcourse (which they often do). What XP people don't tell you is that XP encourages these features to be hacked in (simplest thing possible, remember?) without regard for how it might be later removed with little effort.
In other projects where features were designed and implemented with a good degree of modularity, that feature was canned or changed, yet we were able to extricate it with little effort - simply by #defining it out or by not shipping the modular DLL it resides in. In comparable XP-driven projects, I've been told "No, modularizing it is not a requirement. Do the simplest thing - add whatever you need to the existing classes and just do it."
In XP, implementation is cheap up to a certain point where suddenly refactoring becomes imperative. Refactoring is then a very painful process given a very short iteration cycle. You won't find an XP shop that will encourage modularity over implementation time. But, like anything, the biggest gains come from pacing and managing, not from writing as much code as possible in a short amount of time.
Ok, so now you say that pair programming compensates for the short design cycles. Get real - no one really does this because this, too, does not work. Most programmers are like any other people - they can be tempermental, stubborn, selfish, and proud. The worst part is, the younger and more inexperienced the engineer, the less willing he is to accept other points of view. Try working with that. You can't.
Where XP excells is late stage bug fixing, where hit-and-run is definitely the right strategy.
Less heavy going (Score:4, Informative)
Judge them by their work... (Score:5, Informative)
"Ken Schwaber is a Senior Consultant with Cutter Consortium's Agile Project Management Practice and is an experienced software developer, product manager, and industry consultant. He has been in the industry for more than 30 years, starting as a programmer and, by 1984, managing IT for one of Wang's divisions. In 1985, Mr. Schwaber founded Advanced Development Methods (ADM), a company dedicated to improving the software development practice. He initiated the process management product revolution of the early 1990s, when methodologies were automated and put to practical use on ADM's Mate process manager...."
So basically a software development manager for failed Wang that went on to make a company that tells other people how to run projects.
and Mike Beedle:
http://www.mikebeedle.org/
Runs two businesses, started out as a Lasers expert in 93, then in 94 switched to writing books on programming, judging by his papers.
Guys, if you post PR puff like this on Slashdot don't you think people will check if you know what you're talking about?
other recommendations (was Re:Methodologies) (Score:2, Informative)
Or maybe I'm making a mistake - maybe all of you have read this already...
[Fred Brooks, ISBN for my edition = 0-201-83595-9, details on amazon [amazon.com]]
Schwaber consulted at an ex-employer of mine... (Score:2, Informative)
Scrums worked out OK, overall. Since I was not a developer, the daily meetings actually were good for me, because that's when small issues that I needed to know about usually got hashed out. Not being a developer, I can't say much beyond the daily meetings on how scrum worked out.
I transition out of development about 6 months after scrum was introduced. There were major morale issues at the company, and about a year and a half later I finally left to a small startup. It's hard to untangle how scrums worked out in the environment where there were many other issues negatively affecting the company. Lots of stupid decisions, lots of idiot executives. The group I was in just before leaving the company was laid off entirely a month later. Then they freaked out and rehired several people, with back pay and huge pay increases, because they realized after the fact they couldn't get along without them. The company has survived, and its stock has actually gone up in the past year.
Re:For the life of me (Score:4, Informative)
The difference is that the auto industry takes this stuff very seriously and there is often committment from the top executives on down. They incorporate their engineering practices as a core part of their business. They understand the value of engineering and good processes.
The same is far from true in most software firms. Many software engineering managers are just transplants from other parts of the company. They often have little experience or training. They often think in terms of buzzwords rather than fundamental concepts. They often screw up.
Ken Schwaber in Seattle 18 Feb (Score:3, Informative)
"Agile Processes and the Scrum Methodology" at the meeting of the Seattle Java Users Group [seajug.org] at 7 PM tonight.
Schwaber will be speaking in Calgary (Score:2, Informative)
Re:Every small IT shop i've been at does this (Score:1, Informative)
Second, let's realize that someone(or more) has to do it.
Now scrum advocates having a set of features agreed upon at some level. Perhaps not detailed. Now the developers will accomplish the task(s) while protecting the system's integrity and adding logic & strength to the request. Nothing is wasted, if it isn't right then it was a good learning experience for the "overlord"