Welcome to MSDN Blogs Sign in | Join | Help

Why did I go Agile? Part One: An Open Mind

I've recently been called a fanatic, crazy, insane, and a zealot about all this agile stuff.  This really startled me and made me think about how I come across and how I talk about agile.  This has not made me change anything about what I do, what I say, or what I believe. However, I do want to share why I decided to "go agile," and the road that led to me becoming an agile evangelist.

This will actually become a series of five (or maybe six) posts.  Today will be the background on why my mind was open to new ideas.  In future installments, I'll also talk about what sold me on TDD, Scrum, Pairing, and Team Spaces.

Why did I go Agile?
A few years ago, I was part of a development team in MSN, and I was finishing up a death march project.  A few months before the project was supposed to ship, the development team was cut by 80% (from 5 to 1) and the release date stayed the same.  However, I (being the only developer left) was able to negotiate a few changes to the feature set, reducing it by a whopping 10%, which was a miracle in and of itself.  I explained that I was being asked to do the impossible and argued forcefully for more time or resources, but I was overruled.  I ended up delivering about 1 or 2 weeks late, but I was burnt out.  By burnt out, I mean exhausted, tired of looking at computers, and tired of 100-120 hour work weeks.  The project was a success, as far as management was concerned.  I considered it a failure.

I was immediately pulled into another project as a firefighter.  This other project had major performance issues, and I was given two weeks to fix it.  This was a great break from the 12-15 hour days I had been doing.  It was almost like a vacation, but not quite, since there was still pressure to find solutions immediately.  I was able to fix a number of the problems they encountered and provide a course of action to follow to stop the issues from reappearing.  I cut application load times by 50%, and increased performance by 50%.  A good few weeks of work.

I moved onto another project for a grand total of two weeks to help them solve some performance issues that were being seen on another tool, this one used by customer service agents.  This was a great break from the 12-15 hour days I had been doing.  It was almost like a vacation, but not quite, since there was still pressure to find solutions immediately (if not sooner).  I was able to fix a number of the problems they encountered and provide a course of action to follow to stop the issues from reappearing.

After this brief bout as a firefighter, I was put on another project that was under a very tight deadline and looked like it would be another death-march.  This was based on previous experience in the group, the schedule that we were given, and management's comments that this software "must ship on time" for strategic business reasons.

Needless to say, at this point I was ready for a change.  Any change!  And there was one thing that I could control and change myself without letting anyone know.  I could change how I wrote software and try out TDD.

Published Wednesday, September 20, 2006 11:23 AM by mpuleio
Filed under:

Comments

# re: Why did I go Agile? Part One: An Open Mind

It is good you're discussing this.  Because between you and Scott Hanselman (who has been speaking like a complete lunatic on DNR or his podcast, or some franklin podcast) it's like the whole world has lost it's mind.  It may be good it may be great but it is still in the end, just another methodology.  Thanks for sharing!
Friday, September 22, 2006 1:10 PM by Stephen Rylander

# re: Why did I go Agile? Part One: An Open Mind

Stephen, I have to ask for some more details here: Why do you think "the whole world has lost its mind"?? Are you seeing lots of posts by other agilists that freak you out? Are you seeing forced adoption of some of this "crazy agile stuff" where you work? Do I really come across as a nut job?

[As a side note, to cause the reader to contemplate reality: I think I am rational. Of course, if I had lost my mind, would I know? Would any of us?]

Of course all the agile methodologies are just tools that work to support principles for creating both high quality software and creating high performance teams.  The tools can be replaced with other tools that solve a similar problem. 

And I do know that there are no silver bullets.  There will always be problems, and there agile techniques are not always the best answer.

Saturday, September 23, 2006 1:59 AM by mpuleio

# re: Why did I go Agile? Part One: An Open Mind

In my experience with MS, they are lunatic, they dont care whether you are alive or dead, only thing they care is their SHIP DATE

What a Cluster F&*&^ process they had in the past, but lately I hear they understand SCRUM & slowly adopting it.
Saturday, September 23, 2006 1:31 PM by prabhupr

# re: Why did I go Agile? Part One: An Open Mind

prabhupr,
I guess it depends on which team you are part of.  Some teams drive folks to burn out quickly (not as many as there used to be, from what I have seen, due to focus on "Work Life Balance).  Other groups only ask for heroism on occasion.  

And yes, there are a number of groups adopting Scrum within Microsoft.  Some are following the "rules of Scrum" and doing well.  Others are following the rules and struggling a bit more, as they iron out other organizational challenges that Scrum surfaced.  And, unfortunately, a few teams have re-named their old process "Scrum", added monthly milestones (Sprints) and daily status meetings (bug triage), and ended up with a process that has no resemblence to Scrum and ignores all the principles behind it.  And these groups have the same problems as before. Surprise!

Now, I know that sometimes Ship Dates MUST be hit.  However, the problems occur when the Ship date, feature set, and resources are all fixed in stone.  Any two of these factors can be set, but not all three, in a successful project.
Sunday, September 24, 2006 4:49 AM by mpuleio
Anonymous comments are disabled
 
Page view tracker