Thursday, June 7, 2012

Agile Transformation Defined

I'm currently leading an agile transformation, and it has been an incredible learning experience.

It has also been a frustrating experience that causes me to drink to wretched excess, and sometimes kick my dog.  But that's a whole different blog post.

Some Background

My company went "Agile" 3 years ago, and I was hired as part of that process.  We did it mainly by bringing a large amount of offshore software development back onshore, and hiring people who had the right skills to replace the offshore team.  This may be the easiest way to do it, and explains why we were successful where so many others have failed.

This Spring, one of our remote offices was having some trouble delivering a flagship product, so the suits decided that a leadership change was in order.  They moved a couple of people around to make room, then appointed my boss as the interim leader of the remote office.  Being a savvy businessman and a keen judge of character, he charged me with leading things from the engineering side.  (The fact that I held my breath and threatened to cry if he didn't let me do it may have had something to do with his decision.)

Compared to my previous experience, this has been a much rougher ride.  There are a couple of reasons for this: 
  • First and foremost, the people already on the ground weren't hired with agile development in mind - most of them had to be sold on the concepts before we could get them on board.  This is by no means done yet.
  • Second, the people (I won't call them a team, because they're still not) had never been part of a healthy development group, and had no idea what it felt like.

I'm not maligning the people.  They're smarter than most of the developers I've worked for, but they didn't sign up for this.  Three of them have already taken their services elsewhere.  That's actually an opportunity for us because we now have room to hire people who do want to do this crazy Agile thing.
You can't force a culture on people, it has to grow by itself.  And it won't look like what you expected when your'e done.

OK, so what does "Agile Transformation" mean?

There are probably as many versions of "Agile" as there are people practicing it.  That's why I usually put it in quotes.  The way we do it is:
  • We don't need permission to build in quality - we use the engineering practices of pair programming and test driven development.
  • Everybody that can code does - managers are programmers too.
  • Build a learning culture - anyone can do a short presentation or hands-on exercise to teach others, and many do.
  • We set aside a day every few months for an in-house software conference, usually technology focused.
  • The 60-80 developers (1/3 - 1/2 are contractors) we have at any time, are split into 4-6 teams based on products or platform projects.
There are a lot of little cultural quirks, but that's the core.  Applying the same methods to a team 1/5 the size should be easy, but it's not.  

(Photo by Алексей Харченко, and no, I can't pronounce that either)