Skip to content

January 6, 2006

Balancing Agility and Discipline: A Guide for the Perplexed

Book Review-Balancing Agility and Discipline: A Guide for the Perplexed

I mentioned briefly in my last post that I was reading Balancing Agility and Discipline: A Guide for the Perplexed.  I managed to navigate my way through the end of the book and wanted to record my initial thoughts about the book and about my growing perspective on Agile software development in general.

On the book…

The fundamental question that the book answers is how do you take the best of Agile development and integrate it into your current software development methodologies.  It neatly disguises this question under the auspicies of exploring the places where each method “belongs.” — their home ground.  It does what appears to be a very thorough job of reviewing the strengths and weaknesses of both traditional (plan-based) development and agile development.

My current thinking about Agile development (and software development in general) is this…

1) Agile software development makes the same statement that traditional development does — better programmers make better projects.  I was struck with how much emphasis good software development –whether traditional or agile — places on good developers.  (It would be more accurate to say good participants.)

2) Agile software development is like Voodoo — at least in the movie Dogma’s definition “Do you know about voodoo? No constitution of faith, more an arrangement of superstitions.”  In other words, it’s a collection of techniques — some shared between different agile variants, some shared with more traditional plan-based development, and some shared with project management practices.  The percentage of people following a specific technique is very low.

3) Agile is akin to “Management by Wondering Around” one of the practices made popular by In Search of Excellence.  It focuses on people actually talking to each other.  Given the number of large scale projects I’ve worked on where that doesn’t happen — I’m all for people talking to each other. ;)  In a more serious way, the focus is on individual and personalized conversations with people.  Answering their specific needs and coaching them into effective behaviors — one by one.

4) The arguments that are being used by both sides of the isle represent a fundamental lack of understanding.  It reminded me of a recent set of posts on the Dilbert Blog about Intelligent Design vs. Evolution.  [Warning: The preceding link may consume a huge amount of time as you try to figure out which of the arguments are the dumbest.]

5) We’re all missing the point … We start good development by getting good people involved.  We get good people involved by DEVELOPING / CREATING / BUILDING good people.  If we’re not all willing to go out of our way to help other people become other developers — every day whether it makes sense to the particular project or not — then we may be doomed to struggle with poor software developers forever.

The good news is, however, I’m more agile than I thought.

Load Balancing and Clusters

I’m in the middle of reading Balancing Agility and Discipline and I keep getting distracted by this thought… hopefully I can get it out of my head…

I was speaking yesterday with a hosting company that hosts web sites for organizations. They have a niche where they serve largely mid-market organizations.  We were discussing their movement into load balanced web servers and database clusters.  One of the comments the CTO made was that they had never had a need to move to a load balanced environment to handle the traffic on their web sites.  They do have one very large web site so his statement makes sense based on the fact they’re seeing solid volume.

However, what struck me is that volume and capacity rarely drive the decision to move to load balanced front end web servers and a clustered database.  Nearly universally this decision is made for reliability.

This was made clear to me by one of my enterprise clients. ( and I do mean enterprise, their consumer brands are something I can virtually guarentee you have in your home if you’re in the US.)  We were talking about the two server load balanced web servers we put together and he mentioned that they’re running like champs.  They host nearly 50 sites.  I don’t know the number of total hits per day but it’s not a trivial number.

So why are they on a load balanced web farm?  Uptime.  Most of it is reliability with a small percentage of the decision coming from the ability to deploy new versions of the web site and roll back if necessary.  Sure someone likes to think that it’s performance but it isn’t.

Today’s hardware can handle a lot of web hits.  Particularly with a well written application — so if you’re thinking about whether you need load balancing — and back end clustering of your database — evaluate the decision from the perspective of reliability — not performance.

Recent Posts

Public Speaking