Thursday, November 14, 2013

Starting Down the Journey to Extreme Programming

I'm trying to get my company to use XP.

A little bit of background first. We are a profitable SaaS shop with about 15 developers. We would like to call ourselves Agile, but we don't follow any practices very strictly. We have 6 week iterations with occasional shorter iterations for bug fixes and late code. We have customer-centric stories with short descriptions and nebulous scope.

So why do I want us to use XP? We regularly miss deadlines. If we are not promising a feature to a customer, there's a good chance it will miss the intended delivery date. We have customers that refuse to pay for our work.  We have last minute changes that set us back by weeks. We have developers who are so bogged down by maintenance that they can't work on their stories.

I think we are a good candidate for XP because we are making something that no one knows how it should work. We are an industry leader coming out with new ideas that change the way the industry thinks. Our customers can't really tell us what they want until they see it.

How are we going to know if it works? One measure is just to see how many missed deadlines we have. Another measure is the team's stress level. We can also measure bugs in new code.

How do we plan on making this work? Since few of our team members have done agile development before, we are going to study agile development together. We are going to discuss how practices can work in our organization, and how we they can benefit us.

There are some practices such as TDD or pair programming that take a while to learn, and will decrease our productivity for a while. We can't really afford to take a huge hit in productivity, so we will take these slowly. I've introduced the ideas to the team, but we won't really use it until a small team of us have proven it to be successful. So we have 4 volunteers who will try out TDD and pair programming on smaller projects that have value, but allow us to try it separately from the rest of the system without impacting deadlines. We will only spend a small percentage of our time experimenting. We will still be using existing methods the rest of the time.

There are some practices that can give us immediate value. We are planning to move to a new space, so we can implement Sit Together to increase collaboration and decrease the communication costs. We can start breaking down our stories into smaller more manageable stories. We can do team estimates.

So that's what we're doing, and we'll see how it goes. Maybe we'll adopt all XP practices in a few months. Maybe we'll pick and choose a few. Maybe we'll decide it doesn't work. We'll definitely gain some valuable experience from trying it out, though.

No comments:

Post a Comment