Hi,
After years of being frustrated by new grads' inability to build
product-quality software, I took a faculty position at the University
of Toronto last year to try to figure out what could be done about it.
I'm now convinced that if we want things to change, we have to think
about scaling *down* our tools and techniques to fit novices' heads.
In particular, any tool that can't be learned in a one-hour tutorial,
or that doesn't pay its way in the first assignment it's used on, will
be put in the same bin as UML and point-form requirements specs [1].
We're now using a fork of Trac called DrProject [2] to see how simple
developer-oriented groupware has to be to meet these conditions. Like
every other web-based project portal I know of [3], it doesn't provide
any integrated support for organizing and executing tests [4]. I'd like
to know what the participants in this list think can and should be
added. Should we hook into a continuous integration tool like
CruiseControl and just report results of builds and unit tests? Should
we integrate something like FitNesse, so that people can add and run
tests through the web? I already know that students will only use wiki
page templates for test plans if they're forced to (i.e., they'll only
do it when it's worth a grade, and will stop as soon as it isn't).
Here are a few constraints:
- Must be comprehensible to a second-year Computer Science major who's
running a C+ average after a one-hour tutorial.
- Must make students who are time-slicing assignments from four or five
courses more productive within one month of adoption (i.e., after five
to ten hours of use spread over two weeks).
- Must be platform-neutral (some courses uses Java, others use Python or
C, and of course there's the Windows/Linux/Mac issue).
- Must be useful in courses other than the one where it's taught (i.e.,
databases, compilers, graphics, etc.). This is actually our measure
of success: after introducing version control in second year, we see a
lot of students setting it up and using it in third- and fourth-year
courses without being told to.
- Must be (relatively) process neutral: I believe a good solution would
be as usable in RUP as in XP (just as version control and unit testing
are).
All comments welcome...
Thanks,
Greg Wilson
http://www.cs.utoronto.ca/~gvwilson
[1] The one labeled "hoops they make us jump through for no good
reason".
[2] http://www.drproject.org
[3] http://pyre.third-bit.com/blog/archives/1487.html
[4] To clarify, I mean "support for testing the projects whose
development is being managed with DrProject", rather than
"support for testing DrProject itself".