It looks like you are using Internet Explorer, which unfortunately is not supported. Please use a modern browser like Chrome, Firefox, Safari or Edge.

Mentoring Stories: Mentoring offered Carl a safe space to sharpen his knowledge of Test-Driven Development

Published in People

Written by

Carl Holmqvist
Software Developer

Carl is a skilled and efficient Software Developer at Nitor, known for his teamwork and practical problem-solving abilities. He is highly regarded as someone willing to listen to and assist others, making him a treasured asset in collaborative environments. With his technical expertise and positive demeanor, Carl consistently delivers quality solutions while fostering a supportive and productive work environment. Outside of work, Carl leads an active lifestyle with interests in running, cycling, and cooking.

Article

August 30, 2023 · 5 min read time

As a Software Developer, I am keenly aware that the world of coding is vast and ever evolving. While my focus was on Test-Driven Development (TDD), I was also looking to boost my skills in related areas. My mentor Esko Luontola teaches a yearly course on TDD at the University of Helsinki, so in many ways he was the perfect pair for me – and it certainly didn’t hurt that we were already on the same client team.

Software development can be very challenging. It’s a hard topic at heart, and there is always an element of competitiveness involved. You need to be mindful of so many things. You need to understand testing, development, data collection, implementation, frameworks, style… It’s a huge spectrum.

We had the initial pilot for the mentoring program last year, which had turned out to be very successful. When Nitor decided to rerun the program on a larger scale, we were given the option to freely raise our hands and let people know we were either looking for a mentor or willing to provide guidance for a mentee.

When I raised my hand, the initial thought behind that was, hey, perhaps I can simply find someone to discuss all the things I mentioned previously with. Someone with whom I could start building mutual trust and begin to sharpen what I know as well as learn new things based on that foundation.

What I was mainly looking for was tutoring in Test-Driven Development (TDD), but also someone who would provide guidance and discuss software development topics in general with, in a safe space. And I feel like I found that with Esko.

"I reused some of the exercises from my university courses. The exercises centered on programming a game of Tetris. We spent a lot of time pairing and refactoring code together, and I felt this setting made it very easy to convey the philosophy of TDD."
- Esko Luontola, Senior Software Architect, Nitor

We started the mentoring program with a meet-and-greet introduction session and exchanged some ideas on what each of us was expecting from our sessions. As a kickoff, Esko then gave me a rundown of what Test-Driven Development was all about in his view. From there on, I received various assignments like homework, which we would go through together with Esko in a weekly live review session. Even though I live in Stockholm and Esko resides across the pond in Finland, working together was a very smooth experience.

After a while, we switched away from this method and started working in pair programming sessions, where I was trying to solve the exercises, while Esko was virtually by my side providing live feedback and discussion.

I found the latter way of working the most rewarding, because it enabled Esko to see the problems I was facing in real time. This gave him the option to live-trace what was going on, while also enabling him to give direct feedback to me on the fly.

"Working in pairs worked very well in terms of the assignment, but it was also very enjoyable from a social standpoint. Now that everybody’s often working remotely, there’s less social contact, so having these sessions felt very rewarding for me as well. Also, when working via a live setting, it was easier to give insight like, “okay, that worked well, but how about we try a new approach and go through this refactoring in smaller steps”."
- Esko Luontola, Senior Software Architect, Nitor

You must unlearn what you have learned

I didn’t really have a plan in mind as to how everything would unfold, but I found our spontaneous discussions on different problems to be very enjoyable. I often found myself asking, wait, why would I do it this way? That’s not how I would usually approach a problem like this or that. Esko would then provide strong arguments and opinions on how things should be resolved according to the principles of Test-Driven Development.

I’ve been a Software Developer for quite a few years, so I do tend to have my own habits and my own way of developing code. That’s not necessarily aligned with what’s been written in stone as the tenets of TDD. Sometimes it’s hard to teach an old dog new tricks, but our conversations on the topics were very fruitful and I have since tried to incorporate all my learnings into my current work.

My general impression at first tended to be that, okay, I know what I want to do. Why can’t I go from A to B directly? Why am I taking a detour through C? But when I started to get a hang of things and understood the relationship of this method with the later phases of a particular assignment, I realized how this approach could, in fact, turn out to be the fastest route. At least when going through D and E to pick up some apples and pears, so to speak.

"I had the opportunity to quote Yoda: you must unlearn what you have learned."
- Esko Luontola, Senior Software Architect, Nitor

One of the key revelations for me was the discovery of new ways to approach the task of achieving a given goal. Depending on the situation, that may be a certain tactile result like implementing a new feature or finding a solution to a problem. There are many ways to get there, be it the way I’ve done it before or via Test-Driven Development. I feel like I’m now more open to exploring other ways of achieving my goals.

The Mentoring Stories article series sheds light on our mentoring program that offers the possibility to learn and share advanced and cross-functional knowledge with fellow Nitoreans. At Nitor, we embrace the diverse and unique journeys of our Digital Engineers. Enabling personal growth paths and supporting self-development through concrete methods and social learning is one of our core values.

Written by

Carl Holmqvist
Software Developer

Carl is a skilled and efficient Software Developer at Nitor, known for his teamwork and practical problem-solving abilities. He is highly regarded as someone willing to listen to and assist others, making him a treasured asset in collaborative environments. With his technical expertise and positive demeanor, Carl consistently delivers quality solutions while fostering a supportive and productive work environment. Outside of work, Carl leads an active lifestyle with interests in running, cycling, and cooking.