Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
haeuptle
Advisor
Advisor
The main intention of this blog is to motivate the importance of onboarding new hires and colleagues changing roles or technology stacks. And show how to leverage GitHub Issue Templates for the onboarding process and GitHub for collaborating on improving the onboarding content.

Paying careful attention to the onboarding of new software engineers can pay huge dividends, and is a key to transforming new software engineers into strong, effective contributors. Besides positive practices (e.g. Test Driven Development or Clean Code) are much easier to establish early on, not once the software engineer has settled into a routine. Therefore, this document is a proposal to how to structure the onboarding process. The goal is to have very hands-on onboarding in order to make the new software engineer confident to make changes. There is simply no better way to learn than by diving into the code.

Why is Onboarding of Software Engineers Important?


Onboarding is the process of integrating new hires into an organization, from completing paperwork and learning values to gaining familiarity with the tech stack and partnering with a mentor. Onboarding is more than just a formality; it is a crucial step to ensure the long-term success and retention of software engineers.

Onboarding is incredibly important for quickly making new software engineers productive and making them part of the team and company culture. It is also important for engineers changing roles or stack, as they need to learn new technologies and processes.

Software engineers are in high demand and have high expectations from their employers. They want to work on meaningful projects, use the latest technologies, and contribute to the team and the organization as soon as possible. A poor onboarding experience can lead to frustration, dissatisfaction, and turnover.

On the other hand, a well-designed onboarding process can help software engineers:

  • Feel welcomed and valued by the organization

  • Understand the vision, mission, and goals of the organization

  • Learn the culture, norms, and expectations of the team

  • Build trust and rapport with their colleagues and managers

  • Acquire the necessary skills and knowledge to perform their role

  • Navigate the tools, systems, and processes of the organization

  • Deliver value and impact to the customers and stakeholders


According to a study by Glassdoor, a strong onboarding process can improve new hire retention by 82% and productivity by 70%. Another study by BambooHR found that employees who had effective onboarding were 18 times more likely to feel committed to their organization.

How to Onboard Software Engineers Effectively


There is no one-size-fits-all approach to onboarding software engineers, as different roles, teams, and organizations may have different needs, preferences, architectures and technology stacks. However, some general best practices include:

  • Start the onboarding process before the first day of work, by creating an onboarding issue or document with tasks for the hiring manager, the mentor. Communicate with the new hire via email or phone to set expectations, answer questions, and schedule a welcome meeting.

  • Pick the right onboarding mentor for the new hire, who can act as a guide and friend throughout the onboarding journey². The mentor should be someone who is experienced, knowledgeable, friendly, and available to support the new hire.

  • Create a checklist of tasks for the new hire to complete during the first week, month, and quarter. The tasks should cover various aspects of onboarding, such as getting to know the company, the customers, the product, the team, and the codebase. The tasks should also indicate which ones are important and which ones are nice-to-know.

  • Provide access to the learning resources that the new hire needs to get up to speed with the tech stack. This may include documentation, tutorials, videos, courses, books, blogs, podcasts, etc. Encourage the new hire to ask questions and seek feedback whenever they need help.

  • Consider pair programming as a way to help the new hire learn from their peers. Pair programming can also foster collaboration, communication, and knowledge sharing among team members.

  • Schedule regular coffee chats or check-ins with the new hire to monitor their progress, address their concerns, and provide feedback. Coffee chats can also help build rapport and trust between the new hire and their manager or mentor. Coffee chats can be informal or formal, depending on the preference of both parties.

  • Tailor the onboarding experience to the role and level of the new hire. For example, experienced software engineers may have different expectations and needs than junior software engineers. Experienced software engineers may want more autonomy, responsibility, and challenge in their work. They may also want to contribute to strategic decisions and innovations.

  • Ship some code in a week or less. This can help boost the confidence and motivation of the new hire. It can also demonstrate their skills and value to the team and the organization. The code should be something simple but meaningful, such as a bug fix or a feature enhancement.


The Importance of Hands-On Onboarding of Software Engineers


The goal is to have very hands-on onboarding in order to make the new software engineer confident to make changes. There is simply no better way to learn than by diving into the code. To achieve this goal, the following practices are proposed:

  • Adding Value On Day One

    • All new software engineers should change something in the productive code within the first weeks. It could be a tiny feature, a fix to a bug or other changes. This rule has several reasons:

      • It provides confidence to the developer on changing code.

      • Demonstrate the lifecycle of a change from development to production.



    • Well tested code helps a great deal as the engineer will get to know much quicker if his changes create unwanted side effects. It is always nice to have a playground for coding experiments.



  • The Starter Project

    • After a new software engineer has been part of the training, exposed to an organization’s principles, tools, and processes, there is often still a huge gap between the learned and putting those learnings into practice. Depending on the complexity of the actual product. It can make sense to have a dedicated started project in a safer environment, which allows more experiments and therefore faster learning. Therefore every new hire should get a starter project (e.g. to build a small app or refactoring a small legacy application). The starter project should be chosen in a way that it allows transferring the learned skills. However, because the scope is much smaller and the environment more controlled, the engineer can learn the concepts more easily, without distraction.




Why the mentor is important for the onboarding process?


Mentoring is an important aspect of onboarding for software engineers. It helps new hires develop and become more competent in their roles faster, gives them a support system that is essential for pursuing future growth opportunities, and helps smooth their transition into an organization. Mentors can help junior software engineers learn the ropes, explore new ideas, and define and reach their goals. Assigning another member of the team the role of mentor to guide each new colleague through the onboarding process can be beneficial¹³.

There are other benefits of an onboarding mentoring program such as quicker alignment to company culture, values, vision, and mission; help navigate the written and unwritten rules helping the employee feel more connected with their team; understand performance expectations and monitor progress towards goals; connect new employees to staff with similar roles, professional trajectories, or institutional knowledge.

Why Checklists are helpful for the onboarding process?


During onboarding, employees have to absorb a vast amount of information in a short time; thus, it can be overwhelming. Here, a well-structured checklist serves as a fundamental tool to simplify complex procedures. It breaks down each part of the process into manageable tasks. With a checklist, new hires do not have to remember everything instantly; they can refer to the list, ensuring they cover all necessary areas.

In addition to providing comprehensibility, checklists standardize onboarding, ensuring every new hire undergoes a similar experience. Also, a standardized approach allows for the identification and rectification of loopholes within the process. Consequently, the organization can improve and evolve its onboarding for better results over time.

Having a checklist curated by experts of the company makes it easier to not forget about activities and show the new hires where to best find further information, recommended trainings, tutorials, guides, communities and documentation.

Further, integrating checklists into onboarding can foster transparency and efficiency. Employees can see their progress through the onboarding process, knowing exactly what they've completed and what's next. This sense of progression can be motivating, providing a clear direction and purpose. Moreover, checklists significantly reduce time spent on task repetition or unnecessary tasks, enhancing operational efficiency.

An onboarding process without a checklist is like a ship without a compass. It not only delegates tasks systematically but also ensures consistency across all levels. Through promoting transparency, ensuring compliance, enhancing efficiency, and reducing stress, checklists play an invaluable role in streamlining the onboarding process. As a result, both the new hire and the organization can flourish, setting the stage for a productive and mutually beneficial relationship.

Utilizing GitHub Issue Templates for Onboarding Process


GitHub issue templates are powerful tools in providing a standardized format for reporting bugs, suggesting new features or tasks, or proposing enhancements to code. However, their usage extends far beyond code contribution; they can be effectively utilized as part of the onboarding process for new team members. This chapter will explore how to use GitHub issue templates to make the process of employee onboarding smoother and more organized.

Understanding GitHub Issue Templates


Before diving into how to use GitHub issue templates for onboarding, let's first understand their basic concept. Essentially, an issue template is a pre-configured set of fields designed to gather specific information. They serve the purpose of making sure all necessary data is included when an issue is created, thus simplifying the management of said issue.

Creation of GitHub Issue Templates for Onboarding


To start using GitHub issue templates for onboarding, the first step is to create a template tailored specifically for that purpose. A new employee onboarding issue template might include fields like employees' details, tasks they need to complete in their first week, instructions on how to set up their work environment, and people they need to meet. It's crucial to consider what pieces of information are essential when new employees join and incorporate them into your template.

Benefits of GitHub Issue Templates for Onboarding


GitHub issue templates provide great support in optimizing the onboarding process. Templates can help make the process clear and straightforward for the new employee while ensuring no vital steps are missed. It also helps the organization keep track of the new hire's progress during their onboarding period. Additionally, using GitHub templates, all information is stored and processed in a familiar space: the GitHub platform, which should be well known by technical hires.

Where can I find examples for Onboarding Checklists based on GitHub Issue Templates?


The following templates can be used as a starting point for your own onboarding checklist. You can use them as they are or adjust them to your needs. The templates are not complete and will be extended over time. The intention of the templates is to show how to use GitHub Issue Templates for onboarding purposes.

ABAP


If you want to become an ABAP engineer or want to mentor someone in becoming an ABAP engineer, you can use the following templates as a starting point and adjust them to your needs.

ABAP Template Checklist for Onboarding new ABAP software engineers

SAPUI5


If you want to become an SAPUI5 engineer or want to mentor someone in becoming an SAPUI5 engineer, you can use the following templates as a starting point and adjust them to your needs.

SAPUI5 Template Checklist for Onboarding new SAPUI5 software engineers

Java


If you want to become an Java engineer or want to mentor someone in becoming an Java engineer, you can use the following templates as a starting point and adjust them to your needs.

Java Template Checklist for Onboarding new software engineers

JavaScript and node.js


If you want to become a node.js engineer or want to mentor someone in becoming an node.js engineer, you can use the following templates as a starting point and adjust them to your needs.

Node.js Template Checklist for Onboarding new software engineers

How to use the GitHub Issue Templates for Onboarding a Software Engineer?


In the templates can be used in different ways. In the following, we describe an example process how it could be used. The steps for onboarding as a new engineer are described in the above listed issue templates. To work on your issue, you could copy the content from the templates to your private repository, create an issue and invite your manager and mentor for having conversations on your onboarding process. To ensure a successful completion of the onboarding issue, it is important that all tasks are checked off, whether the task is applicable to the onboarding team member or not. Checking the box indicates one of the following:

  • I have completed this t ask

  • I have checked and this task is not applicable to me Please reach out to your buddy, mentor, other team members or manager if you need help to complete a task.


An example for onboarding issue can be found here

What is relevant for your onboarding depends on your prior experience, your role and the context you are working in. So it is recommended to have a discussion with your manager/mentor and choose the relevant bullet points from the different templates. Although it is recommended to not skip things too quickly - in doubt rather take the time to learn even if you already know some basics.

 


Example Onboarding Issue



Conclusion


The onboarding process is a critical part of the employee experience. It can make or break the relationship between the new hire and the organization. A well-designed onboarding process can help software engineers feel welcomed, valued, and productive from day one. It can also help them build trust and rapport with their colleagues and managers. On the other hand, a poorly designed onboarding process can lead to frustration, dissatisfaction, and turnover. The mentioned GitHub issue templates can help to improve the onboarding process for software engineers.
6 Comments
olegbash599
Active Participant
0 Kudos

Nice recommendations! Thank you!

To create good checkList I would recommend to read the book: https://en.wikipedia.org/wiki/The_Checklist_Manifesto (The Checklist Manifesto: How to Get Things Right  by Atul Gawande)

haeuptle
Advisor
Advisor
0 Kudos
Hi Oleg, thanks for the feedback. I have added the book to my reading list
vonglan
Active Participant
0 Kudos
Good concept.

The link to the template was not correct, but I found it here: https://github.com/SoftwareEngineeringEcosystem/Blog/blob/main/.github/ISSUE_TEMPLATE/abap-developer...
haeuptle
Advisor
Advisor
0 Kudos
Hi Edo, thanks, I have updated the blog.
alejiandro_sensejl
Active Participant
0 Kudos
Very helpful, we will use that - thank you!
haeuptle
Advisor
Advisor
0 Kudos
Thanks for the feedback!