What Do I Do?
Wednesday, 27 September 2006 by Jacob TomawI am often asked what I do by friends and family I have not seen for a while. I usually respond by saying I am a Sr. Software Engineer at Orbitz, the travel website. This garners one of two reactions. Either they nod and have a look of confusion on their faces and go on to another topic, or they say “I cannot imagine what you do.” No matter the reaction the implication is the same for my description, it is not very descriptive.
I think this comes from training as a software engineer. Everyday, I work with two different groups of people, technical and non-technical. The technical are other engineers of various levels and responsibility. Not everyone knows exactly how what each other does works, but we all have similar backgrounds and training allowing us to abstract things to the same technical level. This ability to talk in tech-speak allows us to communicate in a detailed manner about our work. The non-technical people work in general business product management, project management, quality assurance (testing), customer support, sales, marketing, etc. They all know what our product does in English. When we talk to them we use English with tech-speak sprinkled in when there is no English equivalent. I almost never tell my non-technical managers what I am doing, I tell them what feature I am working on and how long it will/has/is going to take to complete. Before we begin a project, I attend meetings to learn about new features. I take the English requirements and the images of the desired feature, then process them into my own internal technical representations. Once that is complete I can tell if something is possible, given the resources we have and the technologies we are using, and when it could be done. Never how I am going to do it.
This is not a fault of the business or of engineers. Business folks do not care that I am going to write 3 JSPs and have 4 action classes that will then process XML data this way and that finally putting it into the database using the DAO pattern. I also don’t want to tell them because I want to have the freedom to implement something as I see fit while I am doing it. If I had to tell them every detail I would be locked into it or need approval to change. However, this makes me severely out of practice of actually telling non-technical people, like my mom and friends from high school, what I do.
I think people should be interested in what software engineers do and how software works. Not because we are important or what we do is really hard or special, but because everyone uses it more and more everyday. When most of our products were made out of material things, people could take them apart and even if you did not know exactly how it worked you could describe its basic function to someone. Think about a car engine or record player. You may not know exactly how it works, but you know that the engine is lubed by oil, gas is injected into the engine, the pistons move, a spark is made, and exhaust is expelled. Or you know that a record spins at a speed and the grooves touch a needle that moves to make sound. Today we treat software as magic. The computer just did something and there is no way of knowing what. Data is entered and more data comes out.
I want to dispel this by telling you more about what I do and how what I do works. Hopefulling in an easy to understand way. The key to this is going to be you asking me questions. If there is anything you don’t understand, leave a comment or email me. No matter how minor, if you have a question more do out there.
September 27th, 2006 at 21:49
Why does OrbitzTLC mess up my flight plans every time?