Stelligent

Stelligent U: Onboarding New Hires with a Standard Development Environment

Let’s imagine this scenario: Today is the first day of your new gig. With overwhelming nervous energy, you’re awake so early you wonder how people normally wake up at this hour, you even combed your hair today (maybe even showered?) and you’re ready to put your best foot forward and conquer the world. You have some calls introducing you to the company, and then you’re left alone and it’s time to set up your computer.

At Mphasis Stelligent we recently open sourced our DevOps training platform: Stelligent U. This is the same process that we use internally at Stelligent to ensure that our engineers are ready to work with clients and be an ambassador for the Stelligent. We have put a lot of thought and effort into our new-hire experience and care about the onboarding process

We have a section dedicated specifically to getting a development environment setup. It can be used in full or customized by your organization based on its policies. The module goes into detail on setting up AWS access keys for programmatic access. It also covers GitHub repositories and using AWS Cloud9 for a development environment.

Now, back to our scenario: You keep asking questions but after the seemingly fiftieth question, you start worrying that you’re taking up too much time. Is there someone else you could be bothering? Since you don’t have any contacts, your choices are:

After this internal debate, you may have a sour taste in your mouth about the new organization. You may also dream of your previous job where your entire development environment was set up perfectly. At your previous job you were at peak efficiency and knew how to get around like the back of your hand.

Types of Organizations

There seems to be three archetypes of organizations in regards to onboarding new employees and getting their local environments set up:

  1. Organizations that don’t have any documentation. The entire setup is completely tribal knowledge. You have to rely completely on someone else’s instructions that they come up with ad-hoc. You bug someone repeatedly until they run into an issue or they get tired of helping you and suddenly you’re someone else’s problem.
  2. Organizations that have everything perfectly documented. If something doesn’t work, it’s because you messed something up. It’s impossible for the documentation to be wrong or out-of-date. If you think something is incorrect, you will have to prove it to a hierarchy of co-workers and it will become an ordeal.
  3. Organizations that try to document the setup process. Things may be out-of-date or even incorrect with the documentation, and it’s not a surprise. Within this archetype, there are two subtypes:
    1. Where the documentation isn’t updated on a regular basis. You follow the documentation and frequently get stuck and have to ask questions. You encounter problems that require multiple engineers to troubleshoot. When the issue is resolved, you have no idea what caused the resolution. In order to document the resolution you have to either: document everything that you went through; undo everything and try to solve it again; or document the last thing you did. Generally, the resolution doesn’t get documented. The next new hire will be coming to you when they have the same issue and the process repeats.
    2. Or organizations that actively encourage new employees contributing to the documentation as they go through it. The process for contributing is documented and there is a review process in place. The documentation is iterative and improved for everyone. If a new employee is an expert in one area, they can introduce better explanations and processes for everyone. If they’re weak in another area, they can rely on the work of previous employees.

The documentation in our Stelligent U platform goes over the process of setting up a development environment. We make it a reliable and iterative process that evolves as we do and minimizes the amount of hand holding that is necessary to get a new engineer up and going. We document the process thoroughly but accept that it’s not perfect and encourage engineers to contribute as they are able.

Standard Development Environment

It’s important for organizations to have a standard development environment. It allows new hires to get up and going as quickly as possible. They don’t have to reach out to multiple sources, search for tribal knowledge or be stressed by debugging when they’re already stressed from starting a new position. The more documentation available to new hires the less hand-holding by another engineer they require. It also ensures that no step is left out which can lead to realizing you didn’t install some vital software that every other engineer is using down the road. It helps to speed up the setup process and make it as efficient as possible. We make it a goal at Stelligent to have every new hire contribute to the documentation as they go through it. This helps the documentation stay up-to-date, clarify confusing steps, add missing requirements and the employee can make an important contribution on their first day.

Contents of Development Environment

What should be included in a standard development environment?

Deviations from the Standard

Developers should have the ability to go outside the standard development environment. This deviation allows them to use tools that they are familiar and comfortable with. They may even find better tools as they become available.

This customization should be done at the engineers’ own peril however. If an issue comes up with their customized environment, their first troubleshooting step should be falling back to the standard environment. Otherwise, you have co-workers attempting to troubleshoot tools that they have never used before. This frequently requires the co-workers to essentially learn the tool themselves.

Your standard development environment should be dynamic. If all, or even the majority, of your engineers are making the same deviation then consider updating your default environment. The standard environment should be a building block and not a strict requirement.

Stelligent U

While the module in Stelligent U can be used as a starting point for your company’s development environment, it should change with your company. Not only do technologies evolve but new processes emerge. Your development environment should be a snapshot of your company’s policies at a certain time and not remain static.

We’ll be updating the module as our internal processes change, but the development environment won’t be a reflection of your company. If you come up with a better way of doing things, please submit a pull request so we can review the change and potentially make it available downstream. If your company is not using AWS, we want to hear from you! We would love to be able to offer development environments for different technologies.

A standard development environment helps reduce stress and provide an optimal onboarding process for not only your new engineers, but also your existing engineers. Without a standard development environment, they may be spending significant time and resources getting your new engineers up and going.

Stelligent Amazon Pollycast