"user interface geeks"

SIFT THIS -- Software engineers in the Silicon Valley spent much of the 80's trying to distance themselves from the stigma that had been afforded computer hardware engineers during the 60's and 70's.

The mantra: "We are not the pocket protector crowd. We're the software crowd, we make boring hardware interesting."

On the shoulders of software superstars like Microsoft, Borland, Netscape, and Lotus, they succeeded. In the 90's, hardware engineers continue to be the excessively dull and detail oriented folk who have difficulty explaining to anyone that they work on.

The pick-up line: "Hey baby, I work most of last summer on the Celeron's L2 cache 128k. Can I buy you a drink?"

R E C E N T
The world of thin clients, read about it in, "Thin means Thin"

Meanwhile, the software engineers have evolved into Banana Republic wearing rock stars not because they provide a more essential service, but because the average American hasn't a clue what they work on.

The pick-up line: "Hey baby, I write browsers."

Now, as we approach the turn of the century, a stratification of software engineering is beginning as traditional Windows-style applications are replaced with web-based equivalents. The two most significant roles in this new paradigm, in terms of engineering, are the platform or server engineers and, a new category, the user interface engineers. Now, before you start screaming "UI engineers have been around FOREVER", let's briefly look at the responsibilities of each of these roles.

First, the platform engineer. Remember that we're talking web-based applications here that are based primarily on server-based technologies. The platform engineer is responsible for being an expert in these types of technologies and will be tasked with designing the architecture that most the product will be based upon. These are command-line engineers with little use for fancy front-end technologies.

Now, the user interface engineer. This engineer is responsible for the implementing the look and feel of the product. Sounds familiar, right? Difference is that the product lives inside of a browser, so forget about your usual design methods and tools. The UI engineer must be an expert existing browser technologies (HTML, Javascript, and (not for the weak of heart) Java) as well as being intimately familiar with the nuances of developing within leading browsers. On top of all that, they need to use these primitive technologies to create applications which look and feel like those you are already productive with. (Hint: drag and drop isn't an option… yet)

For those of you who've been paying attention for the past 10 years, you might think, "Isn't he just talking about client-server?" Yes, the metaphor works, but the difference is that in client-server land, your client is a Windows application. You developed it like Windows app and installed it like a Windows app. Any well-designed web-application needn't be installed on a computer that already has a web-browser. It's assumed that it will work simply when you click on the link. This is the curse of being a user-interface engineer.

The advent of the web applications furthered diversity in engineering that began with client-server applications of the late 90's. The software engineers responsible for that development are at the bleeding edge of technology and, in the Silicon Valley, bleeding edge is cool.

october 30, 1998

Serious bits. Subscribe to the Bitsifter Mailing List