Are you a Coder or a Programmer?
It’s always a head-scratcher to me when I hear observations about whether a UX-er should “code”. Shouldn’t we clearly differentiate between “programming” and “coding”? This is one of those topics that just keep coming up – especially in the UX arena. The question often arises…
Are you a Programmer? … Not really, but I am an excellent Coder.
What’s the difference?
… is an accepted system of rules or symbols for converting a piece of information into another form.
As UxP folks, we do “coding” all the time. At the high end we do it through information architecture, metaphors and patterns. At a visual/conceptual level we do it through Visios and drawings. On a dirt-under-the-fingernails/implementation level we do it through HTML, CSS, DHTML, etc.
… captures and expresses functionality and performance features through a form of logic. (I haven’t found a convenient definition, so I just made this one up).
… to produce the application layer code that drives the logic of the system using development platforms like ASP, JSP, DotNet, JSF, PHP, C+Plus.
Programming is what the developer community does. They use a programming language, which is made up of functional “code” (Java, C++, etc.), to manipulate the informational and presentational “codes” that are defined by us designers.
… produce the underlying intelligent, self-aware structure of meaning
- The logic is owned by Programmers – They don’t have to deal with presentational issues when crafting the engine.
- The presentation and organizational structure is owned by design Coders- so that many of the changes to the UI probably don’t need to involve Programmers. There is no functional overlap of responsibility, even though both share code.
Programming <=> Code. Yet the two terms are often used interchangably, which adds to the confusion.
I have technical knowledge that is appropriate to my role. UX Coding helps make the 50,000 lines of program code usable.
When someone says, “Gee, that looks like it was designed by a programmer” … It’s usually not a compliment.
The question “Having knowledge” of a technology is vague. In terms of defining understanding, it runs from “I’m aware that it exists”, through “the ability to carry on a cocktail party conversation”, upwards to “hobbyist”, “technical competence” and – eventually – “professional expertise”.
When someone says “I am not interested in programming or coding”, I don’t know whether he is identifying a distinction between the two terms. I DO see a distinction, and believe it would be useful (both within our discipline and in the larger professional environment) for us to clarify our discussions along those lines.
I’ve worked successfully with many excellent programmers who should not be allowed anywhere near HTML or CSS code.
The Meaning of Coding: It’s Semantic
… in the sense that I am proficient in the identification, definition and organization of content.
As an information architect I organize and express the architecture of information. This is delivered in the form of taxonomy, content strategy, tagging, semantics and keywords. The focal technologies that I work with in the design of this semantic structure are HTML and CSS.
It’s Intelligent Design
IA = CSS
You can view CSS as merely a way of applying a “coat of paint” to the UI, but that misses the point, because…
So our understanding and description of information are often based on…
CSS is the “semantic tagging” tool by which we identify Information Architecture.
- it gives meaning to design elements
- allowing for “self awareness”, automation andsharing
IA gives weight and credibility to Cascading Stylesheets.
CSS is the “presentational styling” tool by which we engineer a CSS StyleGuide.
- it is a flexible presentation platform
- allows for easy personalization and a customized view
CSS gives expression and traction to Information Architecture.
This is the infrastructure of information at the point of presentation.
I consider “information architecture” to be the infrastructure of interactive informational design. The tags of UX coding allow us to create self-aware environments that allow for self-service, collaboration, and cross-pollination.
Don’t know whether “good” (doesn’t matter if you’re referring to programming or design) applies to Best Practices (i.e. It’s well annotated code, efficient coding technique, consistency, easy to maintain, etc.) or Decent Results (i.e. “It works”).
For most of us, conventional programming is hidden “under the hood“: We neither know nor care whether it’s rendered in Java, C, ASP, or whatever. For that matter, we don’t care whether it’s particularly well formed (conforming to “best practices”). We just care that “it works”. Not that those best practices qualities aren’t important, but they are of interest only to the practitioners of coding, their managers and the immediate implementation team.
The same coding Best Practices issues apply very much to the design effort. IMHO they’re far more critical because the UI code gets fiddled with much more often than the underlying data manipulation & back-end code. Stylistic makeovers, ease-of-use improvements, widgets, branding, portaled integration with other apps, “white label” repackaging, etc. are all what define The Competitive Edge – and the UI is where most of them are implemented. Maintaining those changes is a big old piece of work – and it’s a major headache for conventional program coding teams that aren’t too skilled at UI. But that’s a whole ‘nother discussion…
There are a whole set of UI Design Best Practices that are implicitly agreed-upon within the UxP arena and have been implemented broadly across the interactive environment.
True: There are many differences of opinion about how to implement good design (s.a. color preferences, layout, terminology, icons, etc.).
De gustibus non disputandum est : “There’s no accounting for taste”.
As a UI Guy for about 30 years, I’ve found that I need to provide the client with best practices-conforming solution-S (emphasize: plural “solutions”) – and be agnostic about which one they pick. That’s the big reason why the front-end UI tools (CSS, HTML, etc.) belong to the IxD/UxP folks who are best equipped to handle the ongoing, reiterative process of crafting the UI.
Those 50 thousand lines of under-the-hood engine code may be expertly formed, well-implemented, efficient and bug-free, but if nobody wants to use them, it don’t mean nuffin’.
Here’s an Interesting insight. Accessibly-written.
“We make kids learn about biology, literature, history, and geometry with the promise that navigating the wider world will be easier for their efforts. It’ll be harder and harder not to include computing on that list. “
Is Coding the New Literacy?
© The Communication Studio LLC