Become the best version of a Software Craftsperson

I joined Codurance as a web developer with some professional experience in a loosely structured, fairly young start-up. Previously, learning mostly “on-the-job” with some of the more important aspects of the company’s systems. 

While this previous experience had proven to be a great introduction to the industry, there wasn’t any clear path for self-improvement - and looking at my codebase I knew that there had to be ways to improve it. Being self-taught and in a small company without any experienced senior engineers to help, it was hard enough to identify what needed to be improved, let alone how to improve it. 

So, I interviewed for a position as a Craftsperson-in-training at Codurance in their Academy programme - a 4-month learning experience with fellow software developers, to learn about the best practices for the industry from well-seasoned experts of their craft. On top of this, they were going to pay me for my time, solving the universal issue of worrying about how to support myself through a full-time learning experience.

The first week or so showed an emphasis on getting to know your fellow Craftspeople-in-training, and your colleagues at Codurance. There is a strong culture of mutual support between everyone at the company, regardless of what project or even department the other person you’re speaking with might be from. It is immediately clear to see the benefits of this philosophy - it encourages the growth of everyone, as the open environment allows for good ideas to effortlessly ripple through the company.

I remember looking at the schedule for the 4 months ahead of me as I sat down to start my Academy journey. The problems I mentioned earlier with regards to self-improvement were immediately solved. The Craftspeople who are responsible for the course had already used their years of industry experience to delegate your time to the most urgent of concepts and skills, so you can focus on learning. On top of that, every week had a curated list of recommended resources, which could include books, YouTube videos, blog posts, courses - anything to help the material stick.

In conjunction with the resources, the Academy is assigned a Craftsperson to act as a guide for your time learning these different concepts. This Craftsperson will host the vast majority of the learning sessions, offer support, in-depth conversation about certain concepts or contrasting ideas while also finding opportunities to tweak aspects of the Academy itself to better serve you and your fellow Craftspeople-in-training. The Craftsperson we were lucky enough to have was also the personification of the open, supportive culture that I’ve previously mentioned, whilst also making an effort to introduce a lot of fun and humour into the day.

As for the topics themselves, there is a huge variety. The opening weeks are, in my opinion, the most enjoyable ones - these are almost entirely based on learning coding concepts and then pair programming with your fellow Craftspeople-in-training (or perhaps even your tutor) to demonstrate your newfound understanding. If, like me, pair programming was new to you when you started the Academy, you’re in for a fun and collaborative experience! It’s an excellent way to get to know not only the new ideas you’ll be learning, but your colleagues as well.

Within the coding intensive part of the Academy, you are taught the principles of Test Driven Design, Design Pattern principles, the all important fundamentals of Object Orientated Programming - the list goes on. After just two weeks of the Academy, I went to look back at a personal project from just before I started, and I couldn’t believe how much I had already improved. It’s a bittersweet experience to look back at some recent work and notice so much wrong with it, but it was also amazing to transform it with an arsenal of so many excellent ideas after such a short space of time. I can’t really think of another time I felt like I had learned so much at such a rate.

For particular, specific topics within the more technical weeks, our tutor might even reach out into the Codurance organisation to find a professional with a notably high amount of knowledge to come and support us. This access to expertise on this level, at practically any time, really made the learning experience just that much richer.

The time focused on technical concepts is, of course, invaluable. However, there is so much more to being a Craftsperson than the code itself! This is where I think Codurance is different from anywhere I’ve worked. There is a huge emphasis on the correct way to work within a team and with a client or product owner. You’ll learn how to analyse a work process to ensure that it allows for tight iterations of clear communication between all team members and your product owner. You’ll understand how to prioritise work to be done, what to do when something falls behind. You’ll learn how to organise your regular demonstrations to your product owners, so you can show them the fruits of your labour and the product of that constant communication with them. You learn very quickly that the technical skills without direction just makes you very efficient at making a mess, and that being a Craftsperson means being the full package - technically knowledgeable of course, but also a very approachable, communicative professional who is just as concerned at keeping the project on the right track as they are concerned with the hard technical skills.

The Academy comes to a conclusion in the form of your final project - a bringing together of everything you have learned over the last few months. It allows you to manage your project, work with your team as though you were working for a client, and deliver something you can be proud of - and of course, the demonstration to the rest of the company at the end of it. It’s a daunting experience, for sure - but with all the support that’s on offer, and the excellent team of positive people working together with you, it’s a truly satisfying and rewarding experience that allows you to look back over the last 4 months of your time as a programmer and see the astronomical leaps that you’ve made in your personal progress.

In short, if you are looking for a way to become the best version of a Software Craftsperson that you can be, in an environment that’s focused on fostering an effective, learning environment throughout your time with them, I would absolutely recommend the Codurance Academy. I imagine it would have taken me years to learn alone what I have learned in those 4 intense but fun months.

Hope to see you on the next one!