Tag: HR

  • Things We Should Acknowledge, Part One: Hiring Sucks

    Things We Should Acknowledge, Part One: Hiring Sucks

    I was talking to some friends about hiring the other day, and a common thread seems to run through all of their hiring activities: It is hard to find “good” DevOps people.

    This thought got me thinking that we assume a lot in DevOps, and that we should stop assuming and openly discuss those things. For all the streamlining and shift left it can do, DevOps could use some streamlining and shifting left, itself. So, this is the first of what I think will grow into a series of blogs about DevOps assumptions we make and openly discuss them. At least if we acknowledge our assumptions and the realities that we try to ignore, we can adjust.

    Today’s blog is about finding “good” people. I put good in scare quotes because while there are common threads, the definition of good is definitely dependent upon the organization and even on the team. If a team needs someone with Azure chops to rev up their work and help the rest of the team become more proficient in Azure, then a GCE expert, no matter how great they are, is not “good.” This is true of every field of endeavor, but we in DevOps often pretend it is not true for us. Particularly the pundit class, but management is also severely guilty of “It’s DevOps, everyone is everything,” which any active practitioner will tell you is not true. There are still specialties, we just hand wave and blather about “It’s all DevOps.”

    Unfortunately, there is often a disconnect here. DevOps roles are not well-filled by filtering on technology and they’re not well-filled by just using “DevOps” in the job title. That leaves HR struggling to find candidates to interview that techs will find appealing. How does HR filter on “can learn on the job, and do so rapidly”? Simply put, they don’t. That’s what interviews are for. But if HR filters on “must know Jenkins,” that is diametrically opposed to “must learn on the job.” Which is it? Must know certain skills and have X years of experience in them, or must be able to pick up new things on the fly? Because filtering on already having the skill would seem to imply you don’t really care about the ability to learn fast, would it not? Because there are great fast learners that have never worked in a Jenkins shop, but they could, if they’re truly fast learners, pick up Jenkins.

    So ‘good’ is relative, but beyond that, what I hinted at above is also impactful. We are–nearly all of us–on-the-job trainees. There are certifications and universities are starting to catch up, but most of us? We learned either on the job or on our own time, trying to do some pet project. This, too, hurts HR filtering. Demanding a four-year degree is something that HR can measure. Demanding on-the-job training? Not so much. So, if HR gets filters they can measure, they will not be filtering based upon reality.

    This is how we get things like, “Must have 30 years of Rust experience,” even though Rust is 20 years old if you count from inception. Far less if you count from the start of its usable life. HR is not an efficient or effective filtering system for DevOps, and we are somewhat flailing. Until we have improved systems and processes, I would suggest having HR send too many applicants through, and DevOps engineers or managers–those who will have to work with (and count on) those new hires–do more of the filtering than normal. There are honestly people out there with no relevant degree and no certifications that are better than most of us. Project work is the only way to gauge that measure, but project work cannot be effectively evaluated by HR because they’re not technical specialists. I know—the org is hiring people because they need help, so offloading some of HR’s duties on the team that needs the help is not a great solution. It is better than going through an entire outreach/interview/hire process only to settle for ‘good enough’ (or, worse, ‘not good enough’) because the process is flawed based upon the current environment.

    This brings us to the scenario we see today–where more technical people have hit the market than in recent history, but hiring managers are still struggling. Have the DevOps team take a more active role in the process until new standards can be settled on that suit the needs of your organization. You’ve worked hard to make an astounding infrastructure and build apps that can handle the needs of your organization, make sure the people you put next to you are the best you can find and the organization can afford.

    And keep rocking it. Teach them about the systems you shepherd and learn from them what they bring to the team.

  • DevOps Hiring: What Do You Need?

    DevOps Hiring: What Do You Need?

    IT has long had a problem with hiring. I’m not certain where it started; most of us blame HR, and that’s probably incorrect, but gives us someone to blame. It’s that we post jobs with insane requirements. Sometimes this is done to keep the applicant pool down, but most of the time it is a simple case of throwing in the kitchen sink. We have laughed at advertisements that wanted applicants to have more years in a given technology than the technology has existed. The laughter was because someone quipped, “So what we really want is only liars to apply.”

    But it doesn’t stop there. How many advertisements have you seen for a person to join an already good-sized team of developers, and the requirements include experience in every single language/tool the person might encounter—and sometimes ones the organization might use in a year or so? And DevOps, with its increase in toolsets and broadening complexity, make this problem worse.

    If you want good DevOps team members, you have to focus your search. We’d all love to have unicorns who could do it all on day one, but those people don’t really exist. Even with experience in every single tool in your chain, they still have to learn apps and environment. Try to craft job requirements that focus on the couple of core tools, and then filter for ability to learn and adapt. Because the only certainty about IT at this point is that technology will be shifting, so focusing on the tools you are using today is pretty limited.

    Role plays a part in this also. While we like to pretend DevOps is one thing, it is a rare application or portfolio for which there are not specializations on the team. If you are looking for someone who will lean more toward the DEVops side, do you really need them to be operational wizards with three years each in storage, networking and container management? Conversely, if you are hiring someone more for the devOPS side, do you need them to have expansive experience in Javascript, or do they just need to know who to call if it gets beyond their ability?

    Maybe your company is one of those shops where everyone on team X is expected to be an expert at everything. Kudos for you, but there aren’t a ton of those people out there. There is a different mindset to DEVops versus devOPS, and even if unofficial, most employees lean one way or have a more proficient side. If a candidate fits the bill in an area you are weakest, consider training them on the job in the area you are strongest, rather than waiting for who knows how long for the perfect person to fill the open req.

    And we still have a need for hardware specialists. I’ve said it before, but do you want your EMC (or Cisco or whomever) person to be a generalist, or do you want that person to make the infrastructure that underlies a huge chunk of your applications hum? Hire specialists for specialized skills, hire broad knowledge for app-spanning needs.

    It’s been a problem for years, and only you can fix it. Call out overambitious job postings and make managers ponder what they’re actually looking for. You know you have a need, you know what the position will do. Help hone down postings so that they fit the actual requirements, not some blue-sky version of potential requirements.

    And get the best people for the job. After all, you are going to have to work with them.

    — Don Macvittie

  • Why PR, Legal and HR Matter for Continuous Delivery

    Why PR, Legal and HR Matter for Continuous Delivery

    By most definitions, DevOps involves making developers and IT Ops teams work better together. But integrating other parts of an organization, such as legal and public relations, into DevOps is also important. Here’s why.

    DevOps has become popular because it helps to speed the delivery of software. The goal is to reach continuous delivery, which means code is changed, tested, staged and delivered to users on a (nearly) continuous basis.

    If you think only from a technical perspective, then getting to continuous delivery of software involves only technical people. Developers, IT Ops admins and software testers are all you need.

    DevOps in the Big Picture

    Yet, to deliver software continuously on a reliable basis, you need to think beyond just technical processes and personnel. Effective DevOps workflows have to involve all of the other parts of the organization that play a role in creating software, delivering it to users and maintaining it once it is in production.

    For example, PR teams need to be plugged into the software delivery chain so they know when new features are coming down the pipeline and can prepare to promote them. Legal professionals should play a role as well, since they’ll know when code changes require tweaks to licensing, compliance procedures and so on.

    The list can go on. In most organizations, human resources has a role to play in DevOps, since personnel changes can affect the continuous delivery chain. Supply chain managers should be involved, too, since they have a hand in provisioning the infrastructure on which DevOps teams rely.

    To be sure, these various non-technical teams don’t need to be as plugged into the DevOps workflow as deeply developers and admins do. Code can be written and tested without their perpetual involvement. Still, at a minimum, all parts of the organization should at least be aware of the state of the delivery chain. Otherwise, visibility and communication break down.

    Taking this big-picture approach to DevOps is important because ultimately, despite the relatively narrow purview implied by the term DevOps itself, the value of DevOps lies in adding efficiency and promoting better communication across the entire organization in ways that optimize software delivery.

    So, if you want to make the most of DevOps, start thinking beyond just Dev and Ops.

    — Chris Tozzi