Upcoming TDD workshop
We have a workshop (in Indianapolis) later this month on TDD and we're looking for attendees and experience reports.

In this workshop we want to look at testing done by the programmer, for the programmer. For this workshop, experience reports would cover topics such as:
- getting started with TDD
- working in legacy code that does not have existing unit tests
- managing large test beds of unit tests
- setting up and managing continuous integration
- designing mocks, stubs, and harnesses
- using unit tests to aid in refactoring
- dealing with team/cultural issues when implementing TDD
- tools that assist with TDD and unit testing
- and non-traditional unit testing (dbunit, junitperf, xmlunit, etc...)

This workshop could also potentially have an exercise or two where participants write a class using TDD with a series of debriefs/lightning talks of why they used the tests that they did. Problem solving opportunities are very welcome for this workshop.

Dustin Sparks, a local development manager, has volunteered to take on the role of content owner for this workshop. Our hope is that this topic will entice programmers who have a passion for well tested code, who want to share what they've learned, and who want to get better at their testing.

Date: Friday March 27, 2009
Location: Mobius Labs
Time: 8:30 AM - 5:00 PM
Format: All-day workshop

If you're interested, drop me a line. As always, it's all free (you'll have to pay for your own lunch). All we ask is for your time and participation. For more information on the workshops, check out www.IWST2009.com
Finding beauty in software development
I find that a lot of times I get discouraged as a software tester. I suspect James' recent post on quality resonates with most testers. It darn near impossible to sit at a computer for more than fifteen minutes and not get hit with a bug. You don't even have to look for them. They're everywhere.

This week alone I can remember getting tripped up (literally couldn't do something I wanted/needed to do) by bugs in Gmail, IBM developerWorks, Mac Mail and iCal, and MS Money. I didn't pick four of the biggest technology companies I could think of on purpose. Software in general is just really that bad. And those are just the bugs... we'll leave poor design issues out of it.

However, as often as crappy software gets me down, I feel like I run across really beautiful and (arguably) well written software. For example, WordPress has yet to really fail me in any way and I run four blogs. JIRA does just about everything I want, and does it fairly well. It's the only issue tracking tool I've found easy to administrate. The Omni group makes relatively easy to use software, that's both aesthetically pleasing and intuitive (with the possible exception of OmniPlan - oh for a day with the UI designers of that tool). The iPod (one James also mentions) is a central part of my life, and after hours and hours and hours of use I've only ever had it crash once. (A simple reboot fixed it.)

And those are all relatively simple software packages. When I think of the hard stuff, I get even more hope. I've only found ever found one software bug in my 98 Dodge Durango and it was harmless. I know some embedded programmers who write that stuff. There should be more bugs, but there aren't (or at least I don't notice them). FireFox only crashes on me about once a month, and I suspect it's in part because of the crappy code other people write that it has to work with. I run Vista, XP, and OS X everyday - day in and day out. They all crash about once a month. They do more than I'll probably ever know.

I agree with James that many companies don't really care about quality. I've been scanning news headlines for "software testing" for the last two months and there has been a lot of news on Beta programs. Beta - another way of saying we're releasing our crappy software early so we can get to market faster. I agree that the trend is certainly poorer quality software and devices.

However, I also see beauty in software. I see well designed websites (even though there are more poorly designed ones). I see systems that deal with a staggering amount of complexity (and most of the time do it well). I see products that do their job well and are easy to use (along with those that are clearly crap). I see software that helps make my life easier and helps me focus on things that are more important to me.

I want better quality. I want Gmail to show my public appointments to everyone (not just some people). I want Mail to not crash every five hours. I want developerWorks to let me print to a PDF without throwing Java exceptions. And I want Money to not run background processes at 100% of my processor for over 15 minutes. I might also want TiVo, but lucky for me I've never tried it and don't have that addiction yet. I'm eagerly awaiting James' upcoming posts on the topic.