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
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to