Woody was an excellent coder, and a hard worker. Talking about program problems, though, just wasn’t something Woody did. He’d write the code to the spec; if the spec was wrong, that wasn’t his problem. End of conversation. Unfortunately, that didn’t make the problem go away, and that was my problem. Eventually I’d call Woody’s way-too-busy boss, Sarah, who’d sort things out and set Woody to fixing things. Such, sometimes, is life in a bureaucracy.
Woody left about a dozen years ago, leaving a legacy of excellent code which still helps run much of the operation. Poco was hired in his place.
Poco’s an unstable, troubled person who has perhaps half Woody’s programming talent. Where Woody’d write flawless and creative code, Poco’s a plodder who slowly produces solid, but uninspired, software. She’s also shown a maddening tendency to rewrite working routines merely because she prefers a different decision logic. Those of us who worked with her when she was a new hire had serious doubts about the woman. Her personal life was both wacky and public, her mental stability was obviously troublesome, and it took her forever to produce working code. Not a good scenario.
Regardless, we needed a programmer and Sarah believed in Poco. Poco’s first few assignments were along the lines of “Work with Joel to figure out what’s causing this routine to malfunction,” so I spent a lot of time in her office. I learned more about her problems than I really needed, but I also learned that she has a sense of humor and that she cares–really cares–about the impact her work has on other people’s work. I began to have some hope. Despite her quirks and troubles, she understood–not yet our mission, but at least that we had a mission. Woody, despite his strengths, had never discovered that his work impacted our work.
Sarah asked me to dust off one of my pet projects so Poco could sink her teeth into something more satisfying than bug squishing. I’d been campaigning for a rewrite of the supporting code for a process I’d worked when I was part of the clerical staff. Much of that work was painfully routine, and moving the boring part of it out of the office and into a program would have positive impacts in all sorts of places. I’d first written a proposal while I was a clerk, and had rewritten it a couple times since. Sarah set me a couple design parameters for another revision, and handed that version to Poco.
Sarah’s parameters required me to design the project as an extension of the existing code, which already did a sort of the cases by setting a flag if any of several tests were passed. I needed the program to capture the specific test which was passed, and to store the flags long enough to assess the “difficulty” of the specific record. With that done, sorting instances into “simple” and “not-simple” looked like something we could accomplish; if we got simple right, the rest of the programming was just applying some straightforward rules. Poco vanished from my radar for a time, and came back with first stab at a solution.
Which I rejected out of hand. I was more involved in her second try; by the third try we were all satisfied that the approach would work. It took about five months to get from the third prototype to production, which is pretty good for a project of this scope; Poco’s productivity was improving as she began to understand what we do. We built a few extensions to the code before my job got abolished and I was off to new responsibilities.
Several years later Poco found an opportunity to do a rewrite from scratch: Two related assignments forced her to rework both the initial processing routine and the followup routine we’d added, so she rethought the architecture and did the rewrite as a single, very elegant, project. Not only did this satisfy her need to rewrite Sarah’s logic, it allowed her to create an integrated program which was both easier to maintain and more powerful. A good bargain. I was in a position to assign myself the usability test; I did so, and gave the revision a rave review, despite a few bugs.
Woody’d never have recognized the opportunity….