On Jan 16, 2012, at 10:14 AM, Marius Dumitru Florea wrote:

> Hi Vincent,
> 
> On Mon, Jan 16, 2012 at 10:09 AM, Vincent Massol <[email protected]> wrote:
>> Hi devs,
>> 
>> We've been quite bad at following the release strategy we've defined so far: 
>> timeboxing.
>> 
>> We've been constantly slipping our release dates during all the past 
>> releases (and not by 1 or 2 days, but by 2 weeks or more).
>> 
>> Personally I find this not professional of us and for me it means that the 
>> date we give are just a joke now. I don't even see why we're giving dates 
>> since they can only be misleading to anyone who would act on them… At the 
>> current slippage rate, we should only give a month estimation to have a 
>> chance of being correct ;)
>> 
> 
>> There's only one reason we're really slipping IMO: we've forgotten that 
>> we're doing time boxing.
> 
> I don't believe this is the only reason, not even the main one. I
> don't think 3.4M1 was delayed because we wanted to do more. What I
> know is that the build was unstable during the winter holidays when
> most of the committers were offline so there wasn't anyone to
> investigate and fix the failing tests on CI. You can argue that the
> build was unstable because we don't do timeboxing, but even with
> timeboxing you can have:
> 
> * integration tests failing because a commit in module A (which has
> its own unit tests passing) has side effects on module B. If both
> modules are under development, with lost of commits, then it's hard to
> track which commit broke the build. Jenkins is not very helpful
> regarding this.

Actually it does help since you can know exactly which commits breaks even if 
it's in another module.

> * flickering functional tests, both due to bad test coding but also
> due to the instability of Selenium (I don't feel it 100% reliable).

So far I've never seen any instabillity caused by Selenium. Every time it's 
been our fault. There were a few times it case caused by selenium but it wasn't 
flickering, it was not working all the time ;)

Having shorter releases help fix this because the longer you wait the more 
stuff accumulates.

BTW I was not talking about 3.4M1 but about the past 20 or so releases we've 
done (if not more)… :) (I didn't get the time to compute the exact variation 
for past releases)

Thanks
-Vincent

>> Let me remind us what time boxing is and how it can be made to work:
>> * It means releasing on a fixed date and releasing whatever is ready at that 
>> date.
>> * The idea is also to do quick releases so that if a given feature is not in 
>> a release it'll be in the next one coming soon (we used to do 2 to 3 weeks 
>> releases at some points and recently we've been doing instead 3-5 weeks 
>> instead)
>> * The reason for releasing often is because this pushes the bug fixes and 
>> new stuff to users ASAP and thus let them experiment with them and give us 
>> feedback (bugs, usability, etc)
>> * The way to make timeboxing work is by having automated functional tests so 
>> that we can release safely knowing that our test suite will catch the 
>> problems if any. This means that whenever a commit is done, in the same 
>> commit there are tests proving that what is committed is working (and not 
>> several weeks later which would be anti-timeboxing).
>> * it doesn't mean we cannot have a roadmap. What it means is that we should 
>> the maximum of what is in the roadmap in a given time slot. What's not done 
>> doesn't get released. This means that large features should be divided into 
>> small one that will fit. Developers need to think about what they're doing 
>> by constantly checking the release date and verifying what they can achieve 
>> for that date and make absolutely sure that what they have committed is 
>> working for that date (even if what they have committed is not finished).
> 
>> * Timeboxing is not about how many men/days you have available or whether 
>> people are on holidays or not. If you have less men/days you do less work. 
>> It doesn't change the release date.
> 
> You still need someone do to the release and we aren't that many
> committers so if we all take the winter holidays (as it is normal)
> then we have to adjust the release date.
> 
>> 
>> Basically you can only do timeboxing if you have good and automated quality 
>> control.
>> 
>> The opposite of timeboxing is feature releases which lead to the following:
>> * People committing not working stuff or without tests because they know 
>> they'll have time to fix it later on before the release (easy to think this 
>> since there's no release date, it's only when the features are done that 
>> it'll get released)
>> * Release date become not important since they keep being pushed since 
>> what's important is to release planned features
>> * Build failing all the time and developers not caring about it ("it can 
>> always be fixed later when we get close to the release date" - that's easy 
>> to say since there' no fixed release date)
>> * Users seeing less frequent releases and giving less feedback to developers 
>> (thus helping less)
>> * In general, quality dropping over time
>> 
>> So we have several choices:
>> 
>> 1) Forget timeboxing and do feature-based releases, i.e. we list features 
>> and we only release when they're done
>> 2) Start doing real timeboxing again
>> 
>> I've seen so many projects do 1) in the past with such bad results that for 
>> me there's no doubt that the only good strategy is 2). Especially for an 
>> open source project which has a strong community and we should be releasing 
>> stuff regularly and quickly to this community to get good feedback. Doing 
>> timeboxing is also a great way to improve the quality of our code.
>> 
>> Timeboxing can only work fine if everyone agrees with it (we can revert 
>> stuff from a developer if it breaks things but it's a pain) and believe in 
>> the release date, so we'd need everyone's agreements.
>> 
> 
>> So WDYT, are we ok to resume doing timeboxing and go back on track?
> 
> I'm definitely for timeboxing.
> 
> Thanks,
> Marius
> 
>> 
>> On my side I'm ok to do it and help enforce it. If we agree we should start 
>> now by releasing RC1 ASAP and give a new date for 3.4 final and release on 
>> that date.
>> 
>> Thanks
>> -Vincent
>> 
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to