5/04/2015

“Boba Fett? Boba Fett? Where?” (Star Wars Day)

Image Credit: http://www.starwars.com/may-the-4th


Geek culture has adopted today as Star Wars Day.  For those of us who fit into geek culture, we tend to say silly things like "May the 4th Be With You" most of the day. And in general the responses we get back are good natured too.

As a fair warning, I don't really intend on answering the question in my title today. Actually, it's not really a question to answer, it was more of a rhetorical panic from Han Solo, but it seemed like it was appropriate to use as a title/question today.

Thinking about Star Wars today also got me to thinking about something else. George Lucas created an empire when he created Star Wars a few decades ago. That empire started as a vision and as an idea. The first time he showed the film to critics, they hated it. At least some of this was due to the fact that it didn't have a John Williams score or any real foley effects in it.  From anecdotes I've heard from other mega fans, apparently the first time it was screened Storm-troopers fired cap guns (based on the sounds they made and the evident lack of any "blaster bolt"). But, Mr. Lucas had a vision - and he didn't give up on it just because he ran into some opposition.

Setbacks, (or as we engineers like to call them, "bugs") always need to be treated as an opportunity to do a few things.

  1. Fix the problem. This one should be obvious - if someone reports a bug, take the time to fix it.
  2. Fix the process that didn't catch the problem. This one isn't quite as obvious. 
    • The first step in this should probably be writing an automated test of some kind that reproduces the production problem. Then you can always be assured that new code won't cause a regression and recreate the problem that someone found in production.
    • The second step in this is something I'm still debating with myself, as I don't think there's a clear right or wrong answer as to how to better prevent production bugs. More time in QA? Better code review time? Better beta testing? I don't think that I even need a right answer. The really important thing that any production bug should cause is the desire to review the development process, and ensure it's as good as it can be within its constraints.
Bugs aren't the only setbacks we face as engineers, but they sure can be some of the most annoying ones. Especially when we get paged at 3AM and told our system has crashed because someone forgot to wrap a database call in a try/catch, so connection pools exhausted rapidly... <cough>. But, as long as we continue to see these kinds of challenges as an opportunity for doing it better tomorrow, then I think the Force will be with all of us. Even on days other than May the 4th. And just maybe we'll all be lucky enough to catch a glimpse of Boba Fett.

JSON Jason