First and foremost, if you read my blog. I have to suggest that you go grab yourself a copy of Beautiful Testing
. It's a great read, and has inspired this post.
been inspired by reading this book. I've been reminded of my passion,
of the reasons I have chosen to do what I do. After all, I chose to be a
tester, I haven't just fallen into a job and decided I should deal with
the hand I've been dealt.
I didn't always want
to be a software tester. As a young child, I wanted to be a marine
biologist! Actually, I wanted to study the neurological systems of
dolphins. I was convinced that I was going to figure out what it was
about their brains that made them so smart. I still have the book that
inspired me then, 9 True Dolphin Stories
a marine biology course and choking through learning the ocean zones, I
shifted my interest over to genetics. There was something about
genetics that was *beautiful* to me. I was amazed at how the whole
system *worked*. Granted, sometimes it goes awry, but at an incredibly
rare rate. I liked it because it is so *simple*, and yet so completely
*complex*. I was amazed at how 4 simple bases could turn into a *human
being*. (HA! In the middle of writing this blog post, I went to Barnes
and Noble and happened to come across a copy of Matt Ridley's "The Agile
Gene"! I'm a Matt Ridley fan, and this title is a re-title, but very
When looked at that way,
genetics and computers are rather easily related to each other. In
genetics, a 4-letter alphabet turns into some complex stuff, like human
beings. In computers, a 2-letter alphabet turns into some complex
things, too, just not as complex, and too often, not as smoothly. So in
a lot of ways, my switch from genetics to computer science was an easy
When I work toward making software
beautiful, I have in my head a picture of how it's done in genetics.
Those systems are exponentially more complex than software, and yet,
there has somehow developed a *synchronicity* (Is that a real word?),
where even given countless variables, the system is responsive and
*works*, regardless of the state of all of those other variables.
Isn't that incredibly beautiful?
Reading Beautiful testing, I saw these same ideas threaded through the chapters.
Heusser talked about math in terms of number theory and proofs,
including some commonalities in nature (the Fibonacci sequence and pi,
for example). In studying mathematics, Matt found an appreciate for
what he calls "aesthetics" (and what I've likely been calling
'harmony'). His sentences on the aesthetics in mathematics hearkened
back to my appreciation for genetics for the same reasons.
it was Chris McMahon's chapter, relating creating software to an
artistic performance, that inspired me to think about the way I work on a
software team in a new light. He mentioned the way a band rehearses
together before a performance. I have seen some *amazing* bands, where I
watch them communicate with each other silently. The slightest
gestures can be made, some not even perceptible to the audience, and the
rest of the band follows suit.
happen all over the place! A new mom once told me that she enjoyed me
coming over because I "just knew" what she was going to need before she
did. Well, of course I did, I've been through the mom thing before. I
used to ride horseback (dressage, actually) and with some of the horses I
trained on, the *slightest* shift in my body weight caused the horse to
change direction. I had to learn to control every muscle in my body to
only send the messages I intended. Have you ever seen a couple, who at
a party, seem to be able to send signals to each other with just a
glance of the eyes?
Coming back to testing and
software, it seems that the very best teams work in much the same way.
They are able to shift direction, together, without falling out of step
with each other. They are able to fill in for each other without the
need to go through hoops to do so, and they trust each other completely.
They all care about the same things, and work together to accomplish
their goals, following the same values.
tester, I love the fact that I get to strive toward this kind of
harmony, while also managing the effects of so many other variables: the
customer, usability, risk, time, cost, value, technology, the business
goals, product management, etc etc. For me, being involved in testing
means that I have my hands in everything, and spend my time trying to
make sure that they *all* work together seamlessly. As a tester, I must
represent the customer. I must represent the potential customer. I
must represent the developer. I must represent the business. And, I
must tie all of these together in an intricate web, ensuring that the
outcome represents all of them and is responsive to any variation in
THOSE are the reasons I am
drawn to Agile. THOSE are the things I see in the teams I have had
exposure to that I think work *really well*. THAT is why I love
testing. Testing *is* beautiful.