Last week I was in DC for a project. This is the same project that had me almost go to Pakistan in March, that deals with Customs and Border Patrol, and that involves protecting the U.S. from inbound containers containing radioactive material. It’s a high profile project and one of the first I’ve been on that has a real deployment and people using software I’ve written in their everyday job. It’s a neat feeling, but it’s pretty stressful, too.
Anyway, my purpose there was to do a few upgrades to the software. Unfortunately, nothing went right. First, the connection to Pakistan kept going down for extended periods of time, so there was nothing I could do. Second, I was working on a deployment system that had to stay running, so I could only work for a couple minutes before relinquishing the seat, and whatever I was working on couldn’t break anything in those couple minutes. Third, there were a lot of politics going on with the other contractors that made things uncomfortable, and one of the upgrades I was supposed to do was canceled entirely because of it. Fortunately, my project manager shielded me from a lot of the politics. Fourth, the new data source I was supposed to be reading wasn’t ready yet, so another part of the upgrades I was supposed to do wasn’t possible, either. But it got worse. All of the things I was supposed to work on were ultimately canceled, but not before I had made a couple changes. Unfortunately, I wasn’t able to test them thoroughly (remember, I only had 2 minutes to do things), and a few things broke. The next day was devoted to fixing and recovering mangled data from the night before while people watched over my shoulder and I had to do it in 2 minute segments. Next, they asked me to stay an extra day because there were some important people going to tour the facility and they wanted some presence from my organization. So I stayed the extra day and wore the tie I had been lucky enough to bring and had to conference call my Friday meeting instead of be there physically.
In the end, I came back having upgraded exactly nothing on the system. I was embarrassed that I had messed things up, wasted a few days, and done it in public so all the other contractors could jump on it and throw blame our way. Definitely a bad week. In the grand scheme of things, the mistake was minor; the users were never interrupted in their ability to do their work. It’s very different writing research prototype software versus deployment software.