Nebraska Code has been exceptional this year, so please everyone thank the crew that put this conference together. And don’t forget to review the talks you attended today to give the speakers positive, constructive feedback. And again, hit me up on twitter for conversations about these topics.
Thanks for everyone attending the Nebraska.Code() Conference. After the jump, check out a previous version of my slides and some notes on the topic I collected. I’ll likely be updating the slides a bit more soon, and will post when that happens on twitter.
Thanks to everyone attending the Music City Agile track of the Music City Tech conference! I’ve really enjoyed visiting Nashville again and hope to see y’all soon. I’ve got my deck shared here and below I have posted many of my notes and items I discussed that were not directly on the slides.
For those hearing my talk on the topic or wanting a single place to get to each item in the Anti-Pattern list, here is a link to the original summary post and the individual posts for each anti-pattern I discussed:
Automation is the force multiplier that makes a DevOps effort so powerful. While it requires the technical skill and know-how to create frameworks for automating processes in an organization, an automation-first mindset is not easy to start out with. The rest of the DevOps anti-patterns are all about different modes of thinking and this one is no different.
All of the previous cultural pitfalls I discussed have been focused on systemic issues with organizations, teams, or groups of people. This is truly the one that requires individual effort to defeat. Even I have to be intentional about sharing what I know that would make others on my team have the same successes. This differs from the Tribal Knowledge Anti-pattern in that organizations create and force single threaded resources. This forces people to “stay in their lane” which creates hard boundaries in what people know how to work on. Information hoarding usually comes from an individual place of fear and insecurity.
In 2017, I took a very hard look at the issue we caused for Quality Assurance teams I worked with. By automating many Operations tasks, we did not speed up the whole development effort of the projects we worked on. The flow of work through an entire system is the only metric that matters to project leaders and clients, not that one particular piece is better. We had unintentionally created a new, bigger bottleneck by not supporting our QA team properly with what they needed to succeed.
“It is better to ask for forgiveness than permission.” A statement like that is pervasive in an organization that follows a decentralized command and control structure. As organizations become more complex, it is nearly impossible for any single person to fully capture detailed information in making decisions. Yet, many companies still try to run significant decision making authority through single threaded resources.
The technology industry has embraced the DevOps definition around the idea that it is used to break down silos and barriers to teams working together. As a portmanteau, the word DevOps clearly states in its own name the purpose of the philosophy. However, just smashing together a development and operations team does not just automatically eliminate silos within an organization.
Personal responsibility and accountability are important traits team members should have in a collaborative work environment. But Super Heroes in the workplace take this mentality to the extreme end of the spectrum. As I review the issues within organizations trying to implement DevOps, this is the most difficult one to reign in. Because this mentality is not far off from an addiction to work, in which the offending resource feels the need and desire to worm themselves into a situation that needs them to save the day.