Brown Paper Bag (Or How I Became My Own Customer):
My mailserver went offline late last Friday night. Of course, it was the start of a holiday weekend in the US. As you'd expect, the T1 between the two main work offices also went down that weekend, so Tuesday was low on e-mail as store-and-forward systems struggled to catch up.
I usually do a final bit of real-world monkey-testing on my software before I release it. I didn't do that with Mail::SimpleList 0.50, though, since the tests all passed anyway and I couldn't get to my server.
After trying again and discovering buggy example code and a body-eating bug, I'm much more pleased to present Mail::SimpleList 0.60, with bug fixes and new features. It's just about everything I'd envisioned when I started the process and I'm very pleased with it.
I'm also tremendously happy with the Customer tests. These are different from the Programmer tests. (You may remember them from their old Extreme Programming names: Acceptance and Unit tests.) They're high level. I use the same testing framework, but I have to exercise different muscles and I get to see how everything works together.
Because I'm my own customer and I'm working alone on this, I've been writing the customer tests first, then moving to programmer tests. It's a slightly different approach for test-driven development. It's stack based. I find that I have to revise the customer tests after the programmer tests all pass. Part of this is because I've only now started to feel the need to refactor the customer tests into more expressive testing verbs. Part of it is because I have to think in slightly different ways. It's great!
I've agreed to speak about this project and my development process at the next Portland Perl Mongers meeting, on 11 June. We'll see how it goes. I know understand why Rael is having so much fun with Blosxom.