Hi Frank,

        Sorry to spam you with yet another huge E-mail, this is quite an
effective technique known as "argument by exhaustion" ;-)

On Wed, 2006-10-25 at 09:48 +0200, Frank Schönheit wrote:
> I agree with you that those hurdles experienced by contributors are a
> big reason for not attracting more developers.

        Good 'oh :-) and of course, so do we - and various people are trying to
fix them: trying to make the BuildBot work well is a prime example. What
I want is to be able to test CWS builds easily on Win32 - since that's a
problematic platform for me (and virtually all Free software
developers), it requires proprietary tooling to get anywhere, and well -
it's of course critical that it's not broken. Contrary to popular belief
I don't like to break the build / code :-)

> All I can seriously recomment is: keep fighting. Both for people from
> "outside Sun" as well as "inside Sun" :).

        Thanks for the encouragement :-)

> I will do myself, as I did in the past, since I heartly believe that we
> cannot throw all full-blown processes at a newcomer who does a small
> fix/feature.

        Right - and of course, I'm to some extent preaching to the choir here,
you've done some great work in this area in the past.

> This doesn't mean those processes/requirements are unnecessary or
> stupid, it just means that we should allow people to grow and learn, and
> not do everything right and complete in the first step.

        Ah - in itself it doesn't mean the processes/requirements are *not*
unnecessary or stupid either ;-) Simply because you can think of 10 good
reasons for a process, doesn't mean that that there are not many other
more weighty reasons for not using it.

> >     Well - my attitude here is rather different :-) in the time that it
> > took to create the CWS, commit the code, go through QA etc. I had in
> > parallel done a number of other improvements / fixes, and subsequently
...
> Well, and that's a fundamental misunderstanding on your side, sorry.
> 
> That's explicitly *not* how OpenOffice.org works. The whole idea of
> child workspaces is closely coupled to the idea of having a stable
> master build. In ideal, we would be able to ship every master build (in
> reality, that's not the case, but we're much better than some years ago).

        Interesting. I don't know how you square that with the state the code
is in, and (even) some of the things that people commit to it [ even
with specs ;-].

> That's an explicitly stated goal of the OpenOffice.org project: We don't
> break the master, we finish implementations in a child workspace, until
> they're really finished.

        It's a worthy goal, ultimately though - no matter how much QA you put
into something, you won't find some bugs until it is deployed. And I was
aware of -no- bugs in the feature when it went it ( I am of course
now ;-) only some areas for future work: so what does 'finished' mean ?

        It's interesting & instructive to head to LXR & search for TODO:

        http://go-oo.org/lxr/search?string=TODO

        'handle error', 'error handling', 'Check return value', 'introduce
error handling', 'still needed?' ... ...

> Other projects have other means for ensuring quality. For instance,
> Mozilla has a *very* rigid code review process. OpenOffice.org's mean
> for ensuring quality is the "finish it on a child workspace" policy.
> There's no room here for "put it in and let it evolve".

        I would be amazed if we actually managed to get any non-trivial piece
of code through to HEAD that had no defects found in it later.

> You might want to question this idea and policy, but please not by
> silently undermining it.

        Pah ;-) as I said, it was a less feature-full implementation, not a
(known) buggy one. And I think it's a legitimate decision.

> However, what I really *really* like about this process is the exchange
> of ideas and arguments. In my experience, sitting down (or meeting in
> IRC) with a small (!) number of people having experience with and/or
> interest in a particular feature is invaluable. You always gain insights
> you wouldn't have had alone. And finally, this means you deliver a
> better feature.

        I wholeheartedly agree with the above. -Clearly- it is important to
talk to people skilled in the area of artwork, HCI, etc. etc. and to
some extent the more advice you can get the better. However - if you
hand out veto's to everyone, and then each communication round-trip
takes even days, life is not good.

        I think the problem here is that the specification process also tries
to make a rigid mould into which to pour basic team activity &
interactions. The book I'm currently reading on building good teams
(Peopleware) tends to emphasise the stifling nature of methodology, and
homogoneity - and encourages diversity. ie. If your team happens to
communicate best by semaphore, and works only between 2am and 5am -
then, if they do great work, perhaps it's worth accommodating them
without feeling threatened :-)

        If indeed, it was possible to discuss design interactively on IRC, with
a lag of minutes rather than hours, with lots of relevant stakeholders,
life would be rather better.

        *Indeed* - you may have noticed me banging on about getting people on
IRC, so they can be consulted wrt. design decisions *before* doing their
development for -oh- only almost since I got involved with the
project :-)

> So, I still think that "put it in quickly and disable it in Sun builds"
> is the wrong way to go. Especially since this effectively means a fork,
> in the long run.

        You seem resigned to Sun not putting in the effort to include the
feature themselves [ ie. writing the spec. ;-] - don't be so
fatalistic ;-). Instead - Sun will notice that customers want the
feature and that "everyone else" has it, and enable it when the
crazy-long-haired-experimentation is done [ and hence it is of a higher
quality ].

>  If 10 percent of the code are not used in default builds provided at
> www.openoffice.org, than that's a (distro-specific) fork, not more.

        It depends how many distros you get to turn it on. Arguably the distro
specific piece is the Sun distro :-)

> (I did mention that "Use systray quickstarter" makes me expect
> that when I check it, the QS is started immediately, didn't I?  There's
> room for improvement from a user experience point of view, that's why
> iTeams are recommended to contain a user-experience-trained person.)

        Good grief - so, the existing stock string in the Sun builds (on my XP
machine) is pretty terrible, however - since you think the existing,
shipping *Win32* quick-starter is 'finished' (and after-all it does have
a tiny mention in a specification) let's look at it:

+ "Load OpenOffice.org During System Start-Up"
        1. this far and away the ugliest string I've seen in a 
          popup of this type: cf. attached screenshot.
                + it bloats the menu to an incredible width, all
                  other items are < 1/2 the length
                + aesthetically - this is rather unpleasing
                + the capitalisation is unfortunate, as you pointed out
        2. the string is basically inaccurate
                + for me, this gets started on login,
                + -perhaps- if this was a single user machine,
                  it might get started "during system start-up"

        Of course - fixing this is the matter of changing 1 string and
committing to HEAD right ? [ i18n will asynchronously notice the new
string & translate it ] ;-) but no; wait - I have to:

        + create a CWS (5 minutes)
        + commit the string change (20 secs)
        + find the specification (1 minute)
        + find where it lives in CVS (~N minutes)
        + check that out
        + update the spec.
                + take a new screenshot
                + translate the string to German (Babelfish?)
        + re-validate the change with User Experience, and i18n
                + N month delay.
        + commit the spec.
        + fiddle with EIS
        + build on 2 platforms
        + find a QA person
        + get them to download the spec.
        + ...

        This is a -very- heavy process for fixing 1 string, that (I hope) we
can all agree is broken. So - the net result is, small changes don't get
done - and we have all these mini eye-sores, user-interaction rough
edges and pain-points lying all over the place - and they simply don't
get fixed. Of course, it's easy to laugh off 1 long string, but there
are a number of other nice examples catalogued in IZ of a similar
nature.

        Is this sort of polish important ? If you read about user interface
design eg. Joel:

http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html

        (and yes, I don't agree with Joel on everything), there are some really
interesting things; indeed - should be mandatory reading for S/W
engineers doing UI work I think:

[snip]
"One day, thinking about this problem, I noticed that one of the
bathtubs-with-wheels had pretty lousy wheels that wouldn't turn well.
Sometimes this bathtub did not go where I pushed it, and bumped into
things. This was a small frustration. Sometimes, as I was pulling the
chain to winch up the bathtub, I scraped myself -- just a little bit --
on a splinter of metal on the chain. Another small frustration.
Sometimes, as I ran with an empty bathtub to catch a dough emission
about to fly out of the mixer, I slipped on a little bit of oil on the
floor. Not enough to fall, mind you, just a tiny, small frustration.

And I started to learn that the days when I was happiest were the days
with lots of small successes and few small frustrations.
[/snip]

        Anyhow - I'd recommend reading it, if you havn't already - particularly
the bit about "Learned Helpnessness".

> What I would like to see is...

        And I broadly concur with your goals, indeed the "Just do it" thing was
rather funny :-)

        Thanks Frank,

                Michael.

-- 
 [EMAIL PROTECTED]  <><, Pseudo Engineer, itinerant idiot


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to