[Insight-developers] IJ Volunteers : THE MATRIX : RED PILL

Torsten Rohlfing torsten at synapse.sri.com
Sun Sep 17 17:17:08 EDT 2006


Luis --

A couple of things to clarify:

Luis Ibanez wrote:
>         How do we (the ITK community) ensure the quality
>         of new code that goes into the toolkit ?
As we discussed by private email a few weeks ago, I completely agree - 
unchecked contributions will reduce code quality, and there's a 
trade-off between ensuring quality and maintaining the willingness of 
contributors to deal with the QA hurdles. The decision what is tolerable 
and what isn't is very personal and different for each developer. You 
will never get perfect quality control AND the maximum number of 
contributions. BUT it's important to keep this trade-off in mind when 
designing the submission system and tuning it's parameters.

Along these lines, I am wondering -- ITK is not the only large 
collaborative open source projects, and it's definitely not the only one 
faced with such issues. Does anyone have any experience/knowledge how 
other large projects (excluding the Linux kernel of course ;)) handle 
decisions about what to include in the official code base, and how that 
works out for them? Are there any that have a similarly open and 
democratic process with no designated authority implemented?
>    We were expecting that "community reviews" was a good answer to
>    this issue. The assumption was that from 1,200 (known) users
>    who enjoy using the toolkit for free, triplets of them will be
>    willing to review a paper from time to time. After all, they are
>    the ones that will use that contributed code later on.
>
>    Unfortunately, what we have learned so far is that it takes a
>    lot of energy to motivate users to participate of the peer-review
>    process. From the social point of view, this is has hard as
>    getting people out of their houses and bringing them to vote
>    on election day.
>
... and we all know how badly that lack of motivation can play out in 
the end ;)

Seriously, I don't know what the solution here is, but I have a few 
thoughts:

a) Someone mentioned feature requests as a possible criterion for code 
inclusion. I would think that if someone requested a certain feature 
through mailing list or bugtracker, that person would be a natural (and, 
presumably, interested) candidate to provide a review of such function 
one it is submitted to the IJ.

b) How about earmarking developers who submit contributions in certain 
fields to review contributions in the same field? Maybe they could be 
sent emails to the effect that a paper related to their own 
contributions was submitted, and they might want to have a look at it 
(without any commitment, just so no one feels pressured). Having an 
option in the account preferences to opt out of such notification would 
of course be a nice touch.

I think I am forgetting some other ideas I had, but I'll just send them 
when I get back on caffeine tomorrow morning.
> 2) I may have to disagree with the statement that writing tests and
>    documentation is "different" from writing code. Source code that
>    has not been tested and documented is not "complete" source code,
>    and will cost many times its development price in maintenance
>    headaches and Hara-Kiris of future developers and users. It is a
>    well known fact in software engineering that 80% of the cost of
>    software development goes in maintenance, after the code has been
>    declared to be "completed", and most of this maintenance cost is
>    spent by "other" developers reading the code and trying to
>    understand what the code does, even before they can retouch it.
>
>    The simple rule is :  If it is not tested, it does not work.
>                          If it not documented, it will be misused.
If you read my mail carefully, you will see that I agree completely - 
tests and documentation are an absolute necessity, and in fact I am 
personally employing both even in my private code base, which no one 
other than me really uses. What I do maintain, though, is that tests and 
documentation are a pain in the neck for most programmers (it's delayed 
gratification after all). As such, it should be taken into consideration 
when creating additional hurdles for the code submission process (I 
didn't say this before, it just came to me), because it probably reduces 
the willingness to comply with additional "bureaucratic" requirements.
> 3) They IJ has some contributions that are unrelated to ITK and
>    it will be desirable to create a separate section only for ITK.
>
>    I agree with this suggestion. This will also make easier for
>    other toolkits such as VTK and IGSTK to use the IJ as community
>    resource.
Exactly. And if it turns out that papers in the "ITK code contrib" 
section get more attention than others, maybe that would be a little 
extra motivation for people to make _all_ their code available?

Best,
  Torsten

-- 
Torsten Rohlfing, PhD          SRI International, Neuroscience Program
 Research Scientist             333 Ravenswood Ave, Menlo Park, CA 94025
  Phone: ++1 (650) 859-3379      Fax: ++1 (650) 859-2743
   torsten at synapse.sri.com        http://www.stanford.edu/~rohlfing/

     "Though this be madness, yet there is a method in't"

-------------- next part --------------
A non-text attachment was scrubbed...
Name: torsten.vcf
Type: text/x-vcard
Size: 366 bytes
Desc: not available
Url : http://www.itk.org/mailman/private/insight-developers/attachments/20060917/67a2eaa3/torsten.vcf


More information about the Insight-developers mailing list