Book Review: Agile Development & Business Goals
An anonymous reader writes "Agile Development & Business Goals: The Six Week Solution has scrum-like elements, fairly rapid iterations, automated testing, and some other things that you have come to rely on to make your Agile methodology work. But the Six Week Solution agile process has some other things, too, that make it a very interesting take on the classic Agile approach." Read below for the rest of the AC's review.
Agile Development & Business Goals: The Six Week Solution
author
Bill Holtsnider, Tom Wheeler, George Stragand, Joseph Gee
pages
256
publisher
Morgan Kaufmann
rating
8/10
reviewer
anonymous
ISBN
978-0-12-381520-0
summary
This book serves as a distilled learning guide for managing technical resources in a manner that directly boosts your bottom line.
For a company considering going Agile, this book might be a good place to start.The book talks in detail about topics such as Test Driven Development, build server software and SAAS. It also discusses specific release schedule planning to meet sales goals, revenue formulas and cost of change graphs. In other words, both technical topics are covered in depth and detailed business topics are covered in depth. The two worlds are integrated throughout the book (and the process).The basic premise is that software should be "released" on a targeted six-week schedule. There are eight six-week cycles in a calendar year, and releasing your software three times a quarter allows the Business to plan their own cycles accordingly. And the Business does not get software with random features someone thought should be added; they get targeted software built to their specifications.
Of the many features discussed in the book, two set this process apart: You should directly align your software development with the needs of the Business. You should compensate your development team based on delivering on their commitments. (If they deliver, they get rewarded; if they don't deliver, there are consequences.) Combined with the rigors of an automated testing program the authors demand and you have a distinct approach to an old problem: "How can I build the exact software I need as quickly and efficiently as possible?"
Among other audiences, this book is perfect for management types who might not be able to spell "Agile". They don't want the details, they want their software development teams to be held accountable and produce useful results. In the intro the authors ask 10 questions: Does your software development process:
1. Align software development with business needs?
2. Compensate your development team based on delivering on their commitments?
3. Lend itself to a description so simple that everyone in the company can understand it?
4. Have both core Business and core Technical components?
5. Produce revenue-generating results that address real-world needs?
6. Tie your investment in your software development to the delivery of the software you need?
7. Account directly for Quality?
8. Hit your short term goals while -
9. Addressing your long-term goals at the same time?
10. Reward success and make tangible the effects of failure?
Some of the points are standard Agile fare with small or insignificant twists. (How many times have you read: "A successful software project needs to build the right software, build the software right."?) And there are other places where the "Please Rename My Old Waterfall SDLC to Agile" button has been pressed.
But then there are the variances. The authors are pretty consistent throughout the book of detailing the similarities and differences between their approach and other Agile approaches. In a summary paragraph (again in the intro), they write: Compensation Piece: Performance is rewarded and, on the flip side, failure is penalized. Bonuses are paid (or not) every six weeks, not in some vague future annual date. No Reward for Success: Other processes do not reward success. Given that, what is the difference in classic development for the next sprint if everything was or was not delivered? No Risk in Failure: Other processes do not have to share the business' cost with the team when it fails; they just do another sprint and hope for the best again. If Cycle Fails Developers, Lose Money: Developers have a vested interest in delivering, not some vague promise of some future payoff. Other Agile Processes Iterate a Lot but Let the Boxes Fall Where They May: If a sprint fails to meet the objective, what happens? A boss stomps and shouts, everybody feels bad, and then they do the same thing all again. Other Agile Processes Do Not Align with Business: Sure there may be an on-site customer, but there is nothing to enforce exposure of what is being developed outside of the development group. With the Six Week Solution, the work done is what you really need done.
Some form of Agile software development may become (if it has not already) the standard method of software development in the future. But there is little question that the aggressive merging of the goals of the company and goals of the software teams has to happen. Too often software divisions do their own thing, pursuing targets that meet their requirements but are not aligned with those of the company as a whole.
This book details one method of bringing the aims of the Business and software development together. It is a different approach to Agile: disciplined release schedules, fully integrated automatic testing processes, specific monetary incentives, particular physical layouts. Many of these ideas are interesting to read about. And the authors have clearly lived these ideas.
This book is not for everyone – Agile purists will hate it, IMHO – but the audience for this book is people (tech and non-tech) who think about and explore the various ways to get software written. Thirty-five years after Brooks, we still don't have the answer. This book is a different take on the problem. But the rigor, unique approaches, detailed implementation techniques, practical (not theoretical) suggestions, real-world stories from the front lines of software development and internal cohesiveness – all of these suggest that the Six Week Solution book deserves a look for any organization considering implementing agile practices.
You can purchase Agile Development & Business Goals: The Six Week Solution from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Of the many features discussed in the book, two set this process apart: You should directly align your software development with the needs of the Business. You should compensate your development team based on delivering on their commitments. (If they deliver, they get rewarded; if they don't deliver, there are consequences.) Combined with the rigors of an automated testing program the authors demand and you have a distinct approach to an old problem: "How can I build the exact software I need as quickly and efficiently as possible?"
Among other audiences, this book is perfect for management types who might not be able to spell "Agile". They don't want the details, they want their software development teams to be held accountable and produce useful results. In the intro the authors ask 10 questions: Does your software development process:
1. Align software development with business needs?
2. Compensate your development team based on delivering on their commitments?
3. Lend itself to a description so simple that everyone in the company can understand it?
4. Have both core Business and core Technical components?
5. Produce revenue-generating results that address real-world needs?
6. Tie your investment in your software development to the delivery of the software you need?
7. Account directly for Quality?
8. Hit your short term goals while -
9. Addressing your long-term goals at the same time?
10. Reward success and make tangible the effects of failure?
Some of the points are standard Agile fare with small or insignificant twists. (How many times have you read: "A successful software project needs to build the right software, build the software right."?) And there are other places where the "Please Rename My Old Waterfall SDLC to Agile" button has been pressed.
But then there are the variances. The authors are pretty consistent throughout the book of detailing the similarities and differences between their approach and other Agile approaches. In a summary paragraph (again in the intro), they write: Compensation Piece: Performance is rewarded and, on the flip side, failure is penalized. Bonuses are paid (or not) every six weeks, not in some vague future annual date. No Reward for Success: Other processes do not reward success. Given that, what is the difference in classic development for the next sprint if everything was or was not delivered? No Risk in Failure: Other processes do not have to share the business' cost with the team when it fails; they just do another sprint and hope for the best again. If Cycle Fails Developers, Lose Money: Developers have a vested interest in delivering, not some vague promise of some future payoff. Other Agile Processes Iterate a Lot but Let the Boxes Fall Where They May: If a sprint fails to meet the objective, what happens? A boss stomps and shouts, everybody feels bad, and then they do the same thing all again. Other Agile Processes Do Not Align with Business: Sure there may be an on-site customer, but there is nothing to enforce exposure of what is being developed outside of the development group. With the Six Week Solution, the work done is what you really need done.
Some form of Agile software development may become (if it has not already) the standard method of software development in the future. But there is little question that the aggressive merging of the goals of the company and goals of the software teams has to happen. Too often software divisions do their own thing, pursuing targets that meet their requirements but are not aligned with those of the company as a whole.
This book details one method of bringing the aims of the Business and software development together. It is a different approach to Agile: disciplined release schedules, fully integrated automatic testing processes, specific monetary incentives, particular physical layouts. Many of these ideas are interesting to read about. And the authors have clearly lived these ideas.
This book is not for everyone – Agile purists will hate it, IMHO – but the audience for this book is people (tech and non-tech) who think about and explore the various ways to get software written. Thirty-five years after Brooks, we still don't have the answer. This book is a different take on the problem. But the rigor, unique approaches, detailed implementation techniques, practical (not theoretical) suggestions, real-world stories from the front lines of software development and internal cohesiveness – all of these suggest that the Six Week Solution book deserves a look for any organization considering implementing agile practices.
You can purchase Agile Development & Business Goals: The Six Week Solution from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
I'm really more of an idea rat.
Don't blame me, I voted for Baltar.
I'll bet this book talks a lot about "The Cloud"...
If you want news from today, you have to come back tomorrow.
Just write code that works, damnit.
I think this wheel has been done over and over again. Pretty much just rearranging the bureaucracy around the process.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
And Math is the loser.
I've always suspected that there was something about Agile that didn't add up. It's the numbers. Releasing 3 times per quarter on a 6 week cycle???
"The basic premise is that software should be "released" on a targeted six-week schedule. There are eight six-week cycles in a calendar year, and releasing your software three times a quarter allows the Business to plan their own cycles accordingly."
I think "Agile" a lot like religion. Using it requires a lot of faith and blind trust.
It's hard to argue against a methodology that is named "Agile" since it would be the equivalent of branding yourself an "Un-Agile" individual.
Which, where I work, everyone just goes around anyway. I've been working on a project for three weeks, and we are almost done. It got approved yesterday.
Just a dude. Stuck in IT.
The book's approach is flawed in one of its fundamental premises: that the Business side of the enterprise really knows what product it wants developed, with the right set of features specified clearly enough that a development team can have a chance of providing a (series of) solution(s). In almost 25 years of doing software, in a half dozen different business arenas (HCI, transportation logistics, telecom apps, internet security appliances, etc.), I have never seen a business team that could do that; most of the time all they have is a vague set of wishes from prospective customers. The so-called product managers try hard, but typically they don't have the technical depth to produce a workable requirements document. The fact that development was using agile methods in all these cases mattered little.
here are some questions to ask VP and Architects
how do you know if development is aligned with the business team and what indicators do you use?
how do you achieve organizational speed? what characteristics do you look for to achieve speed?
what is the capacity of your current life cycle model and how would you scale it to double revenue in the next 12 months?
what percentage of tools has your team written to identify and resolve symptoms?
how many root cause problems were solved in the past 12 months, and what tools have been written to support root cause problem solving?
if those questions cannot be answered, who cares what the model is
So, basically, this process rewards developers who sit around and milk the system by cashing in on bonuses at the cost of long-time maintainability, until the point where the software becomes too hard to maintain, whereupon they jump ship.
I have cleaned up after a few of these brain farts. It is never fun.
Theoretically, Agile sounds nice enough. And I don't know if it's a sign that after years of getting by on good looks I'm starting to understand software development, or that my mind has turned into mush, that when I hear or read about Agile, I think I can actually identify applicable concepts as opposed to it being a clump of jargon.
That being said, is anyone living actually living and working in this colorful Agile world? Cause from where I sit, it's all sepia tones.
My first exposure to (what turned out to be) Agile was on a project scheduled for about 9 months that was stretching out to 18. Not the worst boondoggle in history. A new manager was brought in and immediately instituted a daily 9 AM meeting. I know now this is a "daily scrum." I also now know a "daily scrum" should be 15 minutes of updates, not 2 hours of back-and-forth done without the stakeholders who hold the missing piece information and the authority to make decisions.
That first meeting of the day was followed by meetings with smaller groups discussing the issues raised during the previous meeting. Then we'd break for lunch.
After lunch, I'd have a meeting or two, with perhaps 30 to 60 minutes of 'free time' to do actual work. At the time I was an 'internal consultant'--an employee working for another group on loan for this project, so I still had some responsibilities to my home group.
Then we'd end the day with a quick meeting of what was done today and what's the target for tomorrow. Well, what was done today is I attended a series of meetings. What's on the agenda for tomorrow is more of the same. (And by quick meeting, I mean about an hour before folks started making excuses to leave.)
I understand the idea behind having many short meetings throughout the development process. I just finished managing a 3-day project for a configured OTS application. We received a patch from the vendor on Tuesday, ran through the cycle of documentation and testing, and deployed to prod Thursday night. During that sprint I was meeting every few hours.
But that's a project that lived its life in one week. For a project even as short as 6-weeks, daily meetings are too much. It's baby-sitting. If your developers can't make it through one day (or aren't trusted to make it through one day) without meeting, something is seriously wrong.
And that 6 week cycle, how can development be responsive to business at that pace? My business can't pick its nose in 6 weeks. If I had a report with all the data field requirements locked down, my business couldn't decide on the report layout in 6 weeks. (I have, and they couldn't.)
And they want everything at the same time. My customers would love new features rolling out every 6 weeks. But they'd want EVERY new feature in 6 weeks. Wait 12 weeks for a change? But that's forever! My team has managed to get on a generally regular schedule of releases every 3 to 4 months, but that includes about 6 weeks of taking the business's 3 years worth of requests and paring it down to 3 months of work.
For that age old questions, "How can I build the exact software I need as quickly and efficiently as possible," is that really the question we fight with every day? How many developers are really working on that cutting edge, attempting to solve complex problems with precise solutions?
Any how many developers are reimplementing the wheel and just trying to get the business customer to decide what color it should be? I can build the software. The question I need answered is, "What is the exact software I (or my customers) need?"
Thirty-five years after Brooks, we still don't have the answer.
No, we have an answer : there is no answer !!!
For a small percent of teams, waterfall works. And for the remaining teams, agile could work.
In all cases, you need that people believe in the way they work. If they have doubts, the project will fail.
People who think that Agile is a method are wrong.
Agile is just a way to help the teams find the way they can work the most efficiently.
If you read this book or any books of this kind, then you will never accomplish anything worth accomplishing. You will forever become lost in the dust of code donkeys and watch other's from-the-gut & dirty software shoot to the stars. It's first to market that matters, not doing it properly. Believe!
...5 week Agile. Wait! you can;t possibly get a good solution in 5 weeks! That crazy talk!
If you want to understand why this (and all) Agile methodologies are epic fail: Extreme Programming Refactored
I especially liked the part:
Q. How can you know that you don't like agile if you've never tried it?
A. Because I have cognitive dissonance.
I've never tried agile, and I've never stuck my head in a big bucket of shit.
Having seriously considered all the ramifications of doing both,
I am quite certain that I would enjoy neither agile, nor sticking my head in a big bucket of shit.
I believe the subject of incentives in software development have been proved to be harmful for a development team for a long time. By introducing an incentive pay scheme where a team can get more money based on performance will have disastrous effect on team morale and cause wedges between team members. Not only that but you're now encouraging the dev team members to fudge the system so they can receive extra pay and avoid looking bad. Both of these topics have been covered pretty thoroughly by Joel Spolsky on his blog. http://www.joelonsoftware.com/articles/fog0000000070.html http://www.joelonsoftware.com/items/2006/08/09.html
This is a cruddy review, and I suspect that the book is cruddy, as well. (1) A review posted anonymously smells bad. How can we be sure this is not the author/publisher? Etc. (2) Usually taking any discipline and hammering into being more "aligned with business" wrecks it. (3) Math doesn't add up. "The basic premise is that software should be 'released' on a targeted six-week schedule. There are eight six-week cycles in a calendar year, and releasing your software three times a quarter allows the Business to plan their own cycles accordingly." I'm pretty sure that 8/year = 2/quarter. Etc.
We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
But when the work involves specialists, when specialists are short in supply, the backlog is going to build on one or two team members. And the others won't be able to plunge in to give a hand even if they are not loaded. You can deploy the silver card all you want, and draw every resource from the entire company. But if the crisis is a class 3 error reported by a nuclear power plant in one of the simulations used to design the peak load on a hydraulic pump, and only two guys in the whole company have the PhD in CFD to understand the k-epsilon turbulence modeling code written ages ago.... It is not going to help. Even in the most highly venerated Toyota, uses Agile only for production tooling, not for their R&D divisions.
The only good thing I like about Agile, is that it forces the managers to actually look at the amount of resources that are available. Done correctly, it can help avoid feature creep, and reduce the amount of vaporware promised by the sales department to close the deals.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Tell me what to do and I'll do it. Don't scope out 2 weeks worth of work for each member of the team, knowing that since all tasks take longer than expected, each member either has to work 50 to 60 hours a week, or come up with an excuse why the work didn't get done. No change to existing code is trivial. There are always surprises. You end up with 10 people in every meeting justifying why their work took longer than expected. That's causes stress and lowers morale.
After working for 3 solid years on Agile including coaching by well known Agile snake-oil errr coaches, its clear to me that Agile is mostly hype. Nobody seems to like detailed planning and requirements anymore ever since Agile came along. So, we just continue to miss requirements and take bad design paths. That allows us to write the code once and then rewrite 5 more times after that. There is never enough time to do it right but always enough time to do it over. I never experienced 10% of the problems I now have with Agile when I was living in a waterfall world. I sure like the job security though. Plenty of code to rewrite.
To be honest, a lot of what I read here regarding agile looks to me that people just do *something*, label it agile - and then if things fail, attribute it to agile. I for once do SCRUM for a year now, and we are much more organized & productive today than we used to.
But that's not what I want to get at. What strikes me as odd with the proposed process is the monetary awards, and the fix release cycles. The latter is against every agile method I know, because it's waterfall all over again. Make a plan, and release on time. You can *aim* for six weeks, but making that a rule? No.
Yet much more important is that monetary awards are *not* a way to motivate people of the likes of programmers:
http://www.youtube.com/watch?v=u6XAPnuFjJc
And thus, I'd say it's bound to fail.
ÐÐобÐоÐÐÐнÑоÐ