Coding Horror

programming and human factors

This Is What Happens When You Let Developers Create UI

Deep down inside every software developer, there's a budding graphic designer waiting to get out. And if you let that happen, you're in trouble. Or at least your users will be, anyway:

wgetgui screenshot

Joseph Cooney calls this The Dialog:

A developer needed a screen for something, one or two text boxes and not much more, so they created "the dialog", maybe just to "try something out" and always with the intention of removing it before the product ships. They discovered they needed a few more parameters, so a couple more controls were added in a fairly haphazard fassion. "The dialog" exposes "the feature", something cool or quite useful. Admittedly "the feature" is more tailored towards power users, but it's still pretty cool. The developer thinks of new parameters that would make "the feature" even more powerful and so adds them to the dialog. Maybe a few other developers or power users see "the dialog" and also like "the feature". But why doesn't it expose this parameter? New controls are added. Pretty soon the technical team are so used to seeing "the dialog" the way it is that they become blind to its strange appearance. Ship time approaches and the product goes through more thorough testing, and "the dialog" is discovered, but it is too late to be heavily re-worked. Instead it is given a cursory spruce-up.

If you let your developers create your UI, hilarity ensues, as in this classic OK/Cancel strip. But when The FileMatrix is unleashed upon unsuspecting users, it's more like a horror movie. I still get chills. And like a bad horror movie franchise, the FileMatrix is still alive and kicking, folks.

Friends don't let friends produce Developer UI.

Part of being a good software developer is knowing your limits. Either copy something that's already well designed, or have the good sense to stick to coding and leave the graphic design to the experts.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror