Category Archives: business

How GitHub Uses GitHub to Build GitHub

I wrote a post a while back linking to an interesting video about the culture at GitHub, entitled: Optimizing for Happiness – why you want to go work at Github!.

Since then, i’ve watched a few other interesting talks about the culture and how they work at GitHub and two in particular are worth noting here.

Firstly, Zach Holman, one of the early “Githubbers” recently gave a talk about “How GitHub Uses GitHub to Build GitHub“:

Build features fast. Ship them. That’s what we try to do at GitHub. Our process is the anti-process: what’s the minimum overhead we can put up with to keep our code quality high, all while building features as quickly as possible? It’s not just features, either: faster development means happier developers. This talk will dive into how GitHub uses GitHub: we’ll look at some of our actual Pull Requests, the internal apps we build on our own API, how we plan new features, our Git branching strategies, and lots of tricks we use to get everyone – developers, designers, and everyone else involved with new code. We think it’s a great way to work, and we think it’ll work in your company, too.

You can watch the video here and also check out a series of blog posts he wrote on the same subject.

The second talk i’d recommend I had the pleasure of seeing live at a local conference i’ve attend (DIBI Conference). It’s by Corey Donohoe (@atmos):

The talk will cover the metrics driven approach GitHub uses to analyze performance and growth of our product. It will cover deployment strategies for rapid customer feedback as well as configuration management to ensure reproducibility.

You can watch the video here.

Both are great talks and well worth a watch.

Optimizing for Happiness – why you want to go work at Github!

If you are a manager or high up in any company then I highly recommend you watch this video of a recent talk by Tom Preston-Werner, co-founder of Github. It’s around an hour in length but I urge you to take the time to watch it – it’s packed full of great advice all the way through.

The way traditional businesses approach the management and organization of creative, intellectual workers is wrong. By throwing away everything that blocks productivity (meetings, deadlines, managers, titles, strict vacation policies, etc) and treating your employees as the responsible adults that they are, huge amounts of potential can be unlocked and employee happiness and retention can be at unprecedented highs. At GitHub we’ve embraced a philosophy that gets things done and strips away policy and procedure in favor of smart decision making and personal responsibility. Come see how we make it work and how you can reap the same benefits in your own company.

The video goes into both how they recruit and how they run a profitable and productive company.

At GitHub we don’t have meetings. We don’t have set work hours or even work days. We don’t keep track of vacation or sick days. We don’t have managers or an org chart. We don’t have a dress code. We don’t have expense account audits or an HR department.

We pay our employees well and give them the tools they need to do their jobs as efficiently as possible. We let them decide what they want to work on and what features are best for the customers. We pay for them to attend any conference at which they’ve gotten a speaking slot. If it’s in a foreign country, we pay for another employee to accompany them because traveling alone sucks. We show them the profit and loss statements every month. We expect them to be responsible.

We make decisions based on the merits of the arguments, not on who is making them. We strive every day to be better than we were the day before.

We hold our board meetings in bars.

We do all this because we’re optimizing for happiness, and because there’s nobody to tell us that we can’t.

You can watch the video here.

Tell me now that you don’t want to work at Github?

Enter Stage Right: DevOps

I have worked in environments where reacting was the "normal" way to approach issues and being proactive was just a waste of time... *facepalm*
The seemingly simple idea of changing the workplace culture from reactive to proactive was hard to pitch, let alone implement on my own.

18 months ago, I knew there was a better way of doing things and I was determined to find something. I had been watching developers implement Agile Development processes with great envy and I was starting to see concepts that would have great outcomes if adopted in a traditional operations environment.

Finally having something tangible to explore I started looking into Agile Operations, which led me DevOps. Lurking in the shadows for a while, I digested as much as I could of the DevOps movement. I thought it was  time to talk to some of the developers and get them on board.

6 months on and here we are...

So what is DevOps to me?

DevOps is a way of thinking and acting. It is not a toolkit, but is something we all can practice everyday.
Adam Jacob is spot on with his Velocity 2010 talk, DevOps is an inclusive movement and I believe this includes developers, operations and management.

Business Problem
Although it has stemmed from the trenches of development and operations theatres, DevOps is very much a business problem.
It needs to be supported by the business to be successful, otherwise we end up with "Black Ops" style DevOps and no one benefits.

Stakeholders may point out that DevOps addresses some of these business problems with technical solutions, but DevOps is still a business problem.

Not A Role
You can't be a DevOp, but you can practice DevOps in your role.

In contrast, I believe that in the next couple of years we will see businesses creating roles that were traditionally filled by either developers or system administrators. These roles will filled be the masters of DevOps-fu, but not a "DevOp".

Catalyst For Change
The IT industry is due for a much needed shake up and DevOps has provided a catalyst for this change.

Embrace change, don't fight it.

DevOps has presented an opportunity for IT professionals to identify the fundamental issues in the way business is run today and change them.
We need to address this by becoming more adaptable and identifying business needs.

Ask yourself, is this providing value to the business?

CAMS to me is the "Howto guide" of DevOps.
Damon and John have hit the nail on the head with this one:
  • Culture
  • Automation
  • Metrics
  • Sharing
By implementing these four areas, regardless if you are trying to achieve a DevOps nirvana, you will see a greater response to change within the organisation.

I have found CAMS to be the easiest way to for people new to the DevOps scene to understand what it's all about.

So What Is Next?
Spread the word! Get DevOps out there.

The response to DevOps from sysadmins has been amazing, but we need to get other key influencers from within business on board.
We need to start promoting/evangelising DevOps to developers, managers, directors, VPs and C-level executives too.

  • Get together and piggy back a local developer user group meet up (Java, Ruby, Python etc.)
  • Talk to developers at work and ask them what you can do to help.
  • Gatecrash a user group that is traditionally full of operations folk (Linux, Puppet, Chef etc.)
  • Ask your operations team what you could do to make their lives easier.
  • Run a internal DevOps meet up at your workplace. Invite your manager.
  • Find a DevOps meet up in your area.

Further Reading
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr - John Allspaw and Paul Hammond.
Agile Web Operations - Matthias Marschall and Dan Ackerson
What DevOps Means To Me - James Turnbull
What Is DevOps? - Damon Edwards
No Operations Team Left Behind - Where DevOps Misses The Mark - John Vincent

If any of the links are broken, please contact me.