Xp Management Faq

From XpFaq

How can we Facilitate Boss Buy-in?

I was managing one team in a non-XP shop. Now I am the 'Program Manager' for the department (24 developers). As the guy in charge of process and schedules, I'm looking to move towards XP.

However, my boss (a great guy, by the way) is highly skeptical. He and I have had a few great dialogs so far, and we're both really open-minded and win-win oriented, so I'm feeling ok.

Tonight, I mentioned the metaphor of trying to plan your drive home before you start, down to the last swerve. He countered with the example of trying to drive off-road from Denver to LA, without having a map of the entire route, and finding yourself at the rim of the Grand Canyon, wondering how to get your Jeep across. Sharp guy. (My response was asking if there really are any such canyons in software development. He thinks there are. I don't.)

--KevinSmith

There are. When you encounter them, you drive parallel to the rim until you find a way across. That's what happens when you start roaming through uncharted territory.

Now, if you happen to have a very detailed map of the land between here and your destination, and you see the canyon on the map, then you can avoid it. But what software project has such a map? Does your boss think that the map should be created? Does that mean hes willing to launch a bunch of recon satellites to find the canyons? Or does he want to send an army of surveyors accross the land finding all the possible pitfalls?

There are canyons. That's part of the risk. On the other hand, it's only a drive of a day or two to get past them. No need to launch a satellite system.

 > His goals for our process are:
 > - Repeatability (Yeah, I think XP can do that)
 > - Efficiency (Again, I think XP is ok there)
 > - Good communications (Yup)
 > - Effective handoffs between Prod Mktg, Development, QA, and 
 > deployment (Yup)
 > - Scalability (Hmmm....)

Start small. Change the process only when it starts to break. You don't want to be using a 50 man process for 5 people.

 > In addition, he voiced concerns that our relatively inexperienced 
 > programmers might go wild in the loose XP environment, so we need 
 > a more rigid structure (he's pushing for VERY light RUP) to keep 
 > things from getting out of hand. Note that he glanced at Beck's XP 
 > book, but hasn't really read it yet. But he will.

Show him the XP vs RUP paper in the 'publications' section of http://www.objectmentor.com. This papers shows how XP *is* a very light RUP. Tell him that this paper is precursor to papers that will be appearing on the next release of the RUP CD.

As for inexperienced developers. XP does not allow *anyone* to go wild. XP is far more disciplined than RUP is. Indeed, it is much easier to go wild with RUP (wild writing lots of useless documents) than it is to go wild in XP.

 > We already know that scalability is a problem with XP. 

Scalability is a problem period. Any process suitable for a small team is not suitable for a large team. There are no exceptions. If you start with light RUP (which might as well be XP) you will eventually outgrow it. Choosing XP as a starting point is not liability with respect to scale.

 > But I'm 
 > thinking that we could have 5 teams of 12 developers each doing XP 
 > on apps, arranged to step on each other as little as possible. Has 
 > anyone see this structure work in the real world?

There is one team that I know of that is doing just that. The jury is still out.

 > And what about inexperienced developers? Do they quickly enough 
 > figure out what is "good code" through OAOO and DTSTTCPW as 
 > well as pairing with old folks? Or is XP really better for 
 > people with at 
 > least a few years of good OOP under their belts?

Newbies need guidance in *any* process. XP offers the best possible form of guidance -- pair programming. No process can protect you from newbies doing stupid things. Only your experienced engineers can do that.

--RobertCecilMartin

 > Scalability is a problem period.  Any process suitable for a small team is
 > not suitable for a large team.  There are no exceptions.  If you start with
 > light RUP (which might as well be XP) you will eventually outgrow it.
 > Choosing XP as a starting point is not liability with respect to scale.

Processes don't scale up, but don't forget that process don't scale down either. A process that's good for fifty is not going to work well for five. In my view scalability isn't something you want from a software process. Anything that's scalable is either going to be so loose or require so much configuring (for me, that's RUP's problem) that it ends up not helping.

-- MartinFowler

"We already know that scalability is a problem with XP."

Compare the following statements:

We can't scale XP to 24 programmers.

and

We haven't scaled XP to 24 programmers.

There are certainly XP teams out there with 24+ programmers. It may work just fine. I would look to SCRUM for ideas of how.

-- KentBeck

 > In addition, he voiced concerns that our relatively inexperienced
 > programmers might go wild in the loose XP environment,

Many managers have scars of old battles, in which a very quiet set of cubes idly pursued a heavy methodology to ruin, misreading its literature to elicit IntegrationHell, and with no peer review because "we don't have time for that". _This_ was programmers going wild, all the time not talking to each other, and obeying the paperwork of today's attempt at a spiral.

Programmers in a steady but verbal, and fully collaborative, enterprise cannot keep secrets, including how smoothly code is incrementally getting better.

> so we need a more rigid structure (he's pushing for VERY light RUP) to keep things from getting out of hand.

The issue is not whether it works, but whether a metric of how well it works feeds-back successfully & quickly. Management is expected to help in authoring and running the AcceptanceTests. These will tell.

--PhlIp

This page focuses on one question far too much to be rightfully called XpManagementFaq. EditHint: Make a separate page (or pages) for this one big question and give it a good name. Faqs ideally have small answers to the questions. If more detail is needed, link to another page that explores it in more detail.

EditText of this page (last edited November 6, 2004) or FindPage with title or text search