EA Another element of XP that is perhaps a little controversial—and it’s not really about coding and to me it’s one of those mythical beasts—is the 40-hour workweek. I certainly do believe that programmers should not be working 80-hour weeks all the time, but management, which usually means the CFO, loves working programmers for 80-hour weeks, week in and week out. You can’t be productive that way in the long term.

BC No, not at all. But software development is a series of sprints, and the marathon is really only a composition of sprints.

EA Yes, it’s a series of sprints, but why is there never a rest break between the sprints? How do you convince management that they have to give you some time to chill out?

BC By writing great software. We’ve been able to structure the environment here because enough of us have a track record of writing great software that management knows to leave us alone.

You’ve also got to be There are som e g uidelines willing to schedule yourself.

If you want to get to the that improve the code, but point where you have some my question is, how much flexibility to pursue things, you need to be as transpar- does this actually help you ent and as honest about structure the code...? your schedules as possible, because—just like Wall Steve Bourne Street—more than actually wanting results of a certain level, management really wants predictability.

They want to know if it’s going to deliver six months later than you thought it was going to deliver. In the abstract, it’s not like that six months, in terms of the time to market, is going to cost us the business. In some cases maybe it would, but in most cases it’s not going to. If I went to a customer and promised this is going to be finished in June, and now it’s not going to be finished until December, then you’ve impacted the relationship with that customer. But as long as you’re predictable, I think you can get that time for yourself.

In terms of how you convince management, you don’t treat scheduling as a kind of tedious exercise, and you don’t tell management what they want to hear. A lot of engineers think that the best thing to do is commit to the most aggressive date possible. No, don’t do that. You should commit to a date that makes sense and try as hard as you can to meet that date. As soon as you know you’re

not going to meet that date, you want to make that clear and slip the schedule accordingly. If you do that, then I think you can get the time.

SB I don’t know if it’s in the Extreme Programming dictionary or not, but the simple version of this is don’t commit to the date until you’ve written the prototype, because you don’t really know what you’re doing until you’ve got something you know you can build. Even then, even if you do commit to the date, it’s important to manage expectations after that to make sure that if the date is going to change, you say the date is going to change.

BC Steve, you hit on a very important point, which is
that the transparency of schedule actually interrelates
with your development methodology. If you use a
waterfall methodology, you’re much more likely to slip
because there’s so much that’s unforeseen. When you’re
using rapid prototyping,
and you’ve got an idea of
what the problem space is,
you’re much more likely to
come up with a schedule
that you’re going to hit.
EA As I understand it, XP
uses rapid prototyping, but
it’s called “spike solutions.”
I’m also reminded of my
past where we always said,
“Prototypes are great...and
they always get shipped to
customers.”

BC Which is the other half of the coin. When you do

rapid prototyping, management sees a prototype and gets very excited.

EA They say, “Good, it’s working. Sell it.”

BC Or they say, “You showed me a prototype eight months ago. What have you been doing for the last eight months?” You say, “Well, I’ve been doing the 90 percent of the project that you don’t necessarily care about because it doesn’t impact the prototype that you see, but it does impact the quality of the product you deliver.”

Management needs to realize that when they see a prototype they still need to trust the schedule that they’re getting out of the engineer. They should view the prototype as a way of knowing that they’re on the right track and as something that they can talk about with customers. EA I think you’re assuming a pretty enlightened management. Unfortunately, that has not been my experience in most of the real world.

References:

mailto:feedback@acmqueue.com

Archives