KDE/kdebase/workspace/plasma/applets/tasks (silent)

Sebastian Sauer mail at dipe.org
Tue Feb 5 20:30:44 CET 2008


On Tuesday 05 February 2008, Aaron J. Seigo wrote:
> * free-for-all does have a very negative impact on the code base. we tried
> that, and we moved to peer review because of what that resulted in.

It also has positive advantages like quit a lot of commits, like feeling of 
beeing an important part within the process and like working together with 
everybody else on the same codebase in real-time.

My reply from Feb, 01 where I answered to the question "did you get this stuff 
reviewed before committing?" with "you can review it now." wasn't meaned to 
be sarcastic but just how I worked in KDE last 5 years. That means, first 
commit and then review (your own commits and the commits of others) and imho 
it was working quit well that way through I agree it's far away from beeing 
optimal.

> 1. how do we ballance keeping the code base functioning with keeping a
> happy community of hackers. how much can we trade off the former for the
> latter? what to do when someone says, "no, i will not adopt your project's
> workflow."?

I would say, that to push workflows on developers is a mistake. This should be 
done on a tech-level without changing the way developers work.

Joel once wrote a nice blog-entry about what he described with "beeing in the 
zone". That is this time a developer got really productive and pushes code 
out in an incredible speed. It is imho very important to don't block this 
phase with time somebody has to wait to continue or even with the requirment 
to write mail in between or something like this. It is difficult enough to 
get into that phase and it's very easy to be pushed out of it again (one of 
the reasons why I am not at irc during that time since each ping would take 
me out of it).

Also it is just not needed since this can be done at a technical level with 
the right tools and it even provides more advantages like beeing able to 
switch between "working-branches not in trunk yet", like even working on 
things incremental that just are not ready yet for mainline or like beeing 
able to continue work offline.

> 2. how to keep development as friction-free as possible: it should be fast
> and easy to work on the code base so we can keep a fun, enjoyable and fast
> pace. again, this needs to be ballanced with the "healthy code base".

++
through I guess the kernel-devels didn't solved this 100% too yet ;)

> it's not an easy ballancing act for me, to be honest, and i'm looking for
> feedback and input. on saturday we'll be discussing whether to keep
> review-board or not, for instance. is it helping or hindering development?
> is it useful or just a pain? etc...

oh, it can be a quit useful thing. E.g. myself would land his work to turn 
the "configure desktop" dialog into a kcm there (nah, far away from beeing 
ready or usuable yet) since it just touches lot of code and review would be 
more then welcome there.
It's just the case that a "each commit needs to go through a webbased board 
and you have to wait some time till somebody says ok" solution just is 
overhead++ imho.

> i'd also *love* to have an effective way of saying, "working on plasma
> means working with the rest of us." that doesn't piss people off. or maybe
> it's just not possible because some people don't want to work in a team,
> which is obvoiusly one valid way of writing code.

heh. Maybe we define teamwork and review different here. But if I look at the 
commit somebody else did land, it's a review. If I extend the code somebody 
else wrote, it's teamwork.
To try to do all this in parallel is imho just not possible cause we are still 
developers from all over the world and just don't work at the same time at 
the same piece of code.

> > Else I'll just to anything to block that negativ energy.
>
> is there a way you can wave a red flag to say, "this is hurting my
> motivation" that doesn't include, "no, i won't do it that way. it's my way
> or i leave."? because dealing with those sorts of reactions really hurts
> other people's motivation (and not just mine, btw)

well, let's look at the intro you wrote at your mail to me from Feb, 02;

"your commits in this case have become increasingly wrong, revision by 
revision. you're not actually working faster, you're just working wronger"

this is just 0% information with 100% flame imho. You could have sayed the 
same in nicer words and maybe even more explicit with a concret sample. This 
wouldn't only provide a better feeling and a direct prove including a 
learning-lesson how to do it better but also shows why a review would be 
needed here.

Unfortunately with the wordings above the result is the opposite of what you 
tried to achieve there and for sure that didn't provide you a good feeling 
too :-(

> > What I tried to outline (maybe not clear enough) is, that I don't
> > believe that it's a good idea to prevent commits.
>
> i understand that; that's the whole "development friction due to process to
> ensure quality" thing. it also sucks that every so often i'm out of the
> country. i've actually pulled back on my travel in part to be able to avoid
> that, btw. more ballancing acts =) it was highly discouraging that i should
> be in intermittent contact for a week and have so much go sidewise during
> that time. there was a lot of *good* stuff committed too. that's really the
> challenge, right: how to filter in the good stuff, and weed out the couple
> of not good things.

guess thereis just no way to be really sure that no regressions or new bugs 
will land. But as long as ppl to review and fix that bugs again and as long 
as the frequency new bugs land is lower then the frequency bugs got 
fixed... ;)

but, yes. It's a problem without proper solution :-/

> remember as well that every step backwards that gets taken usually ends up
> on my plate to make up for. few others who are doing this as a sideline
> hobby are willing to do that. this is the same thing as with kicker, right?

y, I know what that feels like. Sometimes it's really frustrating to see that 
again something got broken that was working well just the day before. Then 
it's needed to fix it rather then to get it into the same state like 
yesterday what feels like, well, no progress with lost time :-/

On the other hand there are also those moments where it's great somebody did 
land something that just works and that was on the todo anyway. This are 
the "wow"-moments where FOSS just shines.

I guess it helps there a bit if you see yourself as teacher and mentor. With 
every wrong commit you are able to fix, you will also earn the possibility to 
teach someone how to do it better. And with the time your students will 
learn, will do it better, increase there quality and maybe even start to 
teach by themself...

> back then (and i was still a volunteer, so this isn't related to me getting
> paid to do it) i took on the job of protecting the quality of an already
> fragile and completely neglected code base. it's what i do, some
> personality flaw/quirk ;) so this isn't a zero sum game: when i don't
> manage to weed out the smaller bad things, i end up spending time i'd
> rather spend moving things forward working on keeping the house in order.

and I am pretty sure you also learned over the time just like me did and the 
quality of your commits just increased over the time. Probably also by doing 
mistakes and by being teached by someone how to do it better. I guess that's 
a very important process and something FOSS pays back to there developers. 
Those experiences are just in no way affordable and one of the reasons why 
FOSS-developers are the better developers :)

> > Please understand that
> > this is a _plain_ technical issue since subversion just does not allow
> > such workflows without sucking the one (those who commits) or the other
> > (those who likes to review).
>
> realize that this was also an issue of just plain ignoring the stated
> design goals. it wasn't even a "oops, that patch was buggy" this was "that
> commit goes against the design principles" combined with "someone else
> already had done this work, but apparently this wasn't communicated clearly
> to everyone else and so people duplicated efforts."

Guess I still don't got that point about "design principles". Is it those 
GUI-dialog? Well, that was really only 5% of the work (in terms of time that 
was needed till it was working).

I guess that is pretty much the same like with my i18n-commits. I know, that 
my english sucks since I learned english over the internet in 
FOSS-communities, but that doesn't prevent me from committing also 
i18n-strings since it's the same princip; better at least something that 
works somehow is in. Somebody will extend it later anyway just like I extend 
the work others did.

> > > obviously, whatever you decide to do with your time is your decision.
> > > it'd just be nice if the alternative to "i want to work without
> > > communicating" was not "i'm going away". i hope you eventually
> > > reconsider your reaction.
> >
> > ok, I did (reconsider),
>
> yes, when i saw your commit earlier today i smiled and sighed a bit of
> relief. it does pain me whenever someone isn't happy. again, another one of
> my stupid personality flaws. =)

I was btw also pissed I saw that somebody else did broke it and my first 
intention was to just revert the whole commit. But I got over that initial 
feeling and then just tried to fix it + provide feedback why it is wrong. 
Well, teaching can really provide fun too :)


More information about the Panel-devel mailing list