aghast
Back in the days when I was only a program manager, not a program manager / developer or developer for that matter, I was protected from the dynamic that hit me in the face at the end of last week. (It's Monday, so given that this took our Friday and Saturday, I'm still reeling from it and cleaning it up). I'm consoling myself with the theory that when developers make mistakes, or plan for things to go one way and realize they won't ever go that way, or get to any state where they have to cut features or start over with their project after 6 weeks, that was happening on my projects all the time and as a pure program manager I just never caught wind of it. It's hard, it's humiliating, and the best thing for it is to hunker down, pretend the building is on fire, and make any decision you need to in order to wrap up this very dangerous feature. Certainly notifying a bunch of people before things are wrapped up is counterproductive. It's comforting to me to think this has been happening all along, and I'm not the only one. And I will not be disabused of this comfort, I need it so badly, in order to get things on their feet.
The irony is I was working so well! Meaning, every challenge I came across was quite tricky, and I had to research and execute on something I hadn't done before in many cases. In other cases, this was building on what I had already learned, so that went very quickly. Development is not for those with an easy shame reflex, because in other fields the quality of your work results in quality work. In development, you might just be brilliantly rendering a bear trap, which will catch you on the next loop around.
The low point is calling the cab company at 9pm on Saturday, hearing them say it will be a half hour wait, and the thought of losing another half hour on top of two whole days of wasted (but brilliant and heroic) work, was just too much. The cab dispatch said "long day, huh?" after hearing the catch in my voice. He had no idea. Instead of waiting for the cab, it was somehow better to go out to the bus stop (muggy heat, darkness, feels like New York except smells like pine trees and camping) and wait there. Might as well have something be cheap if you have to wait the same amount of time for it. Sit there and wonder why I got so choked up. I care about my work, and am a little compulsive about it, and I give up a lot to come in and do it. So when circumstances don't show me the love, I get upset. Not really angry, you understand, but upset in a disjointed way, like everything coming onto my plate is from another planet, and I can only stare aghast at it. Another comfort: I chose this work, and these challenges, and there's no sense claiming that they're too hard to solve. I'm getting exactly what I chose, and that includes the occasional disappointment (or train wreck, depending on how much sleep you've had). So those thoughts filled the bus ride just fine. I wasn't bored for a blip.
When I started my weblog, my old radio weblog that is, I was mostly interested in documenting my transition from program manager to developer. I wanted to have a searchable chronicle of the technical terms and tools I encountered, to act as a spare brain, and show some sort of trajectory. That was in 2002 I think. This has worked so well that now I'm much more interested in the craft of programming (and program management) than the philosophical position around it. I had Hugh's "How to be Creative / Put the hours in" page open on Saturday as an inspiration, and it struck me that this is the kind of thing I would have been delighted to write 2 years ago. It's still relevant, but not a match for the crafty place I'm in now. That's why my weblog has transitioned from the philosophical stuff to daily occurrences such as this latest challenge. It's ground level, it's exhibit A, it's fodder for extrapolation and not the extrapolation itself. What's next after this trend of probably too-personal postings? Not sure. It will have something to do with packaging, I hope.