Thursday, June 14, 2007

Heads Down

Well, its one of those times. Time when your work goes into "project mode" - a deadline looms in a calendar and a large amount of output needs to be present by that date.

I enjoy what I do, and have moved away from hopping from project to project in the consulting world, always chasing deadlines and crowing about money. Even so, project deadlines arise, and I fully understand that a push is necessary to deliver. So, I'm in the midst of a 6 week final push to get an Alpha release into the the hands of our QC group.

What's this all about? Well, I'm a software engineer, as they say here, but to me its just programming. Cranking our minimal code for maximum features and double-checking your requirements and stability along the way. Nobody using a computer today is immune to the pitfalls of "bad software". So, that's what keeps me employed: Doing existing work in a new way: more automation, faster, better, etc.

At the moment, our progress is moving along quickly, and I'm busy writing a few features, but also responsible for reviewing all the new code from 4 other programmers for potential issues. I have a slew of tools available to help me, and using them is educational - when I end up writing my own code, it tries to follow "good rules of programming" from the start.

I'm in a group of 5 guys here, and I'm the only "senior" person among the ranking - which I'm a bit shy about. I certainly don't mince words about people's code, and I'll send out emails asking everyone to avoid repeating mistakes when I find them, using someone's code as an example. I also make an example out of my own mistakes, which keeps me alongside everyone else in humility about "knowing how to get it done".

Programmers are an odd lot. They usually spend long hours figuring out how to make a machine perform tasks. This can jade them to new methods that come along later. It's a slippery slope, since embracing new tools to replace the ones you've painstakingly written yourself means moving your trust. Ever trust in a new program to handle your photos, email, spreadsheets, etc? When it breaks, you want to go back to the "old" way. In the software world, these decisions happen all the time. In fact, you sometimes need a Plan B,C and D forming while still testing Plan A.

Through our push these days, we've cut scope out of the final delivery many times. Each time, we step down from Plan A to B. We're at something like Plan G at the moment. But given how complex the request is for the final product, it's good to see the core of the software run well, rather than a lot of pretty windows that crash.

You won't hear much more about all this - the actual software's functionality is kinda cool ("electronic data discovery" is the industry term) - but when this push is over, I'll be happy to spend more time at home doing other things - like reintroducing myself to the family, hah.

No comments: