Thank your mentors
Everyone had a mentor and some of us do not even realise it. Mentors are people who made a dent in our world, people who helped us become who we are now, people who invested their precious time in us without asking anything in exchange.
I personally started thinking about my mentors when I was asked direct question:
Ok, you are speaking a lot about mentorship, but did you have a mentor? (c)
and I stuck. I stuck because I didn’t have a chance to carefully reflect who my mentors are. Even worse, I never expressed my gratitude to them. Perhaps because I realised they were my mentors long after our working relationships ended. But it’s better late than never. I want to thank my mentors.
Maksim Bikov introduced me to programming at Riga Technical School. I was very problematic student at the beginning of my studies - I enjoyed freedom and didn’t know why should I spend weekends on polishing my coding skills instead of chilling with girls and friends. I didn’t have passion for programming, neither I understood what programming is all about.
So I shirked the first couple of lectures to spend time with my GF. Next day I came unprepared to a practical lesson where everyone had to explain and defend solutions to homework assignments. This was stressful, but very similar to code review - we, students, were constantly challenged and taught to look for a better ways of solving problems.
Since I was not capable of solving the problem myself, I copied
.pas files (you’re right, it’s Turbo Pascal) from a more responsible student, turned my smirking smile and waited for my turn.
Maksim took a chair and sat next to me. With a calm voice he started asking simple questions about the implementation details. I tried to escape from the questions and hide my lack of knowledge, but most of the time my answer was
I don’t know
and then Maksim slapped me with a phrase I remember even after 12 years passed:
Do you tell your GF “I don’t know” every time she asks you a question?
He pressed the right button. This phrase changed my internal world. He pointed that my behaviour is unacceptable by mentioning something so important to me by then - my GF :-)
I didn’t have anything to say. I lost my face. I was broken. I was totally destroyed.
The next day I woke up with a completely different attitude. I took Pascal book and started learning in order to eliminate all gaps in my knowledge. I started coding daily. I was learning to rationalise and explain all decisions I make during coding.
It didn’t make my life much easier though - Maksim was very demanding to me and he almost never publicly appreciate my achievements. By then I thought Maksim doesn’t appreciate anything, behaves like a senseless robot or just hates me. Looking back, I understand that Maksim was nurturing the passion in me - his goal was to make me - a student, appreciate the journey, not only results. He wanted me to appreciate craft of programming even when times are tough. He wanted me to behave professionally not because it’s rewarding, but because it’s the only way to go.
Only after 4 years of intensive and painful studies, after taking the final exam and graduating with excellence, Maksim said -
I knew you can do it
Not more than that. You do not need a reward, because professionalism is rewarding itself.
Thank you, Maksim, for showing me the way. Also thank you for letting attending your lessons after a hangover. You’re excellent teacher, mentor and man.
I was very lucky to meet Oskars Vilitis during my apprenticeship at Exigen. Oskars is probably the most well-grounded software architect I have ever met (he held Chief Architect position when I just started my programming career).
Once Exigen made me technically responsible for a project (what a bad idea after only 1 year of total software development experience I had!). I didn’t know patterns, clean code and design practices, how to write tests (and why), how to document software, how to talk to customers (and why). I knew nothing but core Java and a plenty of frameworks.
In order to deliver features faster and make customer happy I was writing code like crazy. Worth admitting that I produced a lot of working crap.
I didn’t know what actually happened, but suddenly Oskars joined the team. Next day, after I checked out the code, I found most of my code cleaned and re-factored according to best practices. I still remember my puzzled face staring at a classical singleton with a static
getInstance() method and not understanding WTF is it.
Oskars said nothing to me, although he clearly understood that I was not competent enough to lead the project. Remember the famous song -
Words are very unnecessary
They can only do harm
Without saying anything, but just by cleaning up the mess I produced, Oskars made me understand that I am not there yet and there is much more to successful product than knowing core Java.
Oskars was also kind of an architect who writes code. Surprisingly, he was better than most of the company employees at code writing, including me. I even remember colleague’s saying:
This guy knows how to connect all these f*cking unrelated classes and objects together. He just sees the big picture, like a wizard.
Apparently there is no wizardry - it’s a result of continuous learning and hard work. There are no shortcuts to mastery.
I met hands-on, coding architect about 10 years ago. During the following years, mostly Ivory Tower architects were on my road and, thanks to Oskars, I already knew that things should be done differently.
Oscars showed me how to write software documentation. Although I still haven’t achieved that level of mastery (I compensate it by blogging), I remember the packaging structure, architectural diagrams and system metaphors clearly expressed in Wiki.
And of course Oskars constructiveness, quiet and respect during pressure and stressful situations is something I admire and strive to apply daily ever since. I still remember feeling of piece and quiet when Oskars was in the room. The feeling that everything is under control. The feeling that there is a person you can truly rely on, a person who is much more senior than you are.
I remember asking myself during tough and non-trivial situations -
What Oskars would do in this situation?
and actually finding the answer.
Thank you, man, for making me believe in myself and not judging me for the crap I produced.
Clean Up and Shut Up rule is still with me and serves as an indispensable part of my software craftsmanship training.
Although I haven’t worked with Ilgvars Jecis in the same team, during our employment years at Online Finance Group and lately 4finance, Ilgvars was shining so bright that everyone in the office, including office cleaner was enlightened.
Ilgvars has eXtreme Programming in his blood and DNA. I just remember how fast Ilgvars’ team members grew as professionals during pair-programming sessions, how everyone in the team knew and cared about the business domain, how rapid and predictable product delivery was and how well-crafted code shone through.
I regularly checked what books are on his table. New books arrived faster than I could read them. All these brilliant books became part of my shelf. Ah, and that heavy Domain-Driven Design from old 2004…
In parallel, I was constantly checking the system Ilgvars’ team is building. Well-expressed and rich domain, elegant and concise code, tests that make perfect sense, architectural decisions I have never seen before. Man, I hope you will write a book one day. You have at least one paying customer.
Ilgvars taught me to be proud of our profession. I remember us sitting in a meeting when one of our non-technical colleague went:
Ah, coders will figure it out!
Ilgvars interrupted him immediately and stressed that there are no coders in the room. There are software developers. Ilgvars taught me to go against majority and confront with management if it’s necessary to protect a team or a company.
If someone could write a book on “The Art of Not Giving a Fuck” topic, then it is Ilgvars. Ilgvars taught me how to give fucks about things that are important and can be changed and just flow with the rest. I also stopped complaining about imperfect systems, because there are no perfect systems. Perfect system is just an aim.
Although we had some tough discussions and struggles, you taught me a lot. Thank you for that.
Besides Maksim, Oskars and Ilgvars I want to thank Maris Veide for showing me a plenty of good management practices and everyone else who shaped me as a professional by giving critique, feedback and good example.
Thanks book authors, bloggers, writers, conference speakers and everyone who is eager to share knowledge and make our industry more professional.
Maybe my mentors haven’t made a dent in the world yet, but they made a dent in my world and I appreciate it.