Thursday, June 28, 2012
A Term Every Programmer Should Know: Blue Baby
I've been saying this for years, but I don't think my fellow engineers understand me. Let me try to explain.
In the 2004 film, Something the Lord Made, two colleagues are pioneering a crazy idea that the heart can operated on successfully. Much of the movie is devoted to them working to save the lives of "blue babies" which are babies who's skin is literally blue due to lack of oxygen in the blood.
Their biggest challenge and much of the movie is devoted to reproducing the problem. Dr. Alfred Blalock and Vivien Thomas spend 13 years together, working to create the blue baby syndrome as a reproducible symptom in dogs.
They understood the importance of creating a blue baby.
Without the ability to create the exact same symptoms in an environment they controlled, they never would have had a breakthrough. More babies would have died and it may have been years before someone else was daring enough to attempt open heart surgery.
Every day, our worlds are being shaped and defined by the software we use. Companies and families rely on software and when it's broken, really bad things can happen. When it comes to software development, these same ideas are true. If there's a problem, you have to be able to reproduce it in a consistent, controllable way.
If you're a software engineer, you should be serious about your ability to create a blue baby. How creative and thorough are you when it comes to diagnosing, understanding, and reproducing a software problem? That's where the real skill and experience lie. Once the problem can be consistently reproduced, a few print statements later will often reveal a solution.
I think this idea of a "blue baby" in software development is critical (and this movie portrays it so well). I'm hoping my fellow developers will start using this term along with me. If your colleagues give you a sideways look as you yell, "Eureka! We've got a blue baby!", go ahead and send them this post.
Blue Baby: A term in software development referring to a bug that can be reproduced at will in a controlled environment.
Your work may not be as important as open-heart surgery, but hopefully it doesn't take you 13 years to reproduce an important bug. What you do matters so fixing it matters too.
As a developer, what do you think? Is this term worthy to enter the lore of tech-speak such as bikeshedding, dogfooding, or rubberducking? (Cal Evans has a great post about the Software Development DSL you might also enjoy)
If you think so, share it with your communities. I'd also love your thoughts on this idea in the comments.
Posted by Luke Stokes at 9:52 PM