I ran across the video below at the SDLC blog: “Hug a developer… They’re in terrible pain.”
This came at an significant time for me, because I too have been working on a project that is quite painful for me. It’s painful, because I saw the disaster coming, because I warned about it, because I was ignored, and because now I need to be reminded (despite the innuendo of the manager on the project) that it isn’t my fault, because indeed it isn’t my fault. As a fellow developer reminded me, at every point, I was reasonable, responsible, and professional.
If I were to do anything differently, knowing what I know now, I would probably bring the crisis to a head sooner, rather than reluctantly going along with: “what you need will be ready in plenty of time” (because it wasn’t), and “just ask for what you need, and we’ll get it for you” (because they didn’t, because they were too busy with their own stuff), and “you shouldn’t let that hold you up” (because I should have, because it was a big red flag). I would have brought the crisis to a head sooner, because that would have given the team as a whole a better chance of ultimate success.
My problem is that I allowed myself to become emotionally invested in the project. (Gasp!) And while that did not compromise my professionalism–that is, I still only committed to those things I actually thought I could deliver, given the assurances I had been given–it did cause my judgement to falter–that is, I should have questioned the assurances I had been given, suspected them, pored over them, verified them.
So this video does hit home for me. But it also reminds me of some of the best things about being a consulting developer, in the various projects I’ve worked on for various clients, rather than a staff programmer (as when I was a regular employee):
“We’re 4 months into a 5-month schedule and I just received the final requirements yesterday. (And they’ve changed again.)” In one job, we were 3½ months into a 3-month schedule, and I had been brought in during the second month, and apparently nobody had documented the requirements, and no one bothered to tell me. The upside: This is just a job I get to draw on for anecdotes in my next book. It’s not my life slipping away, because I have potential prospects lined up around the corner, and the big question is which one is the best match for what I can do for him.
“I spend half my days in meetings about how to get more work done. (Instead of working.)” Actually, no one invites me to meetings, so I sometimes don’t even find out what everyone thinks I’m working on. The upside: As a consultant, I control my work schedule, and that means I don’t have to go to meetings if I don’t think it helps me deliver on my promises.
“My boss read in a magazine that developers using ‘___’ programming language are twice as productive. So he bought us a copy and cut our schedule in half.” Of course, I’m the one preaching that the top 3 things that will make your team more productive are (1) frequent deliveries to real customers, (2) reflective improvement of their development process, and (3) actual communication. (And I got those from Alistair Cockburn.) The upside: When they ignore me, see #1 above.
“Every day my boss changes his mind about what we’re building.” Yeah. And then I tell him that it’ll take N weeks if we make that change. He knows I’m serious, because see #1 above. The upside: If he ignores me and says that he needs it sooner, I get to start thinking of ways to stick around just long enough to see how close reality is to my original estimate.
“People keep asking me to fix their email, so I have no more time to code.” The first rule of being a consultant: The more you can charge, the less likely it is that anyone will ask you to fix email.
“My daddy has no more time for me.” See #2. I set my own schedule. I have plenty of time for my kids. (I actually have the opposite problem, as many self-employed, work-at-home dads & moms do, that I sometimes need to tell the kids that I’m working, and they’re not allowed to disturb me, so that I can get a reasonable amount of work done.)
“Some consultants told my boss they could build our next version in half the time, for half the money. He believed them but now they’ve spent all their budget, used all their time, and are still only half finished. Now they’re gone and their code is a disaster. We have to fix it and finish what they started.” Yeah, as a consultant, I can tell your boss that. I can even tell him how to build your next version in half the time, for half the money. Just include half the features. In my case, I’ve more often been the guy measuring actual progress and trying to come up with brutally realistic estimates. Then some hot-shot says he can bang it out over the weekend. Then see #4.
Finally: “I just finished a 6 week intensive Visual Basic course.”
(Runs screaming from the room.)