Around a year back, my brother gifted me an iPhone 3G. It was a welcome upgrade to my 2 year old iPhone which had seen better days. It was all sparkly and shiny and I was thrilled. In a moment of infinite wisdom, I plugged it in for charging around 7 feet above the ground in a precarious position. As soon as the next email alert came in, it vibrated and fell to the ground, completely trashing the screen.

Despite all attempts to get it fixed, including spending hours with technicians and a lot of money on replacement screens and whatnot, it never worked properly again. It finally croaked a few months later.

Just as I was blowing my nose for the nth time, after having picked up yet another cold, I had a revelation: the common cold is the same as the unavoidable pains associated with Software Engineering. Let me explain.

Fred Brooks wrote The Mythical Man Month over 35 years ago where he spoke about the problems associated with large scale software development. A decade later, he wrote an essay (which later became a chapter in the book) about how there’s No Silver Bullet that will cure an essential subset of that pain because of software’s inherent complexity. The book is awesome and per Brooks himself, “everybody quotes it, some people read it, and a few people go by it.”