We are a small software company and in going through a technical evaluation recently, it was brought to our attention that we lacked an "onboarding" process for new developers. "Onboarding" is exec-speak for a process for getting new hires up to speed. We do have a process which is:
- Get the new hire setup on their machine including access to domain, source control, issue tracking etc. While the installation of software onto their machine is done before they arrive, some time is needed to answer questions like "Where is your SCM?" and "How do I log into it?". For example, while the source client is already installed, new developers aren't going to know what program we use or perhaps even be familiar with that client. They know SCM in general or they wouldn't be there but not necessarily our client. The same is true with our issue tracker.
- Spend an hour or so going over what the company does, how our solutions solve problems for our clients and general system architecture.
- Introduce them to other developers.
- Let them spend the rest of the day reviewing the architecture and source for one of our products. That means pulling down the code, compiling and running it and/or looking at database diagrams.
- The next day, give them some specific project on which to work along with introducing them to the stakeholders and other team members on the same product.
My main questions are:
- If this process is insufficient, what is it missing?
- Is there a recommended onboarding process for developers? It would help to know how do other software companies do their onboarding (or how to go find out they do it).
Lastly, and I realize this may be considered a separate question, how should that process be documented?