First things first. This is not meant to be a beef against developers. But let’s not ignore the elephant in the living room that is the divide between brilliant code writers and the risk averse operations team.
It is almost by default that developers are
disruptive with their creative coding while the guys in operations,
those who deploy the code, constantly cross their fingers in the hope
that application changes won’t tilt the machine. And when you’re woken
up at 4am to deal with an outage or your sluggish site is costing
millions in losses, the blame game and finger-pointing starts.
If you manage a startup you may be faced with this problem all the time. You know your business, you know what you're trying to build but how do you find people who can help you build and execute your ideas with minimal risk?
Ideally, you want people who can bridge the
mentality divide between the programmers eager to see feature changes,
the business units pushing for them, and the operations team resistant
to changes for the sake of stability.
DevOps - Why can’t we all live together?
The DevOps movement is an attempt to bring all these folks together. For instance by providing insight to developers about the implications of their work on performance and availability, they can better balance the onslaught of feature demands from users with the business’ need for up-time.
Operations teams can work to expose operational data to the development teams. Metrics collection and analytics aren’t just for the business units anymore. Employing tools like Cacti, OpenNMS or Ganglia allow you to communicate with developers and other business units alike about up-time, and the impact of deployments on site availability, and ultimately the bottom-line.
Above all, business
goals and customer needs should underscore everything the engineering
team is doing. Bringing all three to the table makes for a more cohesive
approach that will carry everyone forward.
How to spot a DevOps person - Finding the sweet spot
DevOps person is someone with the right combination of skill, knowledge
and experience that places him or her in the sweet spot where quality
assurance, programming skills and operations overlap.
There are also a few distinguishing characteristics that will help identify such an ideal candidate.
Look for good writers and communicators
Imagine the beads of sweat forming when a developer tells you: “We’ve made the changes. Nothing is broken yet.”
This is like stepping on glass because it implies something will actually break. The point is savvy developers should be aware that the majority of people do not think along the same lines as they do.
Assuming your candidate has all the required technical skills, a programmer with writing skills tends to be better at articulating ideas and methods coherently. He or she would also be less resistant to documentation and be able to step back somewhat from the itty-bitty details. Communication, afterall is at the core of the DevOps culture where different sides attempt to understand each other.
Pick good listeners
Even rarer than good writers are good listeners. Being able to hear what someone else is saying, and reiterate it in their own terms is a key important quality. In our example, the good listener would probably have translated ‘nothing is broken yet’ into “the app is running smoothly. We didn’t encounter any interruptions but we’ll keep watch on things.”
Lean towards pragmatists and avoid the fanatics
We all want people who are passionate about something but when that passion morphs into fanaticism it can be unpleasant. Fanaticism suggests a lower propensity to compromise. Such characters are very difficult to negotiate with. Analogously in tech, we see people latch on to a certain standard with unquestioning loyalty that's bafflingly irrational. Someone who has had their hand in many different technologies is more likely to be technology agnostic, or rather, pragmatic. They'll also have a broader perspective, and are able to anticipate how those technologies will play together. Furthermore a good sense of where things will run smoothly and where there will be friction is vital.
Pay attention to extra-curricular activities
Look at technology interests, areas of study, or even outside interests. Does the person have varying interests and can converse about different topics? Do they tell stories, and make analogies from other disciplines to make a point? Do they communicate in jargon-free language you can understand?
Sniff out those hungry for success
As with any role, finding someone who is passionate and driven is important. Are they on-time for appointments? Did they email you the information you requested? Are they prepared and communicative? Are they eager to get started?
Hiring usually focuses on skills and very well-crafted
resumés but why do you still find some duds now and then? By emphasizing
personality, work ethics, and the ability to work with others, you can
sift through the deluge of candidates and separate the wheat from the
chaff for qualities that will surely serve your business better in the