Skip to content

unixorn/so-you-want-to-onboard-a-devops-engineer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 

Repository files navigation

So you want to Onboard a DevOps/WebOps Engineer/Consultant

At the moment everyone seems to be so concerned with recruiting DevOps Engineers but I feel the process of on-boarding them is still very hit and miss especially in busy organisations.

Making it easy to get work done from day one

Reduce the time spent learning the peculiarities of complex environments rather than improving or iterating them, with a dedication to making every engineer effective.

Here are some easy tips on how to make your environment easy to onboard:

Have Up to date Documentation

It's important to have the following:

  • Regularly groom your documentation, old documents should be removed, outdated ones updated, if you touch it then update it
  • High-Level logical Architecture. e.g. ideally written in a Git friendly format:
  • An overview of the company’s infrastructure.
  • A intranet/wiki or enterprise social network to Learn about different teams, key members and pictures. On day one, one can easily get overwhelmed with lots of new names and faces.
  • Create a Glossary of Terms [e.g. a Minipedia] for describing any organisation specific acronyms or terms

Operations

  • Have your work structured so people can see what needs to be done i.e. Kanban board backlog or todo lists
  • Make it difficult to make mistakes e.g * protected masters, https://github.com/blog/2051-protected-branches-and-required-status-checks * Coding guidelines backed up by CI checks
  • Ensure your naming conventions makes sense, if something is called build_X and it actually deploys_X then change the name to deploys_X if possible to reduce confusion
  • Have all relevant accounts setup and ready
  • Nobody should be able to do something catastrophic to an environment unless they are dead set on doing so i.e.
    • Use safety harnesses
      • Make, Gradle or Rake commands to do the most common tasks safety without the worry of screwing up e.g. Ansible tasks:
- name: “Do something really Dangerous"
  command: /sbin/something —could —be —dangerous --if --run --it --in --prod
  when: testmode == “Off"

Processes

  • Have Shovel Ready work for new starters, create a backlog of work that be be easily done for new starters
  • Assign an on boarding buddy/mentor
  • Pair as soon and often as possible
  • When [and if] you do a Retro, then base on a known good baseline i.e.
    • If you are doing production deploys in the wee hours of the night and it goes successfully, remember this is not necessarily reflect a good deployment.
  • Put as much detail into tasks / stories as possible including assumptions, reference information, narrow acceptance criteria.
  • Avoid on boarding during crunch times (important or critical planned releases)
  • Ideally have your accounts linked with some central or shared directory e.g. Github/Google/LDAP so you don’t have to remember 101 user/password combinations
  • In your alerting system put context sensitive help that points to a helpful runbook
  • Configuration management test modes i.e. testing_mode on
  • Add or invite individual to any relevant Slack, IRC channels or Mailing lists.

Version control management

Development environments

Culture

  • Remember not everyone maybe as smart as you are, they may be missing
    • Context / Situational awareness (how did we get from here to there?)
    • Tribal Knowledge
    • Culture
  • What are the Preferred practices?
  • Listen to their point of view they bring a fresh pair of eyes to the situation

Useful links

Onboarding and Mentoring Apprentices with DevOps Culture - Mercedes Coyle @benzobot

See a problem here

See a problem? Need something clarified? Raise and Issue and I'll try and fix it.

Want to Contribute?

I'm open to well structured Pull Requests

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published