1
00:00:07,500 --> 00:00:11,420
After watching this video, you will be able
to explain the importance of measuring what

2
00:00:11,420 --> 00:00:15,980
you want to improve,
identify the value of social and DevOps metrics,

3
00:00:15,980 --> 00:00:19,980
and recognize that DevOps changes your approach
to problem resolution.

4
00:00:19,980 --> 00:00:22,189
How do you change a culture?

5
00:00:22,189 --> 00:00:27,390
This is from a paper by Steven Kerr from the
Academy Management Journal back in 1975 on

6
00:00:27,390 --> 00:00:30,890
“The folly of rewarding for A, while hoping
for B.”

7
00:00:30,890 --> 00:00:35,480
“Whether dealing with monkeys, rats, or
human beings, it is hardly controversial to

8
00:00:35,480 --> 00:00:40,700
state that most organisms seek information
concerning what activities are rewarded, and

9
00:00:40,700 --> 00:00:46,110
then seek to do (or at least pretend to do)
those things, often to the virtual exclusion

10
00:00:46,110 --> 00:00:48,770
of activities not rewarded.

11
00:00:48,770 --> 00:00:52,420
The extent to which this occurs, of course,
will depend on the perceived attractiveness

12
00:00:52,420 --> 00:00:57,200
of the reward offered, but neither operant
nor expectancy theorists would quarrel with

13
00:00:57,200 --> 00:00:59,670
the essence of this notion.”

14
00:00:59,670 --> 00:01:05,570
You cannot measure for A and hope you get
B. It’s not going to happen because you

15
00:01:05,570 --> 00:01:07,370
get what you measure.

16
00:01:07,370 --> 00:01:09,840
So, measure what matters.

17
00:01:09,840 --> 00:01:13,850
If you measure widget production, you will
get lots of widgets.

18
00:01:13,850 --> 00:01:17,659
If you measure lines of code, you will get
many lines of code.

19
00:01:17,659 --> 00:01:19,520
Semicolons all the way down.

20
00:01:19,520 --> 00:01:23,890
We used to measure lines of code by the thousands
of lines of code (KLOC).

21
00:01:23,890 --> 00:01:24,890
Is it good code?

22
00:01:24,890 --> 00:01:27,280
I do not know; I do not care.

23
00:01:27,280 --> 00:01:31,590
I am measured by how many lines of code I
write, so I am going to write verbose code.

24
00:01:31,590 --> 00:01:34,380
Remember, you get what you measure.

25
00:01:34,380 --> 00:01:39,200
If you measure people by ranking them against
each other, you will get antisocial behavior.

26
00:01:39,200 --> 00:01:41,790
A lot of companies do this—they rank people.

27
00:01:41,790 --> 00:01:43,440
So, let me get this straight.

28
00:01:43,440 --> 00:01:47,100
You want me to help my peer, but you are going
to rank us against each other?

29
00:01:47,100 --> 00:01:52,189
So, I help them so that they get a better
ranking than me, then they get the pay raise

30
00:01:52,189 --> 00:01:53,890
or the promotion that I want?

31
00:01:53,890 --> 00:01:55,690
Yeah, how does that work?

32
00:01:55,690 --> 00:02:00,189
Companies do this all the time, and their
management doesn’t seem to get it.

33
00:02:00,189 --> 00:02:01,619
You get what you measure.

34
00:02:01,619 --> 00:02:05,930
If you want people to be social, then you
must measure them on being social.

35
00:02:05,930 --> 00:02:11,420
You should measure developers by their social
interactions and sharing of code and knowledge.

36
00:02:11,420 --> 00:02:14,760
That is how you get social coders.

37
00:02:14,760 --> 00:02:18,950
Here are two metrics that I like to use to
measure social coders.

38
00:02:18,950 --> 00:02:21,700
Who is leveraging the code you are building?

39
00:02:21,700 --> 00:02:25,290
Are you building code that the rest of the
company or open-source community find valuable

40
00:02:25,290 --> 00:02:28,120
enough to reuse in their solutions?

41
00:02:28,120 --> 00:02:29,760
But that’s only half of the puzzle.

42
00:02:29,760 --> 00:02:34,540
That will get people thinking about how can
they make their code valuable to others.

43
00:02:34,540 --> 00:02:36,540
But you need the second metric.

44
00:02:36,540 --> 00:02:38,480
Whose code are you leveraging?

45
00:02:38,480 --> 00:02:43,540
Are you wasting all of my development dollars
reinventing wheels or are you leveraging the

46
00:02:43,540 --> 00:02:48,760
existing wheels and only building the bespoke
parts that don’t exist?

47
00:02:48,760 --> 00:02:54,269
Both of these metrics are needed because they
incentivize both sides to share their code

48
00:02:54,269 --> 00:02:58,690
and reuse each other’s code because… you
get what you measure.

49
00:02:58,690 --> 00:03:02,459
You need a social metric to get social behavior.

50
00:03:02,459 --> 00:03:05,790
DevOps is all about continuous improvement.

51
00:03:05,790 --> 00:03:09,349
That means that you must know where you are
coming from in order to measure if you are

52
00:03:09,349 --> 00:03:11,480
going in the right direction.

53
00:03:11,480 --> 00:03:13,400
It starts with taking a baseline.

54
00:03:13,400 --> 00:03:14,800
What do you want to improve?

55
00:03:14,800 --> 00:03:20,750
Maybe it currently requires six team members
10 hours to deploy a release of your product.

56
00:03:20,750 --> 00:03:22,950
Maybe it costs X dollars for every release.

57
00:03:22,950 --> 00:03:26,470
Whatever that measurement is, that’s the
baseline.

58
00:03:26,470 --> 00:03:28,550
Then you need to create a goal.

59
00:03:28,550 --> 00:03:33,700
Metric goals allow you to reason about these
numbers and judge the success of your progress.

60
00:03:33,700 --> 00:03:36,659
Perhaps you want to reduce deployment time
from 10 hours to 2 hours.

61
00:03:36,659 --> 00:03:39,069
That’s a very achievable goal.

62
00:03:39,069 --> 00:03:43,599
Your baseline determines that it takes 10
hours, so you aim for a threshold of fivefold

63
00:03:43,599 --> 00:03:45,560
improvement to 2 hours.

64
00:03:45,560 --> 00:03:50,090
Or maybe you want to go from needing 6 team
members to one team member.

65
00:03:50,090 --> 00:03:52,840
Or maybe you want to reduce the number of
defects found in production.

66
00:03:52,840 --> 00:03:58,480
Whatever it is, choose a goal and work on
one at a time.

67
00:03:58,480 --> 00:04:00,650
Then you judge the success of your process.

68
00:04:00,650 --> 00:04:03,129
Did you go from 10 hours to 2 hours?

69
00:04:03,129 --> 00:04:04,129
No?

70
00:04:04,129 --> 00:04:06,849
Try something different until you achieve
this measurement.

71
00:04:06,849 --> 00:04:08,909
Then you start working on the next goal.

72
00:04:08,909 --> 00:04:11,200
DevOps changes the objective.

73
00:04:11,200 --> 00:04:15,730
We used to measure mean time to failure where
you tried to make sure the server never went

74
00:04:15,730 --> 00:04:17,090
down.

75
00:04:17,090 --> 00:04:19,120
That is old-school thinking.

76
00:04:19,120 --> 00:04:22,289
We need to go from mean time to failure to
mean time to recovery.

77
00:04:22,289 --> 00:04:24,470
You anticipate that the server will go down.

78
00:04:24,470 --> 00:04:27,000
Just be sure you can recover quickly.

79
00:04:27,000 --> 00:04:32,050
If your applications are built as a collection
of microservices deployed in containers as

80
00:04:32,050 --> 00:04:36,310
multiple instances, you can recover quickly
by bringing up a new container.

81
00:04:36,310 --> 00:04:40,740
And your customer might never even know that
the service went down because there was no

82
00:04:40,740 --> 00:04:43,259
single point of failure.

83
00:04:43,259 --> 00:04:47,840
Containers may be continuously going up and
down, but if you can recover quickly by spinning

84
00:04:47,840 --> 00:04:50,120
up a new container, who cares it went down?

85
00:04:50,120 --> 00:04:51,400
The customer never noticed.

86
00:04:51,400 --> 00:04:56,199
It’s a whole new way of thinking about availability.

87
00:04:56,199 --> 00:05:01,410
In this video, you learned that you should
measure and reward what you want to improve.

88
00:05:01,410 --> 00:05:06,169
Measuring social metrics leads to improved
socialization and measuring DevOps metrics

89
00:05:06,169 --> 00:05:09,340
allows you to see progression toward goals.

90
00:05:09,340 --> 00:05:15,862
DevOps changes the objective of problem resolution
from failure prevention to failure recovery.