[darcs-users] managing change
zooko
zooko at zooko.com
Sat Feb 7 23:18:23 UTC 2009
I enjoy reading your musings on open source software development
practice, SJT.
On Feb 6, 2009, at 17:59 PM, Stephen J. Turnbull wrote:
> test-driven development will definitely cost you a lot of your
> contributors, possibly some of your more prolific, even some of the
> best programmers, because it becomes more effort than it's worth to
> them.
I was concerned about this during the first year or so after Twisted
Python launched their new "no exceptions" policy that every patch had
to come with thorough testing of all the code that it touched. The
policy that came into effect, dubbed The Ultimate Quality Development
System, also mandated that every patch thoroughly documented the code
that it changed and that every patch was reviewed by someone other
than the author to certify the first two requirements.
I started to fear that, even though the Ultimate Quality Development
System was good at forcing the codebase to be monotonically less
buggy, that it might accomplish this by there never being another
release of Twisted after the policy came into effect. :-)
However, eventually releases of Twisted started up again, and now
progress seems to be steady despite the iron hand of the Ultimate
Quality Development System blocking untested or undocumented patches
from landing in trunk. I think part of what happened was a culture
shift -- after a few months contributors got used to the idea that
patches just really weren't ever going to go in until *someone* wrote
tests for them, and they got into the habit of writing tests for the
patches they cared about. Similarly, everyone involved got used to
the assumption that the discovery of a previously unknown bug implied
the existence of a hole in the tests, and that the bug wouldn't be
resolved until the hole in the tests was also filled.
Another simultaneous development was more automation for the Twisted
development process -- improved buildbot, automated release
management, code coverage tools, lint-like tools, and (sad to say)
scripts extending SVN so that it sucks slightly less. (Yes, of
course, all of the scripts were things that would have been
completely unnecessary if they had been using darcs instead of SVN in
the first place.)
Anyway, I don't think I would worry *too* much about test-driven
development turning people off. Maybe it will, and maybe you should
be willing to abandon it if it looks like it doesn't work, but really
a revision control tool should be ideally suited to automated,
thorough testing (in contrast with a sprawling network and language
framework like Twisted, which should be very hard to automatedly
test), and Haskell ought to be uniquely well-suited to automated,
thorough testing.
Regards,
Zooko
---
Tahoe, the Least-Authority Filesystem -- http://allmydata.org
store your data: $10/month -- http://allmydata.com/?tracking=zsig
More information about the darcs-users
mailing list