Karthik and I explore the use of metrics in development and DevOps in the form of three Epic Rap Battles of History - Dev vs Ops, Small vs Large Org, and Scrum vs Kanban. With special appearance by Dr. Evil who explains how to use metrics for evil. Presented at Agile 2014.
3. • Senior Engineer @Signal
Sciences
• Previous:
• 10 years building products-
agile/cloud/devops teams
@ernestmueller @iteration1#Agile2014
4. • Product Manager at
Copperegg
• Previous:
• 20 years in IT – dev, ops,
management
@ernestmueller @iteration1#Agile2014
5. Our Goal For You Today
• Empower you with new ideas to bring your
organization together!
• Metrics. What are they?
• How to use metrics for good, as illustrated by
three Epic Rap Battles of History!
– Dev vs Ops (What is this… DevOps?)
– Small vs Large Org
– Scrum vs Kanban
@ernestmueller @iteration1#Agile2014
7. What Are Metrics?
• A quantifiable measure of any component or
process whose change is of interest to your
business.
– Business!
– Application!
– System!
– People!
– Process!
– Not: Meaningless numbers!
@ernestmueller @iteration1#Agile2014
20. • Tasked with building new cloud business for the
organization.
• Understand how cloud technologies can impact
bottom line.
• Build products customers will want from the new
business unit.
– Read, startup inside a bigger organization
Story Time: Our context
@ernestmueller @iteration1#Agile2014
21.
22.
23. • Used ‘Lean Startup’ ideas to power new area.
– Able to define an MVP (Minimum Viable
Product).
– Easier to define workflow for something brand
new.
– No confusion with existing processes.
• Once we started to see value, retrofitted to
other parts of the org.
Lean Startup Applied
@ernestmueller @iteration1#Agile2014
24. Showing progress
• Initially- we had weekly
progress/status meetings with
stakeholders.
• Cross functional team with
business/marketing/engineering.
@ernestmueller @iteration1#Agile2014
27. Metrics
• Pivot: change conversations to metrics instead.
• Agreed on metrics that we wanted to track
– Stakeholder input
• “What do you want out of this?”
• “How quickly do you want this?”
• …Okay, let’s measure this!
@ernestmueller @iteration1#Agile2014
28. Tracked Metrics
• Tracked actionable metrics (dev and business):
– # Users signing up per week
– # Active sessions per day/week
– # of compiles sent per week
– # unique data points sent per week
29. @ernestmueller @iteration1#Agile2014
Pro Tip: Metrics
• Link all your metrics from one
dashboard.
– Business (Ex: User logins)
– Dev (Ex: Performance
metrics)
– Ops (Ex: DB CPU Usage)
• One bookmark to rule them
all.
31. Pro Tip: Metrics
• Try to use a tool that can handle different kinds
of metrics.
• Shoutouts:
– Statsd
– Datadog
@ernestmueller @iteration1#Agile2014
32. End Result
• Business and engineering on the same
page.
• Management looking at metrics without
having “meetings to look at metrics”.
• Became a part of the culture.
• Innovate faster because different
teams were in sync.
@ernestmueller @iteration1#Agile2014
35. Other Kinds Of Operations
• Wikipedia quoth:
• Business operations is the harvesting of
value from assets owned by a business
• Operations management is […] overseeing,
designing, and controlling the process of
production and redesigning business
operations in the production of goods or
services.
@ernestmueller @iteration1#Agile2014
36. Technical Operations
• “Operations: The New Secret Sauce” – Tim
O’Reilly (2006)
• Without the ability to
– Release changes
– Quickly respond to change
– Provide a service without interruption
– Operate cost effectively
Your service is borked.
@ernestmueller @iteration1#Agile2014
37. What Does Operations Do?
• Build Servers, OS, Virtualization/Cloud
• Install/Upgrade Software
• Install Applications/Release Process/Move to Prod
• Configure Network, Load Balancers, Storage, etc.
• Security testing, reporting, and hardening
• Reliability (scaling, backups)
• Performance management (apps, systems)
• Scalability (capacity planning to autoscaling)
@ernestmueller @iteration1#Agile2014
38. What Else Does Operations Do?
• Availability – Responsible for service being up
• Incident Response
• Fulfill Requests
• Budgeting/Contracts/Cost Tracking/Reduction
• Monitor all of that
• Much more
• So besides “they run the services,” the critical
final piece of your value chain, they have access
to many of the things you want metrics from
40. Story Time: Black Friday
• Every year, a huge spike in usage
• Uptime and performance critical to retailers
during the period
• Product directly contributed to conversion
• Metrics crucial to plan the period, execute
through the period, report how we did
@ernestmueller @iteration1#Agile2014
56. Metrics Promote DevOps
• How do you get the cat inside the circle?
Herding cats is hard. Some people aren’t cat
people.
• Metrics can be used to promote culture,
understanding, and collaboration
• Metrics help keep those different disciplines in
sync by providing tangible collaboration points
• MTTD, MTTR, performance metrics, events
• Bringing all the discipline’s metrics together
cover your whole value chain “code to cash”
59. IT + DevOps = ?
• Many IT teams implement Agile today
• They can implement DevOps too
• But to do either, they have to change how they
interact with others
• Focus on customer’s needs not own needs;
cloud/SaaS providing “competitive pressure”
• Practice Theory of Constraints – embed when
possible, even if you need to add some
• Add devs and automate
71. Metrics 101: Culture of communication
• Talk in terms of metrics
– Builds common ground between different
roles.
– Understand different perspectives.
– Find the best way to get everyone talking in 1
place.
72. Metrics 201
• Push your metrics into your conversation tool
• Use tools that everyone likes:
– IRC v/s Hipchat/slack
• Integrate your metrics into a channel
– “Deployment channel” in your chat
73. Culture of communication
• Find a way to get people talking.
• Find face to face time with stakeholders.
• Metrics are that specific item to have a
conversation around.
• Engineering teams love IRC, but business and
PM’s might not as much.
• Transitioned to Slack/Hipchat (integrations and
message history)
• Leads to visibility and builds trust 74
74. End Result
• Metrics drive conversations between everyone.
• Enhances productivity.
• Helped us streamline our process.
76. Large Mature Org
• Hundreds of developers
• Many teams (many goals, processes)
• Distributed teams
• International teams
• Outsourcers
• Various Weird Partner Relationships
77
77. Large Org Problems
• Silos Galore
• Communication Problems
• Annoying Compliance Requirements
• Profitability Actually Important
• Less pure greenfield work – also
responsibility for many existing
mature systems
78. Story Time
• Story Time: SaaS product, 40 Engineers, 2/3
outsourced, mostly maintenance but extreme
scale (1/3 of staff were Ops)
• Lots of support initiated urgent customer
requests
• Dev still required for features,
integration/transition with newer services, bug
fix, scaling
• Team morale issues
79. Metrics 101
• First, add Agile. (Previously the ‘stew method’)
• Basic Metrics – number of tickets (100+ in queue
at any time), size of backlog (500 or so bugs
and stories), rate of new inflow and completion.
• Used to fix misunderstanding from upper
management and correct resourcing
• Next step on metrics – how to balance the
support work and new work?
82. Metrics 201
• Balancing these two metrics was the key to
satisfying customers short and long term.
• But it’s not an either-or - by seeing the effects
of people, process, and technology changes on
those metrics we drove SLA from <50% to
100% and kept velocity growing (20.. 50… 200…)
• Having the metrics to focus on gave shared
purpose and eased communication with the large
distributed team
• Experiment, see the impact, pivot.
83. Metrics 301
• Monthly “Operational
Excellence (Metrics)
Meeting”
• Teams presented their
metrics portfolio – with
some variation as
appropriate
• Drawn from system info,
app metrics, db reports,
Salesforce, surveys, etc.
• Keep it lean!!!
• Revenue and Cost
• Product Usage
• Performance
• Availability
• Client Satisfaction
• Employee Satisfaction
• Quality
• Security
84.
85. Metrics 401 - A/B Testing
• All features had usage measured
• Feature flags would turn features on for
customer subsets to measure usage, effect on
conversion, etc. before committing
• Sometimes you had to kill it despite work spent
• Retooling could save a high profile failure
• “Yes, product guy, you have to.”
• Look for things metrics say you can kill – it’s the
only way to stay lean long term
91. Here’s why…
• How many meetings?
• “Short planning meeting”?
• How often do these go long?
• Wait how long before prioritizing a feature/bug?
• Role of a dedicated scrum master is a luxury.
• Derailed sprints because of changing business
priorities…
@ernestmueller @iteration1#Agile2014
92.
93. Why Kanban?
• Limited number of WIP tasks in play.
• Easier to prioritize. There is only 1 list!
• Standups are simpler.
• Task estimates in days versus hours (1/2 day->7
day).
• Research tasks to figure out how long something
may take.
94
@ernestmueller @iteration1#Agile2014
94. Kanban benefits
• Kanban + CI == Solved our issue of “when to
release”. Didn’t have to wait for release windows
like in scrum.
• Less stressful == Only x number of tasks going
on at once. Easier to measure.
• Velocity is awesome!
95
@ernestmueller @iteration1#Agile2014
95. Kanban Metrics
• Things we track:
– Visualized board (JIRA Greenhopper)
– Cycle Time (How fast something gets done)
– WIP (Work/Tasks in progress)
– Flow diagram
– %of bugs
98. Kanban Drools
• Deadlines help maintain tempo – we had multiple
releases a sprint, don’t need to tie them together
• You can reliably commit to a near term ETA with
Scrum instead of just “when it’s done”
• Scrum has a better backlog (esp. in JIRA!)
• Many people “doing Kanban” are really “doing
nothing”, like some doing “Agile” are really doing
“cowboy coding.” Kanban takes more discipline
and training than Scrum.
@ernestmueller @iteration1#Agile2014
99. Scrum and Metrics
• Velocity is easier for people to understand than
flow diagrams
@ernestmueller @iteration1#Agile2014
100. But I Hear Kanban Is Better For Ops
• In a DevOps world, most Ops work SHOULD
NOT be interrupt driven – it’s project work just
like the devs are doing
• Dev and Ops expedite work approach each other
in magnitude over time assuming appropriate
investment in automation
• You may be thinking of “Level 1 Support” or “The
Helpdesk” – that is NOT an Ops Engineer
@ernestmueller @iteration1#Agile2014
101. Scrum for Ops?
• Devs have to be involved in major incidents too!
• Over the length of a sprint, the interrupt level
evens out – my metrics show that velocity
doesn’t vary more than with dev teams
• You manage WIP in your scrum too
@ernestmueller @iteration1#Agile2014
102. Complications Scrum Helps
• Distributed teams need more communication
ceremonies
• Foreign/contract workers need more
communication ceremonies
• Same process across teams is better – in most
cases other teams were using Scrum
• Simple common metrics -> better collaboration
• When starting from zero, Scrum was the
quickest path to team continuous improvement
These orgs tend to be one of the primary producers and consumers of metrics in a business by their nature.
Yes, “borked” is a technical term. See the New Hacker’s Dictionary, http://www.eps.mcgill.ca/jargon/jargon.html#borken
Keeping in mind Operations can be a role not a “person” or “org,” this is a long list of things I’ve seen ops be responsible for.
Keeping in mind Operations can be a role not a “person” or “org,” this is a long list of things I’ve seen ops be responsible for.
Without Operations, all that code is just sitting on a shelf, not realizing its value. Warehousing your intellectual property is just as good of an idea as warehousing your physical products.
“So you move some files around, so what?” Let’s use an example from my time at Bazaarvoice to show how Operations is not a passive role.
We used metrics to project for the period, which implied how much scaling we needed to do
We collected metrics from many places to operate our system properly.
Don’t be afraid to roll your own metrics tools – collection, visualization, analysis. We built out our own Web beacon to measure things more in depth than e.g. Google Analytics gives you. There is no “right tool,” just tools that suit your business.
We used metrics (and built a custom visualization) to manage through the period – the whole company was watching our regular updates.
Result? Smooth… like Keith Stone.
Ernest: “Dev vs Ops! Using metrics! Who won? You decide!”
Karthik: Psych! Dev and Ops can only win by coming together.
Ernest: We’re talking about dev or ops but many of you just have “IT” – not delivering your product(s) but instead services that are consumed inside and in some cases outside your company. Does this picture remind you of your IT department? Show of hands!
How about this?
Ernest Intro
All Epic Rap Battles of History images and dress taken from http://www.youtube.com/user/ERB
What kind of org gets the most benefit out of metrics? Small or large? FIGHT!!!
Ernest’s Part. Metrics rule more in large orgs! Small orgs? Ha! They’re child’s play!
So let’s take a specific example of how we used metrics to drive development at that level – A/B testing.
We would use our metrics framework to do A/B testing on new features to determine their viability. This helps quickly try out variations and iterate towards a provably superior implementation.
It’s easy to “be lean” when you’re little bitty. It’s a lot harder to stay lean in the long term in a large org.
Ernest: “Large org or small org! Who won? You decide!”
Ernest Intro
Ernest: “Tiebreaker round! Everyone’s favorite competitors! Scrum vs Kanban, FIGHT!!!”
Karthik’s Part. Kanban + Metrics is best!
Ernest’s Part. Scrum+ Metrics is best!
Ernest: “Who won? You decide! All right, the final winner of the Epic Rap Battles of History, Agile 2014 edition, is…”
Ernest: Oh no, what’s happening?
Ernest: Dr. Evil here! All this tomfoolery is well and good, but I wanted to discuss how to use metrics… For evil!
First, demand more metrics. More is never enough. It doesn’t matter if you don’t understand what they mean. Every little metric is pretty hard to understand once you really look at it closely. So don’t try, just pile on more! The more metrics you have, the harder it’ll be to turn them into decisions! Then you don’t have to do anything. Success!
Make sure people worship the metric. Even if they don’t know where it came from, or why it exists, or what it means you should do. You should totally make them continue to spend time and effort collecting it and reporting on it. Looking the same is way better than charting your own path.
Don’t put up with “approximate” metrics or metrics that are more qualitative than quantitative. If a number doesn’t have at least two places after the decimal point, it doesn’t look very official, does it? Who cares how much effort it takes to get a metric to that precision, or that the precision is probably false? If someone gives you a metric that isn’t 100% rigorous, just shriek “You have failed me!” and dump them into the fire pit.
And finally - use metrics against people! Groups should definitely fight using their metrics. You should use velocity metrics against individual engineers, too. Whatever the reason for a change in a metric is, make sure and frown and look unhappy to let your minions know that they should be making the number look good, who cares about that messy “reality” behind it. People are often reluctant to start keeping and advertising metrics because of the fear someone two levels up who doesn’t know what they mean is going to give them grief over it. So definitely do that! Dr. Evil, signing off!
Karthik: “Well that was exciting, I can’t believe that side won! All right, now for your post battle recap.”