August 5, 2021
Close your eyes and try to recall your first months as a developer. How was it? Did you have enough help from more experienced colleagues? Did you have enough opportunity to discuss all problems with your leader?
If you were lucky — you did. But most probably, looking back you’ll conclude that a bit more support would help you evolve much faster. The good thing is that now you can help others, and I’ll tell you an efficient way to do it.
In this article, you could read why we decided to create a bootcamp, and how the process looked like. Here, I’ll describe the most exciting part of the whole initiative — shadowing in projects.
When I started my journey in the development world many years ago, I didn't have proper leadership. I didn’t have much contact with seniors and quite often I was alone with my problems. Problems which were really huge for me, cause I was a total newbie in those subjects.
After a few weeks of onboarding, I started working in commercial projects where the lack of experience and the lack of proper answers to questions started popping out. It was a rollercoaster. I was amazed by the technologies I could dive into but at the same time, I was stressed like never before cause I had the feeling that I’m alone and I don’t know what I’m doing… So I quit the job.
It just so happened that Monterail had an opening. I tried and… I’ve realized that everything around me has changed — especially the way that less experienced people are treated and how much attention experienced developers can offer to fresh juniors.
After some years I understood how important those first months in the development world are. I started treating leadership and mentorship as mission and passion, not just the next thing to do. I started being someone whom I needed when I was starting out.
And now when we started organizing bootcamps, I had one thing in my head — we should show the fresh-starters two things:
But what’s the best way to show these things?
When thinking about it, we considered what kind of experience might be unique and most valuable for our bootcampers. We had a few ideas but the winner was one. The cooperation with other developers on real business problems.
We understood that it's a win-win situation — it's a chance for the project to have a fresh look at the whole product and development vision, and at the same time, the newcomers gain a chance to gather as much knowledge and feedback as possible from the senior developers.
The whole shadowing process is built on the idea of elasticity. We customize it and adjust to the experience and abilities of our candidates. It means that sometimes a bootcamp will focus on business analytics and estimations, sometimes on understanding technical architecture, and sometimes on contact with clients.
With this in mind, we split two weeks of shadowing into two separate blocks.
The first week is about understanding applications. One week sometimes is not enough to understand the whole business logic and application’s code, so in some cases the first week focused only on a part of an app. During this time, we encourage bootcampers to discuss any doubts that might come up and to remember a golden rule: there are no stupid questions.
With this knowledge, the bootcampers are ready to proceed to the next stage. The second week.
During the second week, bootcampers jump into the project work itself. They get their first tasks and try to solve them on their own — but not alone. This is the crucial ingredient in the second week: having someone always eager to help and trying to at least discuss problems.
After two weeks of intensive work, we gathered feedback from the whole project team. This is one of the most important steps in the whole bootcamp because the bootcampers gain a ton of advice on how to proceed on their development path. When we compare this feedback with observations made during the whole bootcamp, we can prepare a comprehensive guide on how to become an advanced junior, or even regular, but what’s most important — we can give a personalized guide on how to become a polished craftsman.
But you don’t have to take my word for it. Here’s what the bootcampers had to say about the whole experience.
I liked the idea that we were thrown into different projects. Whoever made the decision to split us into such projects, analyzed our pros and cons.
At the beginning I tried to find out how the app works, so I went through the database to learn what is what. Then I went on the client’s LinkedIn page to learn what this company is really about. I wanted to feel like an end-user because that's what developers do, we want to make the end-users’ lives easier.
Later on I got a task that I overestimated but overall I learned how to work on a project and where to find stuff I need. I think that was a good decision to take on that task. I saw that sometimes you’re in front of a mental wall but once you break it, you’ll get a lot of value from this hard experience.
The team helped a lot, that's why I asked a lot of questions. Kasia as a project manager with her positive vibe made us way more confident.
Shadowing was the most interesting and inspiring part of the whole Rubycamp — the possibility to work on an extensive codebase, taking part in all the team meetings, working with people in various roles, and doing code reviews were very motivating.
Feeling that I’m a part of the team was the most important for me — I had my own tasks and responsibilities, just like the rest of my teammates. Also I felt Wojtek’s support throughout the whole experience. He introduced me to the project and extensively answered all my questions.
The willingness of everybody around to cooperate and talk things over was super helpful. The extra thematic developer meetings that are available in Monterail are also something that helps me grow.
We were added to all the meetings and I felt welcome in the team. There was also an introduction to the project regarding both the technical and the business sides of the project. It was great that after few days I could do the simplest task and participate actively in the project. I really appreciated daily calls with Łukasz Tucholski when he checked our progress with tasks and answered all our questions. I learned a lot during those 2 weeks. I improved my coding skill and gained knowledge about working in a real project with client. I also gained an insight into teamwork and tools used in Monterail.
Rubycamp was an amazing experience. It gave me the opportunity to learn not only Ruby on Rails but also to work with a live code, regardless of the language used. There were also many important non-technical aspects, like working and communicating with the client.
The shadowing part allowed me to see how much more I can learn. I saw the teamwork in a project from behind the scenes, and I gained insight into working on a live codebase, while communicating with with the client. I learned how important it is to cooperate with teammates and to look for solutions to challenges.
The fact that everyone here is kind and helpful made the whole experience that much more valuable. There’s no unnecessary stress and you can focus on building your skills.
At the beginning of the shadowing part, I got a lot of support from Rafał and Asia. Rafał helped me with the code, and Asia guided me into the meetings so I wasn’t stressed about those.
Later on, I joined the first meeting with the client, and because the atmosphere was welcoming and understanding, I gained even more confidence and experience.
The willingness of everybody around to help and guide us created an environment where I felt comfortable, and could grow as fast as possible.
Shadowing structure built upon the foundation of elasticity and willingness to help as much as possible is extremely effective both from the perspective of mentees and mentors. What’s important to remember is to create an environment where all questions are welcome, and there’s room to use the theory in practice.
If I were to boil down everything here to one word, it would be: support. Support the mentees, and the shadowing will help grow both them and the mentors.