Are you switching your workplace or want to become active in an open-source team? Joining a new (Android) project can be a scary and stressful time … but it doesn't have to be! If you prepare and approach this challenge in a structured way, you can fluently onboard and quickly become a productive team member.
Let's explore five tips that are important in our experience.
Tip 1: Get the Code and Start Compiling Right Away
Many corporate and project onboarding processes start with new developers being overloaded with information: look at the 250 pages documentation, follow the style guide, read handbooks and inform yourself about the project goals. But let's be honest, how much do you fully understand and retain in your memory?
It's easier for us developers when we connect theoretical points in external documents and link it to specific source code. Thus, immediately get access to the source code and make sure that you're able to compile it. If you have problems with the setup, ask a colleague to get you started right away.
Once you can compile the product, start browsing the code. The goal is not to nit pick and find weaknesses in the implementation, but rather to get an overview of the components and general structure. If there are elements you don't understand (and there will be), move on to tip 2.
Tip 2: Find a Mentor
Whenever you join a new project, your detail knowledge of it will likely be quite small even if you switch within the same company. But you have an advantage: team members who worked with the project for a long time and they have internalized a lot of knowledge. Use the first few weeks to draw upon that knowledge as much as possible.
This works best if you can find a "mentor" in the sense of someone who first, is knowledgable about the code base and the project, and second, is willing to take the time to answer and explain every question in necessary detail. They'll be there if you get stuck and pull you out. This is not like a car drive, don't be afraid of asking for directions 🤨
Note that this does not need to be someone with superior programming expertise or will necessarily become your long-term programming mentor; any peer who fulfills the two requirements above and has some broad perspective of the project is sufficient.
If possible, it's also great if you can persuade your mentor to assist in future programming tasks, for example by giving feedback on your implementation in a pull request or exploring the code base in a pair programming session. Don't be afraid of asking for too much time of a senior member, they'll be happy to help you get started, because once you're up to speed they can turn it around and ask for your advise!
Tip 3: Don't Criticize, Ask Questions
One fascinating aspect of programming is that there is not one solution, but many, many ways of implementing a particular problem. Keep this in mind in your first few days! After you start exploring the code, you'll probably stumble onto something you've implemented before and in a different way. When you ask your mentor about this issue, and you definitely should, try not to be a smart ass and point that you know a much better way!
Instead, consider the fact that your new colleagues may have consciously decided to go with a different solution due to circumstances you're not aware of yet. Thus, you will better integrate into your new team if you ask (neutral) questions: Why did you use the observation pattern for feature X?
Tip 4: Tackle a Specific Task
Most team leaders are aware of the fact that new developers will need time to get familiar with the project. But that does not mean you cannot tackle a real-life issue right away. If you don't get anything assigned, look for a small-scale, low-priority bug (or ask your mentor for a suggestion).
While you probably don't know the solution to this bug right away, and will need longer than an experienced team member to solve it, it gives you a gentle introduction to the code base. Ideally, you only have to touch a handful of classes or less to tackle the bug. In other words, don't pick the "Refactor entire core project" as your first task 😉
Tip 5: Commit as Soon as Possible
Overall, the best feeling of joining a new project is once you're able to push your first commit. Try to do this as soon as possible, maybe even on your first day! This doesn't have to be a major enhancement for the product, it can be a small bug fix or even just fixing a typo.
But nothing will get you more on board with a project than actively being a productive part of the team.
Summary
In this tutorial, you read an overview of our view of a productive onboarding process for new developers. While it doesn't rely on some standard elements (like getting access to slack channels, Jira, reading documentation, …), we don't dismiss their importance. Yes, you'll need to learn outside of the code base and connect to your team on all channels. Nevertheless, you'll experience a much smoother onboarding when you can work with code as quickly as possible.
In the next tutorial, we'll switch perspectives and describe tips for team leaders to quickly onboard new developers and make them feel welcome.
Do you have further questions on this topic or want to share your tips for onboarding developers? Let us know on Twitter @futurestud_io or leave a comment below.
Enjoy coding & make it rock!