I'm a back-end guy.
In software development, there are two broad categories of talent. Front-end guys are good at coming up with user interfaces that are not only functional, but fun and compelling and somehow inevitable. You look at the screen and can't imagine it being any other way. There's a Zen beauty to the arrangement of graphics and controls and text.
Back-end guys can craft object models that make you weep with the sheer beauty of encapsulation dancing with abstraction, polymorphism playing subtly against object-relational mapping, transactionality managed with finesse and wit. Back-end code suffers from (or glories in) what I call the "plumbing syndrome" -- like plumbing, people only notice it when it doesn't work.
While the back end is my natural home, I can do front-end stuff adequately well. User interfaces I build entirely on my own are sturdy, simple, standards-compliant, reasonable, and dull as dishwater. Part of the problem is that I personally rather like an interface that doesn't put on airs. I don't need three different fonts and a gradient fill to convey the idea "Pick a file and upload it." My pages tend to look as good in Lynx as they do in Firebird, and I consider that a good thing.
But most people want more sizzle, which is why I work with designers on all my important projects. For example, the
OTO USGL site resulted from a collaboration with one excellent designer, and is current being rethought with the assistance of another. Until recently, we had no designer on staff at my day job, and the UI suffered accordingly. We contracted with a consulting firm to do a conceptual model of how our UI could be made more visually appealing, and I dutifully implemented those parts of their proposal that seemed most valuable and least disruptive to future maintenance. I estimated that I achieved 80% conformity with their design. Our salespeople put the figure at more like 20%. Again, this isn't my forte.
Fortunately, we recently hired a UI design expert, and he's been making great progress in improving our product. The best part is that he interpreted the consultant-supplied conceptual design in terms that connect better to our internals, and which make more sense to me personally. Today I finished the first-cut version of our UI recast based on his design ideas, and the air was thick with ooooohs and aaaaahs as I ran it past some of the toughest critics in the company. And the best part (for you geeks) is that the whole thing was achieved using standard CSS techniques, and without sacrificing accessability.
Collaboration is a beautiful thing.