Tuesday 15 September 2015

Interesting (ish) blog stats

You are probably a man
You are probably 30-40
You are probably in the USA
You are probably using Firefox
You are probably using Microsoft Windows (would have thought iOS)
You probably found the site via LinkedIn
You probably read an average of 4 blog posts
You probably spend 5-10 minutes on the site before moving off


The blog receives anywhere between 200-500 visits a day which is surprising (to me anyway!).  Especially as I don't post daily and secondly because it's largely a stream of consciousness rather than a well structured piece of journalism.


Not exactly Google scale but each one of those visitors comes to the blogs on purpose (via a Twitter, LinkedIn or devops.com referral).  No one comes via Google.  Excellent SEO :)


That's kind of interesting to me because that's 500 DevOps people (so nicely targeted) rather than 500 member of the general public that find the site by accident and much more than I would have thought.


Thankyou!

Monday 14 September 2015

DevOps is ALL about culture

Criticisms of defining DevOps with the word "culture"


I've heard a number of lazy criticisms of DevOps recently particularly where individuals talk about culture.

 
"It's fluffy"
"It's in-actionable"
"DevOps is just automation"
"Cultural change isn't relevant in a bank - its a term used by the Facebook's of this world"
 
I think part of this is the continuing confusion over what the term means, along with DevOps being used as an umbrella term for a dozen different other things (Continuous Delivery being the most prevalent).
 
I've talked at length about what DevOps is to me so I'm not going to cover that again.  However, I am going to talk about culture.
 
Let me start with a great definition of what culture is (it's not my quote but I wish it was) - apologies I forget the source.
 
Culture is what you do when there is no one around to tell you what to do
 
I think that's brilliantly simple and bang on the money.
 
DevOps is concerned with bringing two disparate groups together (unsurprisingly Developers and Operations) and encouraging empathy and collaboration between them.
 
Nothing in that talks about automation.
 
The companies with the right culture between Dev and Ops might land as automation as a solution to curing some of the challenges of unshared incentives and goals  However, it doesn't predicate it.
 
A strong DevOps culture might turn to Continuous Delivery as a process solution to meeting their demands for an increased pace of change.  But again it doesn't predicate it.
 
Its really important that people understand the differences and goals between DevOps, Agile, Continuous Delivery etc.
 
They all very closely relate and link but they are different things (take a look here for a glossary).
 
Back to the criticisms
 
Now lets have a look at some of those criticisms of using the word DevOps to represent culture...
 
"It's fluffy" - Culture is closely linked to human behavioural patterns and humans are very different.  So its a fairly loose term but does it make less important?  Not for me.  How your employees and colleagues behave and interact is THE most important thing in a company.  There are a squillion clichés out there about how your employees are the most valuable asset but its absolutely true.  Great people and accomplish great things.  Great technology is nothing without great people.
 
"It's in-actionable" - again this is a very lazy criticism.  Culture is actionable its just hard to change.  Changing the way you recruit, sitting people together in cross-functional teams, not micro-managing, encouraging lunch & learn presentations etc are all actionable ways of affecting culture.
 
Culture is hard to change though as we are dealing with people.  People have different reactions to change and are sometimes difficult to second guess.  It takes time and effort but that doesn't make it in-actionable.
 
"DevOps is just automation" - think I've done this to death but for clarity...the right culture could well lead towards automation as a solution.
 
"Cultural change isn't relevant in a bank - its a term used by the Facebook's of this world" - why is having high performing people in a high performing environment only relevant to the unicorns of this world (i.e. Netflix, Facebook etc)?  Its a daft comment in my eyes.
 
Besides who are the companies earning the big bucks these days?  Oh yeah its not the banks it's Facebook, Google etc...
 
 
Characteristics of a DevOps culture
 
Here are my top twelve characteristics of a DevOps culture.  How far are you off?
  1. Measure everything, always
  2. Individuals have empathy for the rest of the team (i.e. they don't pass the buck)
  3. Shared goals and incentives
  4. Don't reward the fire fighter, reward the fire preventer
  5. Reward innovation and challenging the status quo
  6. Don't punish people when they try something new but fail
  7. There is no IT and "business".  IT as much "the business" as the sales people.
  8. Seeking to break down silo's
  9. "It's not my job" doesn't exist
  10. "Its my server/code/network/database" doesn't exist
  11. Individuals are empowered to make decisions
  12. Top-up management rather than top-down
 
 

Wednesday 2 September 2015

I gotta (DevOps) feeling

I recently returned from Atlanta, US and A (as Borat would say), where I was helping set up a new Agile development team.

Actually, they are a little bit more than a dev team - they are one of these product teams I'm so keen on.  The teams owns the full lifecycle of change; development, testing, support, deployment etc all in one team.  The idea is that they start to make decisions as a team rather than individual silos and that they have empathy for the impact of their changes on others.  For example, if a change is poorly tested that is going to affect the velocity of the sprint due to rework.  Or if they develop a change that is difficult to deploy then the team are going to feel that pain.

I think of it as gradle to grave responsibility.  Your job doesn't stop at checkin.  Its only just begun.

Only once software has hit production does it realise any business benefit.

It's not the first time I've set up a team like this but I get the feeling that its going to be a fantastic success.

We are still in sprint zero so how can I make such a bold statement?  Largely its a gut feel but because I've done this a number of times I know what "good" feels like.

That's a bit of cop out though and not very interesting for anyone kind enough to read this blog.

Let's drill into a bit further and have a look why the ingredients of success are there:

Budget/investment in tooling
We are putting together a kick-ass CD pipeline with Bamboo, Jira, HipChat and Bitbucket all very neatly integrated.   Add into the mix Puppet, Urbancode Deploy and a load of other tooling and they have everything they need for a very fast pipeline.

What's more, there is budget for some consultancy if we get stuck or need some training.


Right people in the right team structure
We've been able to cherry pick some of the best people that already work for us and go to market for the rest. This means we can really closely get in the skillets we need "off the shelf" rather than having to train & influence a set of existing individuals.

When you employ people that already live Continuous Delivery, BDD, Git etc then your job is considerably easier.

We've really concentrated on the soft skills of the guys & gals that make up the team too.  Attitude for me is 99% of the job and technical skills 1%.  People with the right attitude will learn the tech.  The culture of the team is absolutely important.

Some banking type told me this week that culture is just fluffy and that its just about tooling and automation.  I bet you £10m that this team will be more successful than his.

Its all about culture.  Tooling and automation comes out of that culture.


Agile training
Teaching a development team the Scrum process is actually pretty simple.  What is often neglected though (I'm guilty of this one) is what it means to the business stakeholders outside of the core dev team.  In my experience, business users often want to assert some requirements and then walk away.  They also want the full product and the idea of Minimal Viable Product is a hard pill for them to swallow.

In an Enterprise you also get a million and one different stakeholders all fighting for their piece of the pie.  Having to prioritise the backlog is difficult when you have different stakeholders from different parts of the business and with a different management hierarchy.  You end up with stakeholders trying to reserve story points in a sprint and other work arounds.  This is a bad place to be in.

However, we've (the royal we) have spent considerable effort and time spending time with the business stakeholders training them in Scrum.  How does prioritisation work?  What are the sprint ceremonies?  Why should the Agile team be self managing etc etc

The fact that we spending the first month or two on technical setup (CI processes etc)and not on business change gives me confidence that the stakeholders "get it".

Aligned goals (minimal number of stakeholders)
Agile is easier the fewer people that are involved trying to pull the team in different directions.  We are lucky that we have a very senior stakeholder that is able to arbitrate and protect the team for the prioritisation noise and that has a clear direction of what they want to achieve.


Self organising
Agile teams need to be protected from outside interference so that they can concentrate on the task at hand.

Too often have I seen other interfere with the running of an agile team and decisions made on their behalf.

Go away!  Leave them alone!  The Agile team best knows how to organise themselves for optimum performance.

I see really good signs that the team aren't being micro-managed and are protected from the scary, outside world with a good Product Owner.

As long as the results are there, the stakeholder don't seem to care too much about how those results are achieved.  That seems simple but too often people hang on too tightly thinking that it will give them control and will help ensure success.  Its actually the opposite; don't strangle the team, let them breathe and hey will get you where you want to go.

Again this is aided but not having too many cooks (stakeholders).