I just got back from a trip to South Florida. My wife and I are both from Tampa, and both of our families (and most of our friends) still live there, so we go down quite a bit. This trip I headed down with my brother and stepdad to my stepdad’s girlfriend’s family reunion in Everglades City. To give you an idea where that is, head South on 75 until you see a gigantic sign that says “No Services Next 50 miles”. Go 20 miles past that, turn off on the exit that is in the middle of nowhere, go 20 miles down there (passing lots of “Panther Crossing” signs and not much else) and you’ll get there. Our airboat guide on Saturday told us there are more gators between there and Miami then in the entire rest of the state. I saw just over 10 gators in the day and a half I was there, so I believe him.
But one of the most intereting moments didn’t come on an Airboat, or fishing, it came walking from the room to the car. I had just showered, and walked out to get something from the car which was no more than 20 feet from the room. In the 45 seconds I was out there I got no less than 15 mosquito bites. Suddenly it made sense why there were gigantic bottles of Off around the room.
A similar situation happened to me recently on a project at work. I admit, I love small companies. There’s something about being able to turn on a dime and wear lots of hats that I am a glutton for. I especially like this one because of the talent on our team. We’ve just got some good developers. Even the ones right out of school pick up quickly. So it was quite an astonishment a couple of weeks ago to find out that our boss was throwing all of our resources at this one project. This project had been in development for around 7 months or so, and it seemed to me like it was doing really well. And being that we as a team regularly talked about patterns and test-driven development and unit testing, I figured I knew what to expect when I saw it.
In both instances I made a mistake. I took for granted that situations would be a certain way. In the case of the Everglades, I took for granted mosquito control (those loud trucks that come buzzing by late at night). Without that, mosquitos run rampant. With the project, I took for granted that, in lieu of checking, a common pattern and code style would emerge, which could be tweaked if necessary.
It got me thinking about other things we take for granted. Like other developers having the drive to want to constantly improve. Some people are more than content to come to work, crank out whatever needs to be cranked out, and go home without thinking a second thought about it. Or good developers producting clean, well designed code. (To our team’s defense, I have a better understanding of the pressures they were put under, and with that and only having two people, I would probably have ended up with a BBOM too).
So how do we deal with this? I mean, we have to take for granted /some/ things, or else we will have a hard time functioning. Like that our car will start, or that the fuelers know how much fuel to put in the plane. Or that when you call 911 someone will come quickly. But other times we get woken up by an assumption that comes back to bite us. And all we can do is work to correct that.
Luckily for me, I had brought a big bottle of Off, so I was able to enjoy the weekend down there (and catch some fish too!). And, just as great, I have a copy of Working Effectively with Legacy Code at my desk, a build server with CruiseControl.NET and NUnit, and an allowance of two hours a day to bring the project under test and refactored. It won’t be as fun as doing it right the first time, but once the bites heal, and we get our safety net in place, we should be just fine. Now if I could just find my gator repellent…
(And if you haven’t already, be sure to donate to the Red Cross or some other organization to help with relief efforts in New Orleans. It’s a mess down there)
(P.S. I may not have made it clear, but, yes, our team *is* interested in making things better. And they are heckofa coders. They just got stuck with a bad situation of having too much to do and *way* to much pressure put on them with very little guidiance. Hopefully we can fix that)