When I started interviewing with Codurance, I was introduced to their entry level Academy programme, which consists of 4 months of study and practice, for which trainees are hired and paid. Usually, in the typical tech company, right after signing contracts we go through this onboarding rollercoaster of information, processes, guides and so on, so that you hit the ground running, without much time to prepare or even getting to know your teammates and other people in the office.
That is why this choice that Codurance offers, that is, having the time to study and practice while being paid for it felt very distinctive in a tech business, something that potential employers usually answer with, “Well! that is something else”. For me, this is the kind of approach that tells a company is really committed to what it believes and does.
So, given this opportunity, I joined another three trainees like me and started the Academy. Every week covers a specific topic. So, for instance, there is a week related to the company’s culture including teamwork and leadership, one focused on XP practices, another one on Refactoring & Design patterns, and so on. Most weeks take a progressive path that starts from the very essentials of the theme, moving on to more advanced stuff. There’s always at least one software craftsperson acting as trainer who leads, explains and helps during practices. Each day may include theory, extreme learning, and practical exercises, which at the end are debated within the group. Be prepared to do a lot of sticky notes–brainstorming workshops as well! We used lots of virtual boards to think and debate many times.
You can feel from the very first day that graduating from the Academy will not be the journey's end, but the beginning of a process of learning, extending and researching each one of the topics you come across, as this is part of Codurance’s culture.
Everything that it’s taught is backed by a great bibliography; I hardly remember having one Academy week in which a book was not suggested to continue mastering its topics.
Standing on the shoulders of all these authors is very important, but I also found it very interesting to hear from the Academy’s trainers' experience from time to time. Some of their opinions were quite sound, and usually left me thinking that there’s no “Silver Bullet” in tech or methodology; that is, suitable for every customer and project.
Academy’s last month is reserved for the trainees to work on a final project. The intention of it is to allow the craftspeople–in–training to show all the good practices they’ve learned and their skills. Not only code is assessed; but also SRE, teamwork, software design, and the team’s agile practices, among others, so it is a great opportunity to apply and keep practicing all the tools and techniques learned so far.
For this final project, we chose to create a Web application to cover a possible internal use case within the company. As days went by, we started recognizing our own and each other’s strengths and opportunities to grow, and organized our work with that in mind; not only to take advantage of the former, but also giving us the chance to learn and practice the latter skillset.
We did pair programming and took care to be switching pairs most of the time. We also considered moving from back and front ends so all of us could contribute to the many parts of the application. A requirement of the Final Project was that we showcased live a weekly status of our progress. So, each Friday we did so, inviting the rest of the company to share our achievements and the challenges we’d faced. I highly valued this because it contributed to our presentation skills and confidence. I could tell there was a big difference between the very first and the last presentation in terms of quality.
When the Academy programme finished, each of the trainees were interviewed to assess their knowledge of the theory. Depending on how the interview goes, trainees can graduate and become Software Craftspersons in the company and are considered ready to work in projects. As I mentioned before, Codurance will encourage and support you to continue learning and growing.
So, to wrap up, for anyone interested in joining Codurance and training as a Software Craftsperson, don’t hesitate to do so. At some point you’ll start feeling that, while you are specifically practicing a set of technical skills, in the background, you’re also learning some others, like adaptability, consideration, empathy, flexibility, doing presentations and so much more. In the end not only you gain confidence with your skills, but also on your criteria and your ability to communicate all of it.