Mark Mzyk | January 22, 2013
“When I was a child, I spoke like a child, thought like a child, and reasoned like a child. When I became a man, I gave up my childish ways.”
1 Corinthians, 13:11
As I read Mathias Meyer’s latest post, Failure is Always an Option, I was struck by how he began. He gives two examples of failure, one from the airline industry and one from the steel industry, before then moving onto their lessons and how they can be applied to the software industry.
This caused me to start thinking how DevOps fits into the larger picture of software development and even within the context of other industries. I realized that what Mathias is writing about in his post, and what DevOps is an indication of, is the software industry maturing. Industries like the airline and steel industries are very mature industries, while the software industry is barely out of infancy. The airline and steel industries understand failure, while the software industry is still learning how to handle failure in a mature way.
There are many parts to growing up. When a person grows up we see changes in the way they look. They usually grow taller, their features change to become less childlike. We might notice they change the way they dress or they buy nicer things. Society comes to recognize they can buy alcohol or vote. Yet even when a person has done all these things, we might still call them a child, because we recognize that while they look like and can take the actions of an adult, in their behavior they are still a child.
While the software industry might look like an adult, we can see in its actions that it is still a very immature industry. However, it is maturing in fits and starts. We see this in the agile and devops movements. These movements are cultural movements, behavioral movements. They lay out the practices that adults follow. Of course, companies will adopt and practice them in different ways, just as all children don’t grow up to become the same adult. It isn’t the developer’s or sysadmin’s place to put down a company when they see the company doing agile or devops differently than they would. It is a sign of a mature developer or sysadmin who can see something they disagree with and work in a positive manner to bring about change, or who opts to model the better behavior and lead by their actions.
“Through this work we have come to value: Individuals and interactions over processes and tools”
This is a declaration of growing up. It says I am an adult; I understand how to act and don’t need someone else to lay out rules for me. DevOps follows in this, in that DevOps says that developers and sysadmins are adults and respect each other. Through mutual respect they work together, knowing that their faults and failures will be laid bare, but that this is in fact the behavior they want, because it means everyone can learn and become better.
While agile and DevOps may have practices spring up that some say you have to follow to be truly agile or truly DevOps, the mature engineer knows that these are tools to help the less mature grow. If you use them or not, it doesn’t matter, so long as you act like an adult. Some adults wear suits to work, others wear cargo shorts. These things are only for appearance. What matters is how you act.
We’ll know the software industry has grown up when it becomes common practice to treat failure seriously and embrace it, instead of treat it as a shame to be hidden. As others have pointed out, we can learn a lot from other disciplines.
It’s time to give up our childish ways.
Filed in: Software Engineering.