I Am Actually Pretty Good At This Stuff. . .
[NOTE: For some reason I never published this one and it sat in my drafts folder until now. I might have put it up on my Facebook page, but given the formatting here I don’t think so. Anyway…it’s worth putting out here. I am actually pretty good at this stuff…but I’m a year retired now and I want to move on…]
I’m going through a bunch of old documentation in preparation for retiring in a couple months. My project manager quite reasonably wants me to basically do a brain dump and put it all out where they can access it after I’m gone. It’s bringing back a lot of very happy memories. And also not quite so happy ones. I created a bunch of custom software for them that I am still intensely proud of, that just got trashcanned, in some instances even before I could release it for general use.
That happens in this trade. One of my contract jobs before coming to Space Telescope had me working on an interactive tutorial for Microsoft Office products, that had already been superseded by newer versions. When I came onboard I wondered how long the contract was going to last, given that we were working on a product for teaching users how to use a version of Office that was already obsolete. And sure enough, about a week later the project was cancelled. I felt really bad for the employees of the business that had been working on it for months before I was brought in. All that work…all that time out of their lives…just out the window.
I’ve had several moments of that working at Space Telescope. It happens and I was told not to worry. Some way more experienced developers than I had it happen to them multiple times. The environment changes out from under the work you’re doing and you have to throw a bunch of stuff away and start over. At least in this business you can often reuse some of the old code. But nonetheless, it still makes you doubt yourself. I wasn’t good enough…
As it happens, Facebook this morning showed me the following memory…a post I put up while going through my old DayTimer pages (I used to use DayTimer’s 24 hour pages as a work diary) about something that happened to me from back before I came to the Institute. Out of everything that ever happened to me while plying this trade, this one jobsite holds for me both the best of my times, and the absolute worst. I have never hated working for a company, and its managers, more than I hated everything about working there. Yet it proved to me just how good I am at doing this. I solved a problem that none of them could figure out, and I did it with only paper print outs of the code.
I should have posted this here too, instead of only on Facebook. But I’ll do it now. Because I need to remember this going forward. I am actually pretty good at this stuff…
Condensing the last of my Daytimer pages…I’m glancing over the entries for what was one of the worst contracts I had…the two weeks I spent at a big insurance company not far from where I live. The story I got was they’d just undergone some massive layoffs and the environment there was bitter, resentful and hostile toward contractors. After a week of enduring loud, angry shouting matches among the managers there I was telling my agency to get me the hell out of there.
In the two weeks I was there they never got my network account properly set up. For a few days after clearing it with the manager there, I brought my personal laptop in to get some work done, but then one of their lobby guards tried to confiscate it and I pitched a fit that got one of the directors called down and I was allowed to take my laptop home and from that time on I did my work with paper printouts of the code I was supposed to be debugging. I am proud to this day that I was able to pin down several reasons why their software was blowing up using just those paper printouts.
Here’s some of my Daytimer notes from the battlefield…
– Resolved GPF problem on external program module. Share must be running or program will GPF when initialized.
– When recommended that install be changed + test for presence of share be coded into the program, suggestion by **** that I just wanted to spend their money on useless trivia.
– Hostile toward suggestion that GPF condition be trapped for and handled gracefully. “We could be dealing with millions of little problems like this” was what I was told. (Better I guess to let the program blow up and make the user restart it than put error trapping where your lazy programmers couldn’t be bothered..)
– I can run the system but not in debug mode and I can’t access files I need do my work. When asked about this I was told it was my problem and if I can’t fix it myself then why are they paying me to be here. So I dig a little deeper and find out my network account is USER not DEVELOPER which explains why I don’t have privs on those files. When pointed this out I got an angry stare and was told they would look into it when they have time.
– Told my workstation is user configured and not to be reconfigured because it is against LAN policy to reconfigure user workstations, and I just have to do the best I can. Still using ****’s (this was another developer from the same agency I was working for, who’d been there longer) from workstation as I can’t log in on mine. Cannot log in to developer area on any workstation though, not just mine.
One afternoon during this time I met a neighbor of mine at the apartment complex I lived in then, who worked for a different agency as we were both getting mail from our mailboxes. I asked him what he was working on and he asked the same of me and when I told him first words out of his mouth were, “Ohhh… Rough Place.” Apparently everyone already knew it was a notoriously bad place to be a contractor but me.
And from the comments I replied to, was this from me…
Yeah. Some of my favorite programming code horror stories come from this place. I was called in to find out why their reporting system kept blue screening their workstations. It was written by some staff programmers who allegedly had their BS in CompSci but the code I saw was so full of problems I don’t think a half-wit would have made that it made me wonder. They weren’t fixing it themselves because they were leaving the company for allegedly better paying jobs elsewhere. At least that was their story. I suspect they were just getting the hell out of Dodge before it dawned on anybody how incompetent they were.
I tracked down the blue screen of death problem to the fact that these idiots used a bunch of global variables (named…I Am Not Kidding, GlobalDummyInteger1, GlobalDummyInteger2, GlobalDummyInteger3…and so on…) and were storing handles to windows in them at the same time they were using them to store things like the result of a button press or a for-next loop counter. But to fix it would have required a lot of rewriting of the code base and they were already saying to my face that I just wanted them to trap for errors whenever they tried to access a share to spend their money.
I have no idea what eventually became of that system but it just needed a complete rewrite to be stable and I suspect they eventually contracted out of house for a new one but who knows…they may still be telling their users to just reboot their machines whenever they blue screen.