Design process/team

by havoc

Jeff, what isn’t clear to me I guess is what structure or process do
you want? As I see it, it isn’t very complicated; there are designers,
and you work with them collaboratively to figure out how to approach a
problem and implement it. A variety of apps and features have been
approached this way, such as Epiphany, Evince, file selector,
NetworkManager, Sabayon, some of the Google Summer of Code stuff,
Yarrr, etc. The good design examples that got implemented have
involved solid one-on-one communication between the designers and
coders. So the process is just that, find a competent designer and
work with them. Perhaps we should state this officially somewhere and
kind of map out how a typical collaboration would go, with some
examples.

There are examples of developers who have done good designs on their
own, too; some people are OK at this and some are not. The real
problem is people who are not but don’t realize it, of course. 😉
At least 90% of us really are not OK at it in my view, unsurprising
since it’s a full-time career and so is programming.

I don’t believe that design can be done by committee or on a mailing
list. 2-3 designers in person with a whiteboard can maybe work, but 20
people on a list is just a train wreck. Especially when 15 of the 20
don’t have a clue in the world (25% with a clue is optimistic, too).

Maybe we also need to spell out the distinction between design and
usability. The rough process I would say:

Design -> Code and Design Iterations   -> Usability Testing and Polish
             (coder comes to design team
              as issues become apparent;
              everyone learns from users
              with release-early-and-often)

The purpose of design is the “what is it?” question. Netapplet
vs. NetworkManager. Sabayon vs. KDE Kiosk Tool. Those examples are on
a whole-app level, but the same “what is it?” question also comes up
with each smaller aspect of an app. See the lightbulb joke.

Bryan and Seth at least tend to focus on projects where they can have
a large impact, vs. say running around CVS pointing out that
gnome-system-monitor thinks that Mebibyte is a
reasonable choice of words. In their place I have to say I’d do the
same, as bugzilla is full of “how to word this dialog” questions and
it’s just higher-impact to focus on the “what does the desktop do?”
questions. I agree with Seth’s
argument
on that point.

Also, obviously, the design guys tend to work with really helpful
developers such as Marco or Dan before they work with some of the
shall-remain-unnamed not-so-helpful developers. Seems pretty sensible,
nobody likes banging their head on immovable objects.

(This post was originally found at http://log.ometer.com/2005-08.html#13)

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.