As I've mentionedseveraltimes, we've started rebuilding DrProject on top of Django. We had a post-mortem last Tuesday on our first term's work, which Blake Winton was kind enough to summarize. The highlights (good and bad) are listed below.
Everybody gave more than expected/requested/paid for.
The team produced some remarkably clean code in a very short time, especially given its prior lack of exposure to Django.
Distributed collaboration worked much better than expected. (The team was spread across four universities in three countries.)
The dev and commit mailing lists worked well, as did weekly status meetings on IRC.
Regular, frequent, small commits went well/were a good idea.
pyflakes and pep8 were great tools for checking code and style (but it would have been nice to have a script to run both on all files in one command).
Code reviews rocked. (Author's note: this was the best part of the term for me, and something I'm going to want to encourage in my undergrad software engineering class next term.)
Tempers were strained occasionally during reviews and design discussions (more considerate language should have been used).
Too much juggling people from one sub-project to another. (Author's note: this was my fault.)
svnmerge was a pain. (Author's note: one developer was a real fan of distributed version control systems, and kept trying to move us in that direction. I should have resisted more strongly.)
The project blog wasn't used effectively---it was never clear what should go in the blog vs. on the mailing lists.
People sometimes didn't know what they should be working on. (Author's note: also my fault---next term, the newcomers will be given a couple of short, specific tasks at the start to get them up to speed.)
The release process kind of fell apart, the code freeze never really happened.