Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Ovid (2709)

  (email not shown publicly)
AOL IM: ovidperl (Add Buddy, Send Message)

Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.

Journal of Ovid (2709)

Friday August 13, 2004
06:09 PM

Audience Participation Testing

[ #20402 ]

At Portland Perl Mongers, we've had chromatic give talks about tests and Schwern rant about tests. Since many people still aren't testing, I had an interesting idea, but now I have to put my money where my mouth is.

In October, I'll bring my laptop and have no presentation whatsover. Instead, I'll take an idea for a module from the assembled mongers (I'll have a backup idea or two if the ideas are not practical) and I'll sit down and create the module, in front of them, using test-driven development. Further, it's going to be mathematically challenged pair programming as I'll invite everyone to kibitz, er, pair, and we'll build a module together with me explaining things as we go. What an /aw(?:some|ful)/ idea. This could turn into a fiasco.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I love the idea about tests. However, I am not doing anything (that I believe) warrants that level of testing. That may change, I am currently reading "Perl Medic" by Peter Scott and I am really impressed so far.
    • Interestingly, I was at Powell's Technical Bookstore [] the other day and I noticed that not only was "Perl Medic" the best selling Perl book, it was also one of their top selling books over all. Amusingly, their top Java book's subject was about how to avoid bloat in Java programming.

    • love the idea about tests. However, I am not doing anything (that I believe) warrants that level of testing.

      Then you need to go see Ovid's talk! The point about TDD is the fact that it helps you drive your code's design, getting a good test suite out of it is just a pleasant side effect :-)

  • I've done it a couple of times when running tutorials for some companies.

    Random advice:

    • Practice with a couple of friends first. Doing TDD in front of a group feels odd at first. It's quite different from pairing since they can't take over and drive.
    • The best setup I've found is to have a laptop in front of you facing the audience on the same level so you can make eye contact easily, and back project the code you're running.
    • Switching between overlapping windows quickly can confuse the audience. I alway
    • Great advice!

      Have you found any "assignments" be more successful and pedagogic than others? Anything to avoid?
      • Have you found any "assignments" be more successful and pedagogic than others? Anything to avoid?

        I guess pick something that you can get up and running quickly, but can expand easily if you have time. I found that it can be quite a shock how much slower TDD is when you have to explain as you go.

        Some of the things I've used:

        • The classic "money in multiple currencies" example from the Beck book. You can go from simple math with a single currency, to dealing with transactions over time with multiple exc
    • Good advice :)

      I did this sort of thing for Perl University (O'Reilly's travelling road show that they only did for a year). It was a big hit.

      I had a constraint though: I had in mind a handful of problems, and they audience could pick one of them. That way I didn't get stuck on something I couldn't work my way out of.
  • At the next Chicago PM, we're going to be Phalanxing a module, live and on stage, basically adding tests that don't yet exist. It'll be interesting, too.

    I've done the "build a module from scratch" to demonstrate the parts that go into it. Module::Starter basically started from there.