Making the Most of Your First Weeks at a Software Company
Walk and Talk - Episode 7
Hey readers! Today I am going to talk about a topic from my personal experience. I have joined a new Software Company (of course from another software company). So, I want to talk about what I have done in my first weeks and if you have no experience, where should you start?
Joining a new company is an exciting moment. You get to meet new colleagues, you get to jump into a new world and you are definitely getting a new codebase. If you did not handle or manage your excitement properly, you will end up in a situation where you get exhausted. On the initial dates, you will be getting into multiple meetings with people in different teams, and HODs and you will get to know the company culture. There will be an introductory program where they introduce you to the company. At the same time (I hope so), you will get your equipment set up for the WAR.
Most probably you were sailing smoothly in your previous company where you were in your comfort zone, but now, everything is different. New technologies, new equipment, new methods and practices (Oh, I am getting goosebumps). So, again, how would you make the most out of it in the initial stages? How could I know? I am not a person who can read minds. But, I will give some tips here about what should you do.
Be patient, but not too patient
After your team-level onboarding, you will get information about your project and your responsibilities with the role. There will be a senior member or a person who has more experience in the same domain than you (unless you hop on to the director board as a senior) as a contact point to get all the help you needed.
It is tempting for a developer to gain access to the code base and instantly begin traversing it. However, as a novice, your concentration should be broad. There are a few things you should strive to understand before implementing or altering anything at the code level.
Do not get overwhelmed with the work you have as a beginner, and you should be patient about the work you are getting into. Most of the things, you would not be able to understand at this point. That does not mean you will not understand. Do not try to grasp everything you see at first. Make a simple to-do list of your role and responsibilities.
Read the bloody documentation
I know most of you do not like to read the documentation, but it is a must if you are joining a new company.
To start, identify all the tools that your team uses to document design decisions, high-level architecture, service-level architectures, domain knowledge, and more. It's important to locate the primary source of truth for this information, as it may be stored in multiple tools with slight variations. To make it easier to find what you're looking for, create folders in your bookmarks and organize the relevant links by category. By creating this mental map, you'll know where to go when you have questions or need to reference something.
There might be many documents written by your teammates for every aspect of your project. In this case, get in touch with the senior and try to prioritize the list before jumping in.
I suggest you read product documentation before jumping into technical ones because you would not be able to understand the codebase without domain knowledge. Get in touch with a product owner if they have one, to get a broader understanding of the project you are working on. They will be able to show you the product flow including the domain knowledge, use cases and everything. Remember, whatever you do, DOMAIN KNOWLEDGE IS A MUST!
Have you heard about The C4 model for visualising software architecture?
The C4 model is a visual language for documenting software architecture. It provides a way to describe the structure, relationships, and interactions between software systems clearly and concisely. The model is made up of four layers:
Context: This layer shows the external factors that affect the system, such as users, devices, and other systems.
Containers: This layer represents the runtime environments where code is executed, such as web servers, databases, and so on.
Components: This layer shows the high-level components that make up the system, such as modules, libraries, and APIs.
Code: This layer represents the actual code that runs within the system.
A C4 model is a useful tool for communicating software architecture to stakeholders, as it provides a common language and a visual representation of the system. It can also help teams to design and evolve their systems in a structured and deliberate manner.
Getting your first task
Getting your first task in a software company can be an exciting and challenging experience. It may be intimidating to start working on real projects and contributing to the company's product or service, but it can also be a great opportunity to learn and grow as a software developer. Here are some tips for tackling your first task in a software company.
Make sure to get a smaller task as your first task.
Take the time to understand the problem you are trying to solve and the requirements for the task.
Break the task down into smaller, more manageable pieces.
Ask questions if you are unsure about anything.
Communicate regularly with your team and stakeholders.
Don't be afraid to ask for help or clarification when you need it.
Overall, it's important to stay focused, stay organized, and stay positive as you work on your first task in a software company. By doing your first task, you will be able to grasp more knowledge about your domain and the project. Keep learning from your tasks and eventually, you will be able to understand most of your system.
You are a new joiner, of course, mistakes and estimation issues can happen. But make sure you learn something from your mistakes and never let it happen twice.
Make sure you are a team player
Being a good team player is an important quality to have in any workplace or group setting. Make improvements within the team. Give them ideas. Help them to solve problems. Being a team player is not an easy task. You should be committed to the team. Here is how you can become a good team player (if you already do not know).
Communicate effectively: Make sure to listen to others and share your ideas and thoughts. This can help to create a collaborative and productive team environment.
Be respectful: Treat others with kindness and respect, even if you disagree with them. This can help to create a positive team dynamic.
Be dependable: Follow through on tasks and commitments, and be reliable. This helps to build trust within the team.
Be open-minded: Consider others' perspectives and be willing to try new approaches. This can lead to more innovative and effective solutions.
Be proactive: Take initiative and be willing to pitch in where needed. This can help the team to accomplish its goals more efficiently.
Be flexible: Be open to change and be willing to adapt to new situations. This can help the team to be more agile and responsive.
This is a good opportunity to showcase yourself to the team. There are plenty of ways to contribute to the team. Be creative and efficient.
Communication is the key
Even though you are a super competitive developer, if you cannot express your ideas or communicate with the team, all your skills will get wasted. Communication is a must for a productive team. Communication does not mean that you should be super fluent in English or any other language.
Effective communication is essential for a group to function efficiently and achieve its goals. When team members can communicate openly and honestly, it helps to build trust and facilitate problem-solving and decision-making. Good communication can also help to prevent misunderstandings and conflicts within a group. When team members can clearly express their thoughts and ideas, it can help to avoid misunderstandings and build a positive team dynamic. In addition, effective communication can help to foster a sense of community and belonging within a group. When team members are able to share their ideas and feelings with each other, it can create a stronger sense of connection and solidarity.
Now you already know what I have done to make my first weeks successful. There are no secrets or magic. Especially, make sure to be yourself in your new workplace.
If you have more to add, feel free to add them in the comment section. So, the new joiners can follow.
Oh, I forgot. Congratulations on your new job!
See you again on another topic.
Cheerio!