Professional software engineering

I don’t usually write about work anymore, except for the occasional, “Gee, I’m busy”, but I had some insight in the shower this morning, so I thought I’d send it out to the ether.

I was thinking about it over the past several months I guess, in the back of my mind, but this morning in the shower it bubbled its way up to the surface of my consciousness.

An important part of being professional is detachment. We build software. We’re software engineers. We need to evaluate the software we write and the software we use clinically, and do what we can to improve upon it– as it currently stands and in the future when we write new software. This has to happen objectively. It’s not about who wrote it, or what the person is like. Because I think a lot of my frustration for a long time was about “he/she keeps screwing this up, and that’s why I’m here now.” I didn’t think this actively, but I think the feeling was inside of me somewhere. Whether it was a team member’s code, or the incomplete spec coming from design, or whatever. All the frustration grew out of there being a victim and a perpetrator. Though they most certainly didn’t intend to cause this kind of hardship, by what was produced that’s the atmosphere that developed. Even without the intent though, it was the fact that someone else created this condition, and I had to deal with it. I didn’t sit around actively thinking these things, but those kind of tones were in my frame of mind, and it frustrated me, which in turn made me stressed and tired, which led down that negative spiral.

But you can’t think that way. Not just for your own good, but for professionalism’s sake. And when you realize that it’s not about who did what at all, that actually it’s just about the job at hand, then it’s easy. There is no guilt, no victim, no perpetrator, no right or wrong. It just is. We analyze the software in question, try to improve on its current weaknesses in a symptomatic (bugs) or theoretical (refactoring) aspect and move on. Experience brings better judgment and refined sense. If we can just open our minds to this truly detached mindset of appraising and using software, then there is no cause for worry.

Maybe that’s what my senior meant when he told me years ago that I needed to work without making it personal, without being emotional. I still like to see people have fun, to be able to allow them to have fun. I can feel that, and that’s ok. It’s actually very important when you’re in the entertainment business. But when it comes to the method of my work, of engineering, then there is no feeling, no emotion. It’s just critical evaluation and corresponding action to improve the entire game development process.

“Easy” is a relative term. Everyone has their standards for difficulty, success, and merit, but for me software development has gotten much “easier” since I stopped looking at it as a high school drama of who did what to who and just saw it for what it really was, simple engineering.

Color space correction

The weather has been flip-flopping the past week, spring to winter. Tomorrow are forecasts of snow. I’ve caught a cold. The website’s database server has been misbehaving (it’s miracle if you’re still around to see this). Work is bearing down on me. I’m woefully behind schedule for all of my big three projects for the year.

Things could be better.

But then again, things could be much, much, worse.

So, we do what we can. We do our very best to apply time management techniques to our time, and strive to make life better in at least one way, for ourselves and for others. Every day.

Tip: Start in ProPhoto, deliver in AdobeRGB.