"Understanding what most users want."

nothing could be more important than that. for engineers or designers.

however, in my experience there is a growing elephant in the room: designers and developers are understanding less and less.

imagine you are on the hook to develop a new algebraic equation but your arithmetic skills are weak - what are the chances you'll develop a correct understanding and, therefore, be capable of developing a viable solution? let me tell you: they are *zero*.

i see this on both sides of the aisle: designers are increasingly out of touch with the deep technical juju required to actually *understand* a technical domain while developers entrench themselves so deeply in technical masturbation (can we compress this more? how can we do automate this?) that they cannot possibly view a project from the user's perspective even when the screens are 1 inch from their faces.

this kind of talk about mixing people up is great. we support it at my company, but i believe that the real mixing needs to happen inside the designer and the developer's own head. pairing can certainly help this internal development, but it cannot substitute for it.

designers: you need to understand REST, html5 local storage, and ssh. all of it. that is, unless you are satisfied not understanding the constraints of the domain.

developers: you need to view all your tools and work through the lens of the user: they only care if it works, and works easily. they don't care about a single thing more so stop following the shiny shiny tools du jour and *use* the code you're developing like a *user* would.

/endrant