usability and getting things done



Try to imagine what would happen in a big GNOME module, lets call it
libfoo, if everyone who contributed had the final say on the code they
checked in which nobody else could change without their permission. Now
imagine that anyone in the GNOME project could contribute to libfoo if
they wanted to.

My guess is that libfoo would turn into a mess, particularly if more
than 20 or 30 people were making big contributions and they didn't
always agree or communicate well with eachother. This module would
probably really suck. If it were a library, it would probably have
really messy hard to understand APIs. Implementation probably wouldn't
be very good either, particularly if the various parts of the module
weren't working well together.

Now imagine that you were tasked with making this module not suck. How
would you go about it? You can't make changes to code without talking to
the maintainer of that piece of code, probably having to debate with
them the merits of the change. To make a global scale change you'd have
to get a bunch of different contributors to agree with you. What do you
do when one says know? How many people will you have to bicker with?
What about when a change is less "elegant" for one particular segment of
the code, but makes it easier for the rest of the thing to work. Can you
imagine how painful and slow and frustrating this experience would be?
And how inneffective?

<suit type="flameretardant">
There is no GNOME "interface" module one could authoritatively maintain,
because the GNOME interface is spread through all the modules comprising
the GNOME project. But in a sense the usability project's job *is* to
maintain the GNOME interface. So many people will have an opinion on
almost every interface issue because its easy to have opinions. Most of
the decisions in a technical module go under the radar because not
enough people care about that particular esoteric technical detail. And
if not, there's a maintainer with a vision of the direction he wants to
go to make sure that a decision gets made, and that things turn out in a
generally "ok" way. Thats why things actually get done! In usability,
everyone is an expert and everyone has an opinion.

In a nutshell, the maintainer system is based on the premise that
decisive action that not everyone agrees with (a good maintainer will
try to get maximal agreement of course) is usually preferable to endless
iteration trying to find the perfect solution.

I hope people feel a general sense that the usability project will
result in big improvements in GNOME usability, and hence the desktop as
a whole. You won't agree with every specific choice or decision we go
with, but I would ask people to stop second guessing us on every single
point, you have to be willing to trust our general direction. What I'm
asking for is trust so we can actually get something done rather than
having to conduct trench warfare taking ground foot by foot.

It is *very frustrating* to have to fight out each change with
individual developers. I don't shirk away from this, and I think I can
defend any position I take, but it really slows progress down. You
*WILL* disagree with some of the things the usability project wants to
change, maybe in a module you maintain. But if you believe that the end
results of the usability project will be positive, I would ask that your
defacto response be to accept a change (particularly if you don't have
to write it yourself, obviously people hack on what they personally feel
is important and we aren't trying to change that ;-) Right now I feel
like each change we want to make is guilty until proven to be the right
change, and we have to make the case to every single developer we end up
working with. This really really impedes the process.

Yes, I understand when maintainers want us to justify changes we want to
make that they personally disagree with. But It'd be really nice if
people would take a global perspective and realize that somebody
probably disagrees with a usability change that would positively affect
them. Most individual usability issues where you disagree with us will
seem like "yes, but this change you are wrong". But if almost every
change is like this, and yet the global result is better usability,
somebody is wrong (and maybe its sometimes us, but on the whole, if what
we're doing fixes things its probably not) ;-)

It would be nice if there was some level of trust that we actually have
some competencies in usability so we can work on making the changes and
finding the problems (things we *all* probably know needs to be done vis
a vis GNOME usability) rather than fighting out every change. We'd like
to maintain and improve the GNOME interface, but we don't "own" the
code. Please work with us to make our lives easier so we *don't* have to
deal with the painful "hypothetical" situation I started with.

thanks if you actually read this far,

-Seth




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]