I'm writing this from a room full of rocket-surgeon Ruby developers.
Normally I'd refer to myself as a developer also. But, in this room
that would be laughable – these guys are that good.
They're tool builders. That is to say that when they need a tool to
do something, they just write it. Need to manage user stories in a
distributed way? - write something. Need a new Ruby IDE? - write
it. Normally writing a tool might delay or distract you from what
you're doing, but these guys are really fast, and they don't get
distracted long. They add a little to a tool they were working on to
support what they want to do right now, then get back to work. Very
pragmatic.
Since I'm in the room they ask me usability questions. I'm generally
surprised at the really remarkable things they've already done.
There are generally not many refinement ideas I can offer that they
haven't already considered.
In other rants/posts I've used the term "self-centered design" [SCD]
to describe software designed with one's self as the reference user.
That's a bad idea if it's a manager designing for his staff, or a
software developer designing for 68 year old retiree planning a
European vacation. But, it's a pretty good idea if it's a seasoned
developer designing for other seasoned developers. So, it occurred
to me in those situations that this isn't self-centered design
[because no one wants to be self centered – except possibly Paris
Hilton] – this is FUBU [http://en.wikipedia.org/wiki/FUBU]. For
those who don't know, FUBU is a brand of clothing – FUBU being short
for "for us, by us."
It also occurs to me that many Agile approaches focus on that FUBU
principal – that is if you get the right user on sight, they could
design software for their own use. Now adopting a philosophy like
that isn't hard if you're a software developer – since you design and
use a lot of FUBU – you've seen it work. But, thinking everyone can
do it is an act of self substitution – self-centered design. – since
most people don't write and use software 12 hours a day, they may be
less comfortable with the wide variety of interaction design choices
that exist to accomplish a specific goal using software.
So, what's my point? I have none – at least no big point. Just
these observations: developers often design good software for
developers: FUBU. Other often design pretty good software for their
own use: FUBU. Doing so can lead one to the false sense of belief
that design is easy – and you can do it for anyone, or anyone else
can do it for themselves: self-centered design.
comments invited, and thanks for listening/reading.
[I really should get a blog and stop using this list as one. ;-) ]