Joe White's Blog Life, .NET, and cats

XP and deadlines #Programming #extreme programming

I went to visit my family this weekend. Before I left the office, I grabbed an XP book to take along and read. I happened to pick "Extreme Programming Explained: Embrace Change (2nd Edition)" by Kent Beck and Cynthia Andres.

I only managed to read the first chapter over the weekend, and even that had some real eye-openers. In particular, it had things to say about the looming deadline we're facing at work.

If I do my very best writing a program and people don't like it, I can still feel justly good about myself. ... If how I feel is based on an accurate read on whether I did my best, I can feel good about myself by doing my best.

When self-worth is not tied to the project, we are free to do our best work in any circumstance. In XP you don't prepare for failure.

You may have enough time, money, or skills on your team or you may not; but it is always best to act as if there is going to be enough. ... I often ask developers in a dilemma, "How would you do it if you had enough time?" You can do your best work even when there are constraints. Fussing about the constraints distracts you from your goals. Your clear self does the best work no matter what the constraints are.

I read those passages to Jennie last night, and she nodded and said, "That makes sense." I find it amusing that she, as a non-programmer, found these easier to accept than I did.

We're under a deadline, and we have to keep that deadline in the forefront of our minds as we work, right? Well... hmm. Maybe not. Maybe we can do better work if we just think about the work, and about doing the best job we can, and asking ourselves, "How would we do it if we had enough time?"

We've been doing XP since February, not as a totally religious thing (we still don't do 100% of our development test-first), but well enough that we've got a plan laid out from here until the release date: which story cards we'll get done in which iterations. If we can keep our velocity up (and avoid introducing too many bugs), then we will hit our ship date, so even though we've been worrying about it a lot, we don't need to. Our challenge as developers is not to worry about the deadline, it's just to keep plugging away and getting things done.

When I read Beck's first chapter, my gut reaction was, "We can't do that; we're under a deadline!" But the more I think about it, the more I think he's right. The owner of our company has said more than once, "I don't want to hear anybody saying, 'That's not my job'", but here it's true and for good reason: It's not my job to worry about the deadline; our internal customer is already taking care of deadline planning and can do it far better than I can. It's my job to write the best code I can.

If we don't spend effort worrying about the deadline, we may be able to do better work in less time. If we focus on doing the best work we can do, we can keep our excitement level high, keep from getting burned out, and keep the good code coming.