Sunday, June 12, 2011

Fish Tanks and Unintended Consequences

Sometimes, nature has a way of showing you the unique, the weird and the downright unpleasant in ways you might never have expected. add to that a captive environment, and you might witness the truly unusual.

For those who have followed this blog the past couple of months, I've made mention of the fish that recently spawned in my largest tank. I have a colony of convict cichlids (Archocentrus Nigrofasciatum) and they had a large and very successful spawn. So successful, in fact that the other Convicts in the tank started eating them. To give the babies a better chance to survive, I decided to cull some of the larger males. This made for a large part of the tank open for the babies to swim free and unhunted.

Fast forward by about six weeks. I came upstairs to check on the babies, and I noticed that the "father" of the group had what looked like lesions on his back along and near his dorsal fin. at first I though that he might have contracted some kind of parasite or disease, but I decided it was important to observe first and see if I could get any clues. It took less than five minutes to learn what resulted in a nasty truth... the babies were cannibalizing him! Seriously, the babies were going up to the father (and later I would see that the mother was suffering a similar fate), pecking at the soft rays of the dorsal fin and the surrounding skin and flesh,, and eating them alive!

Part of me said that I wasn't going to interfere, and that I'd let the chips fall where they may, but this was too much to witness. As a result, I made the decision to remove the bitten and exposed Convicts into different quarters. The father I relocated to a 6 gallon hospital tank along with another adult male to keep him company. The mother I relocated to my son's 20 gallon tank with a bevy of other female Convicts (he jokingly calls this tank "the harem"). As a result the babies are now free to roam the tank without the parents corraling them. They are also free to be approached and dealt with by the fish that are in the tank, from those ten times their size to those who are fellow convicts but not their parents and will definitely chase them all over the tank if they try to nip at their fins or skin.

This is a lot like our software projects when we tinker and play favorites. When we play favorites and cherry pick our projects and where out time and attention will go, there will be "features" that will likewise grow and cannibalize the product. We as testers have a moral obligation to be on the lookout and look to see if development decisions may have unintended consequences. They may not be as severe or unusual as baby fish cannibalizing their 5 - 10 times their size parents, but there will be interesting problems nevertheless. To this end, it's important that we grow to understand what features have been added and how they interact with the whole system. Chances are, if we do so, we may well avoid the cannibal fish issues.

No comments: