Editor's Note: This article on DevOps is one of a set that can be found, along with videos and other resources, within the SDxCentral DevOps Topic. Check this Topic regularly to see the latest updates.
One of the cool things about working at Chef is the chance to work with hundreds of companies that are really good at building awesome stuff, which essentially is what DevOps and continuous delivery are all about. Working with people and companies that are really good at building awesome stuff means we get to see firsthand the traits they share that help them build the best possible customer experience — traits necessary for DevOps success and making continuous delivery work in any organization.
More and more frequently, I see those common traits boil down to five things:
1. Strong cultures of personal empowerment and accountability
This is the number one indicator of success. You’ll know you're there when team members at all levels are empowered to use their judgment. This means the default answer for whether you are allowed to move the business forward is “yes.” You can see examples of this at companies like Facebook and Etsy where every developer ships production code on their first day.
2. Treating failure as a learning opportunity, not as a dangerous thing to be avoided
In Thing #1, I said you have to empower people. It’s tough to be empowered if you’re punished every time you make a mistake. When a failure occurs, you have the choice of learning from it or doling out punishment. Organizations that are really good at building awesome stuff use times where something went wrong to create efficient and rewarding processes for learning. This makes it less likely that mistakes will be repeated and makes the system itself fail less often. Choose to learn rather than punish.
3. Service-oriented architectures
Yes, SOAs are good for development. They are also easy to break apart, examine, rebuild, and evolve as you identify failure points. They're easy to scale — important for everyone — and they can be segregated across various dev teams, which is critical to growing your organization. This last point also means you organically grow natural accountability (remember Thing #1) so people can take credit, pride, or the opportunity to learn from mistakes. Also cool: SOAs done right mean transparency and better communication, which again feed Thing #1.
4. Cultural allergies to processes that make you slow
We’ll let Phil from Facebook explain this one:
“The #1 thing we can’t do is get in people’s way.”
— Phil Dibowitz, Facebook
If you have a process or method that slows down your ability to innovate, find another way to accomplish your goals. Slow, ponderous processes get in the way. Don’t settle for them. If you’ve figured out Thing #1 and Thing #2, you’re building trusting relationships in your organization. Speed up your processes by building ones that support that trust.
5.Addiction to data about internal performance and users’ perceptions
Make decisions based on data, not emotional arguments. Collect data obsessively. Use performance metrics to make decisions about what to tackle next in your products and services and how to scale your infrastructure. Track your users’ proclivities within your ecosystem. When it’s time to have an argument (hey, they happen), stick to arguments about things that are measured, evaluated, and tweaked based on observable outcomes.
There they are — five things we've found in common among organizations that are really good at building customer experiences. You see them over and over again in companies like Facebook, Nordstrom, GE, Riot Games, Ancestry.com … and the list goes on. There may be other things we're missing here, but if you get these down you’re in great shape. If you’ve noticed other consistent traits or practices, let us know via @chef. We’d love to hear them.
Check out more about DevOps on SDNcentral: