If you’re new in Software Engineering or if you change projects or companies you’ll have to start over again. There are many new tools, frameworks, people, an entirely new code base, a new culture, new processes everything changes.
I went through this, and I want to share some thoughts on what’s working and what’s not working in regards to getting into a new project quickly and how to understand a new project when stepping in late.
One of the things I did wrong is assuming that everything changes when stepping into a new project. Yes, the programming language, frameworks, tools, etc. can change. It all depends on how different your new project is.
The programmer and people skills you gained and learned over your lifetime are still there. They have not gone just because you switched from project A to project B. Remember, you can always ask questions, and I am sure you understand the basics of a new code base even though you do not understand the big picture yet.
In short: Remember that you do not start from zero and leverage the knowledge you can bring into the new project starting from day 1. Focus on what you can do and what you know instead of what you don’t know.
Stepping into a new code base and a new project can be overwhelming. You think you need to understand everything to make the right decisions. It’s an honorable goal, but it is not practical.
Instead, focus on what’s important for the context of your current task. Ask questions related to your current work and write down everything you learn along the journey. After a few weeks in, you’ll gain a basic understanding of the smaller parts, and you can start to ask questions about the bigger context of the project.
There will always be people who know more about your project. It is especially true if those people were there from day 1. You cannot change that. Maybe you were in that role in your last project? But the gap between you and the experts will become smaller over time.
After a few months into the new project, you can do most tasks on your own and ask the right questions at the right time.
If you are like me, you want to know everything all the time. You expect to know the entire project from day 1. Let me tell you it’s not how things work in software development. There are too many moving parts, and often a code base developed over months or years or even decades.
Shift your mindset towards a step-by-step mind. Take a step at a time and be patient. Don’t force yourself to know everything from day 1. I know it’s hard, but there is no better way. Let me know in the comments if you have any tips on how to become more patient when learning new things – I need them.
If you step into a new project, you have the chance to learn something new. Learning new things forces you to step out of your comfort zone and you might become more motivated and learning new things is exciting in general. You’ll also start to understand that not everyone is doing everything in the same way.
Sometimes you can bring something into the new project that you’ve learned in the project you worked before. Sometimes you learn something entirely new.
I have never had to work with 3D programming before, and in my current project, I suddenly get in touch with drawing models on canvas. It’s exciting to learn something completely new after working as a software developer for more than 10 years.
I want to take the opportunity to explain why I think that stepping into a new project is beneficial for your company and yourself. In my opinion, it is not only helpful for your new company, but also for the company you leave.
Less popular opinion of mine is that also the company you leave benefits from you moving along. Sure, they have to fill a gap, and they potentially lose some short-term revenue. But over the long run, I believe it is essential to get new inputs from people outside of the company.
If you run a project for many years and only the same people work on the same project you become blind. You don’t challenge yourself to find out new ways or to improve the process or the product itself. Ever heard the sentence “but we always did it like that”?
Sometimes it feels like you’re not worth the salary you make. In the beginning, you fail at simple tasks, and you catch yourself making the same mistakes over and over again. Let me tell you – I’ve been through it and you’ll eventually become more confident.
If you feel you’re not good enough, it is important to remember that somebody was convinced to give you the job. In assumption, you did not fake your resume, and you did not lie in the interview the company exactly knew who they offered a job. They knew that it will be an investment and that it will take a few months for you to reach top performance. It’s their business.
So unless somebody talks to you about why you are not faster or why you made some mistakes do your best and most of the time you do well enough or even better than the company expected.
And do me a favor – don’t compare yourself to people who already work for a company or a project for many years. At best, compare yourself to yourself a week ago. What have you learned? How did you make progress?
You’ll start to see similarities between your new and your old project. It’s important to understand what is similar and what is different. But don’t fall for the trap and talk and think about how things were different in the project before all the time. It is not helpful for yourself, and it is not beneficial for your new company.
Sometimes you can do a task in two different ways, and both are good enough. The same goes with coding styles. It only takes a few weeks to adapt to a new coding style, and it does not help to try to convince people to use another style which you might be more familiar. Appreciate the difference and learn from it.
Do you have other tips and tricks? Let me know in the comments below.
This article was originally published on claudiobernasconi.ch on March 27th, 2019.