As you may have heard by now, Stephen Covey – the author of “Seven Habits of Highly Effective People” passed away this week. He published this book for the first time in 1989, just as I was entering the workforce and had a strong influence on how I analyzed my own effectiveness. To honor him and his contribution to professional development and the millions of lives that he has touched, I thought I’d tailor his Seven Habits to make them even more relevant and prescriptive to AppDynamics users – Application Operations, DevOps & IT Operations professionals.
Managing mission-critical apps isn’t easy. There is a lot of pressure to “keep the trains running on time” in an environment where change is a given. Thus, it can be very easy to spend your day on what’s “urgent” or “hot” instead of what’s most “important”. This relates to habit #3 of the Seven Habits and perhaps my favorite. Luckily, we work with some really strong App Operations & DevOps teams who have figured out how to be the most effective and have the most impact at their company.
So, what are their secrets and how can Stephen Covey’s habits help Application Operations folks be more effective? What do the most effective Application Operations groups do to differentiate themselves and their company? Let’s dig in and look at each habit one at a time.
1. Be proactive
Ok. This concept is a no-brainer for folks in Operations. If you let things happen to-you (ie reactive), you’ll spend your whole day responding to angry users and line-of-business folks…trapped in endless war-room conference calls trying to figure out why something broke after-the-fact. At the most basic level, being pro-active can only happen if you have enough visibility into how your applications are working before any problem reaches a Severity-1 level. Pilots can’t fly a plane without the right set of gauges and instrumentation, so don’t put your team in the position of operating a mission-critical app without the right level of visibility. Having visibility puts you in control and allows you to be proactive.
2. Begin with the end in mind
Define what success is and what impact you want to have on your organization. Go beyond uptime and availability measures and think about how your work can contribute to the company’s revenue achievement, revenue growth, competitive advantage, customer satisfaction, etc. Thinking in these terms will better align you with your Line-of-Business (LOB) colleagues as well as enhance your job satisfaction. Our users who can say: “my company would have never been able to grow web sales by 35% last year without my contributions to scaling and operating our app” have a lot of job satisfaction.
3. Put first things first
In a nutshell, this habit instructs us to prioritize tasks based on importance, rather than urgency. It is an easy trap to “live in your inbox” or see half the day get wasted by chasing down false alarms. I like Covey’s 2×2 matrix and it’s a good five minute exercise to put all of our projects/tasks in this matrix to ensure we are spending the bulk of our week on things that are both important and urgent. Certainly, the right Operations tools and automation can help provide focus by prioritizing what work will have the most impact on the success of a mission critical application.
4. Think win-win
This is also a major tenet of the DevOps movement – If Dev, Ops, and LOB all have divergent goals and objectives…there will always be tension and conflict. As the Operations guy, take the initiative to find out what matters to your Dev and LOB counterparts and how they measure success. Once you’ve don that, align your goals and objectives with theirs and co-build a plan to get there. What most of the successful DevOps shops are doing is picking shared goals/objectives that matter to Dev/Ops/ LOB and then aligning their efforts to achieve those goals. When everyone is committed to the same goals and a shared plan to get there, a lot of the daily conflict/political infighting goes away.
5. Think first to understand, then to be understood
Application Operations can be hard. For most of our App Ops users, they didn’t architect or code the application they are responsible for, but there is a lot they must understand about it to operate it successfully. On top of that, if their shop is agile, their app is likely changing all the time and it can be near impossible to know how it has changed each time. With agile, the days of complete knowledge transfer and gated exit criteria seem to be gone, so you’ll need different approaches to understand what you need to know about the App to succeed. The right tools/ automation can help by automatically discovering what has changed and whether or not the new build is performing as well as the last build. Once you have this understanding – you’ll be in a better position to communicate to Dev/Test if/how/where the new build is performing poorly….and be listened to.
This habit can often mean to use teamwork to reach goals unattainable by one person working alone. Often we hear Dev & Ops folks talk about the “blame game” that goes on inside their company and the acronym MTTI – “Mean-time-to-Innocence”…where each silo (network, database, application, server, storage) are all trying to prove that their area isn’t to blame for the latest problem. When the culture that exists between Dev and Ops is one that leads to finger-pointing rather than collaboration, then there is an opportunity for improvement. The DevOps movement has some good materials on how to enact a cultural change to enhance collaboration and teamwork.
7. Sharpen your saw
Continually look for ways to improve your knowledge and the way you do Operations. What we’ve seen a lot in the last 2 years is Infrastructure Ops folks re-defining themselves as AppOps or DevOps people. And they aren’t just changing their title. What this means is that they’ve changed the way they work, added to their skills, gained experience with new tools/automation (AppDynamics, Puppet, Chef, etc..). What I often see from folks that have embraced these new skills is a new level of confidence and job satisfaction. I hear a new pride when they say they are “Ops people who can code” or “Ops people who can troubleshoot App issues better than their peers”. If you are interested in taking this same journey, study the presentations on slideshare by Netflix and others on how they run Operations and what this has meant to their job definitions.
In the end, the habits and behaviors of highly effective Application Operation require a range of skills that go beyond learning a new way to use automation to improve availability and performance – these skills also include effective relationship management and goal alignment across teams, prioritization/time management, and continuous improvement. The good news is that most of the App Ops folks we work with seem naturally inclined to continually improve.