6 May, 2002
Whew. Where to begin?
Last Friday, I formally raised the risk of failure on seven linked projects due this year. This morning, I had my bi-weekly meeting with my boss, and I raised the issue with him as well. I told him that the projects needed a single leader: someone who could co-ordinate all of the different people involved. He asked me if I wanted to do that. I told him I was concerned about the organization not being set up for the projects to succeed, and that I didn't want to lead a project unless it could be a successful one.
So... this afternoon, the architect in charge of those projects approached me. He told me that had re-read my process proposal over the weekend, and thought it could be done. (The one I just recently dismissed as "too aggressive.") He asked me to lead the seven linked projects. I said I was interested, but I was concerned that I wouldn't have the organizational support I needed. I asked him some questions: would we have a bullpen; could I do iterative development; would developers be assigned to me full-time; what kind of leeway would I have; and then told him I would think about it and let him know more tomorrow. But before he left, I told him how much I appreciated his considering my ideas.
Later that day, he introduced me as the tech lead for the seven projects. Well, okay then. :)
I should be thrilled about this -- I have the ability to make a much bigger impact than I could before. Now I can demonstrate my ideas rather than just talk about them. But I really am concerned about whether this project can succeed. I'm concerned about organizational support.
On the other hand, it's a golden opportunity, so I'm going to embrace it whole-heartedly. I'll start moving in an agile direction immediately. I'm not going to be aggressive about it, but I will be firm. Why? Because I think these projects will succeed or fail based on communication, refactoring, and schedule. I need to establish practices that enable these three things right away... not because we need to get started with them right away (although we do), but because I need to know if those practices can even be put into place. Basically, I'm trying to find out what the resistance is going to be to the practices I consider critical.
One thing's for sure. Work just got a lot more interesting.
Some notes about why I think I got offered this job:
- I was calm. I laid out my point of view about failure risks in a calm, serious, but concerned manner.
- I went through channels. First I told the architect. Then I told my boss. That was it.
- I was clearly right. Everybody could see the problems that were occurring, even before any serious development had started.
- I didn't push my point of view. I purposefully said that I wasn't pushing an agile approach, but just raising serious concerns.
- I've got credibility. I've been establishing my credibility for the last four months.
- I didn't ask for the job. Actually, I'm still not sure I want it.
An even more interesting question might be: Why was this job created? I'm not entirely sure, but I think it was my steady concern, which was received and perhaps transmitted by my boss, combined to create a sense of real and short-term likelihood of failure, leading to growing worry on the part of the architect, leading to a feeling that something must be done, leading to... this.
8 May, 2002
I've done it. I've changed my organization.
I've been looking forward to saying those words ever since I got back from vacation. The funny thing is, I was planning on following up with, "and I like my new job much better!"
But I haven't found another job. It looks like I may have actually succeeded in changing my current organization.
Okay, I have to admit: This declaration of victory may be premature. But things have never been so good. I spent most of the day talking to management and going over my comprehensive process proposal item by item, getting buy-in on each point.
Yes, we'll have a bullpen. Yes, we'll have two-week iterations. Planning game. Test-driven development. Collective code ownership. Pair programming. Continuous design. Yes. Yes. Yes. Yes. Yes.
I was this >< close to leaving. I had gotten all the way through the interview process with one company, and was getting overtures from two others. I've been privately committed to leaving ever since April 17th. I was fed up, burned out, pissed off.
Some of that came out. I let it slip to a few people that I was on my way out the door. Maybe that's part of why things changed. I'm not really sure. I'll ask about that once things settle down.
Today, I formally agreed to run the linked projects. I called the other companies and told them I was no longer available. Tomorrow, I'll go find all the people I'll be working with, explain the new process, and find a place for us to sit.
It's going to be hard: the projects I'm running are the highest-visibility in the company. The client is difficult to work with. The programmers have a lot to absorb. The development environment is bizarre. This is a huge challenge.
I can't wait.