Monday, January 24, 2005

A Day In My Life

What What?
My previous blog post seems to have a prophetic ring to it when I reread it.

It's Monday, the start of a long week at work after a long weekend at work. Ten hour days seven days a week starts to burn you even if you love what you are doing.

Why are things So Easy/Hard
My work-life is strange -- one might see it as easy or impossible, depending on your perspective. I work as a professional software engineer.

Software engineering is a strange field -- years ago it was the realm only of professional engineers -- too arcane and technical to be comprehended by mere mortals. Then the 'dot-com' boom and books like "AIX for Dummies" started a giant snowball effect.

Marketing became the driving force in software engineering -- what sounds good to executives drives the market. Years ago, management recognized that making technical decisions was way beyond them and relied on skilled engineers to provide the necessary background data and advice. Then ... ODBC made database development "simple", ADO made application programming "intelligent", Java made software "portable" and run-time environments made software "secure" ... all the while the actually programs were no more simple, secure, portable or intelligent than before.

And yet, all the while, things become more complex for the engineer, not easier. The stack of required technologies piles higher each day -- new approaches, new languages, new middleware -- all with the perceived goal of simplifying software engineering. Nonsense.

To do my job ten years ago, I would have been 'ok' knowing C, C++, SQL and how to manipulate text files. Of course, software engineering is not about syntax or languages -- it is about patterns and concepts. I would not argue those have changed -- an "Abstract Factory" is still an abstract factory -- if it is a .NET web service or a C++ constructor, it does not matter. However, like I mention above, software engineering is no longer the realm of software engineers. To a marketing executive, an "Abstract Factory" is a meaningless pair of words. A .NET Web-Service is a product -- "that we can sell!" is what I hear.

So to do my job today, I still need the mastery of basics like design patterns, secure coding practices, attention to detail, ect. However, to describe or apply those techniques in a manner considered "marketable" (even the word has invaded our qualifications!) one cannot simply rely on skill and experience. You need to have couched those skills in ".NET Certified Developer" or "Java Web Engineer".

Not only that, but I must be able to apply my core skills while swimming in a sea of confused executives, frightened junior programmers and mis-applied technologies. No longer can I be a software engineer -- I must be an expert with ODBC, ASP, .NET, SQL, XML, XPath, XSLT, Perl, Java and XHTML expert (to name a few of the technologies I deal with on a daily basis.)


Post a Comment

<< Home