During the programmers' meeting we get all the tech folks from all projects and do the following in a Slack call:
-Off-topic casual conversations and checking up on each other <3
-Sharing each others' industry experience with one another
-Asking each other for guidance/help regarding variety of issues
-Showing each other things we've worked on or have been working on
-Talking about anything and everything technical and industry related. (For example: Code conventions, architecture of a certain project, a newly released library, favorite tools of the trade, home automation projects and so forth.)
In this environment it's also allowed and encouraged to prepare talks/presentations about topics you'd like to discuss. One thing I enjoyed thoroughly is that different kinds of programmers can come together and discover each others' domain with ease and get to see the ways everyone battles in their region. Considering that it takes about an hour a week (formerly an hour every two weeks) it's a great way to connect colleagues and nurture growth whether it's for technical or non-technical skills.
Now, that being said I wanted to share one of the presentations I've made for one of our meetings here and give a little bit of a back story on how it came to be too. You'll see how it all comes together in the end and why I'm such a fan of these meetings.
I like helping people and if I see people succeed, grow and improve that makes me tremendously happy. Since 2011 I've been lucky enough to work with a number of exceptionally kind and intelligent young professionals in the scope of my work at Gray Lake Studios. With quite a bit of these junior colleagues I had the privilege of guiding them for their position. During this time frame I learned a lot from them and had the chance to collect a few nuggets of wisdom regarding useful ways to help them. Fast forward to May 2021 during which we were discussing bringing new interns/trainees in to join our production team. Around June this became a reality and I was super hyped to share my mentorship experience at the programmers' meeting, especially with our medior programmer who expressed his interest in learning how to onboard and train newcomers and was looking forward to act as the responsible party for our prospective programming trainee.
Here are all the points I brought forward that I thought could help my team. I kept these points a bit looser than normal because I didn't want things to be set in stone but more in the format of 'I've found these things useful to know but I would also like to hear your thoughts on it' kind of talk. I was especially curious about the input from our team considering the fact that we have a lead with way more experience than I did and another colleague who has been teaching game development at one of the best schools in the Netherlands. Without further ado below is my presentation: (Originally a 15 slide google sheets presentation with the boldened titles in the middle of each slide and a sentence or two below the title to get the ball rolling. I wrote more here and expanded on these to give less room for misunderstandings.)
- Symbiosis: Your junior is not a work slave. Your junior, just like you, is a person and they are here to grow professionally and personally all the while aiding the company through their role.
- Listen & help them focus: Talk to your juniors and learn why they are here and what they want to achieve in the long run. Learn what their abstract goals are. For example an abstract goal could be ‘I want to be a better programmer’. Then help them translate these to concrete goals such as ‘Finish reading Martin’s Clean Code’.
- Salt in the soup: One of the first things that can help build the confidence of a junior is letting them work on something that goes live at the end of a sprint cycle or a week. Keep it small, easy and within their reach. This can additionally demonstrate the whole flow for doing ‘real’ work to them with minimal risk for all parties included.
- Mentoring isn't only hard stuff but soft stuff too: Otherwise you could give them a book or YouTube playlist and they wouldn’t need you to begin with. When they have complicated questions and/or issues that go beyond the limitations of their technical responsibilities you still need to show up and show them the way. Are they not showering enough and they're stinking, you need to tell them they need to shower before coming to work. Are they speaking ill of another colleague behind their back you need to show them that's not the way to resolve issues. Are they taking too many requests and not speaking out you need to help them improve their expectation management skills. The solutions to these issues are unfortunately not on stackoverflow.com. In the past ten years I've had to deal with these kinds of issues often and luckily with a few exceptions and immediate and direct response worked in our cases.
- Expectations: Set them up for success. Do not expect new members to function right away without establishing a healthy dose of introduction to all things necessary. Early on spend enough time showing the ropes and demonstrate and communicate the habits you’d like to see. It will save everyone a lot of headache in the long run if your junior is up to speed and has minimum amount of barriers to begin with.
- Responsitrillities: Try to treat your junior's responsibilities as your own (but don't over do it of course). If they fail part of that failure could be you failing to provide adequate help in acquiring the skills for the task at hand. Remember to hold a mirror to yourself when they're doing badly. On another note failures and mistakes happen and it’s okay in healthy doses. Treat them as areas to treat. Don't panic and focus on continuous improvement. Your aim is to give the necessary support for you junior for them to realize becoming a self-standing member of your team.
- "Let me fix that for you...": Do not frequently do a junior's work for them if you know they can do it themselves but you need it done fast/right. Show them how and let them do it. You don't want two people working on one person's job or redoing everything someone does. After you instruct them adequately give them a chance to demonstrate what they've learned. Do remember that sometimes with some situations/persons their set goals may have been established out of scope for them. Do not overextend to cover up, try to reset these goals instead.
- “In space no-one can hear you scream”: Well, that’s because space is awesome! Give your juniors space to pursue their own interests and discover new things in their field, read about new discoveries, use new tools, watch the latest videos from industry folks. This will not only encourage them to enjoy their time and grow personally but you’ll also benefit from the things they’re learning which you should be asking them to share with your dinosaur self. This is something we used to do at Gray Lake Studios on Fridays. Yep, entire Fridays. Imagine you go to work and catch up on all the YouTube videos, dev articles and what not and then work on your crazy projects instead of other things.
- Learn from your juniors: More often than not working together with and guiding a junior will grow your mentoring skills. These skills are very handy because it can help you learn how to inspire and elevate your colleagues. It will also teach you a great deal on how to approach conflicts and resolve them without alienating those around you. When you're mentoring you're also the student being mentored on how to mentor. Watch yourself carefully, try to detect your short comings and find ways to grow in these areas. Not only that you'll also be learning about the newest tools, state of the art developments in the industry and much more if you're willing to take the time to listen to your junior. Finally your juniors will frequently challenge how things are being done and will have a fresh look on age old issues you've been facing. This is some diamond level feedback and input. Listen to them carefully.
- “I have nothing to do...”: a.k.a. the biggest truth-lie ever invented by every junior ever although without ill intentions on anyone's part. Two things are important here. Useful suspension material and teaching autonomy. At Gray Lake we used create abstract goals for our juniors and then convert these to concrete actions juniors can take. This is one tactic for a junior that created a focused approach to their timeline with us and it created further tasks that could be added as long as this fed the goals they've set in the beginning. This could be reading a relevant book that improves their skills or watching an industry talk with relevant material. Another thing that's handy is to create a backlog of entries that could be picked up independent of the sprint goals. Sometimes tasks will finish fast and instead of a junior going around requesting everyone's attention for more things to be created for him it's better if they already have somethings they can dedicate themselves on or create such tasks by themselves and announce that they're on such a task.
- “Can you help me with...”: a.k.a. I need to give this five minutes to see if I can figure it out myself but I thought I could ask you and save those minutes at your expense. This is another common phrase we heard at my company until we've advised our juniors to give it 5-10 minutes to see if they can solve it themselves and only then to come and get us. Of course this isn't applicable to every question or help request they have but more for technical ruts they may come across that's a couple of google searches away. Be careful to distinguish them and not to deny help where actual help is needed. Figuring out when to ask help is also a skill. You should to help them acquire this.
- "I will remember it!": a.k.a. I will definitely forget this, approach you later when you’re busy and sheepishly ask you about it exactly in the middle of your work for which it took you a lot of effort to focus on. Treatment: Get your trainee a notebook. Notebooks are their life. Let them take notes, write goals and tasks down. Solve issues on the notebook. Sleep with the note book. Love. the. notebook. World peace comes with? You guessed it right, the notebook.
- "...": Long silences from your intern with no information on what they’re up to are usually a bad thing especially if they're on the same project with you. Don’t helicopter and micro-manage but talk to them if there are big gaps of silence. Do spot checks. Do not go more than a full working day without talking to them. If they're doing things for a week and you hear on Friday that they worked on an entirely different task and did irrelevant work that's going to be a lot of time and energy lost. Sometimes juniors may also be bad at asking for help or keeping in touch. They could need guidance on a variety of issues but be afraid to ask it. Demonstrate good communication skills and encourage them to check in with the team or with you with a healthy frequency. Ask them what they're working on, if they need any help and also tell them what have you been up to to demonstrate a good habit of keeping each other in the loop.
- "Only two there are, no more, no less.": A junior may be assigned to ‘you’ but this does not mean we’re dealing in absolutes like the Sith do and they exclusively must communicate with you on all things that happen. Try to foster a healthy network for them social and professional and encourage them to ask for help and guidance from others too where necessary. Create the space for them to explore the work and responsibilities of others’ and make friends with their colleagues.
- "Have you tried turning it on and off again?": About that… sometimes your colleagues may come to work and not be able to do any work, they may seem distressed, occupied… Something is going on but what? We’re all people. We have problems at home, with our family, with our loved ones, friends, projects and our emotions get the best of us. Start with this simple approach: “Let’s take a break and grab a cup of coffee.” It’s a good idea to create some extra breathing time for them, chat with them to see if there’s something you can do to help them. If there’s something beyond our reach let them take some time off to get through it. We're not machines.
- Discussion Time: This is the slide where we ask questions, make remarks, discuss and hear other nuggets from you.
Finally here's the link to the slideshow for your convenience. I hope this was an interesting bit for you as much as it was for me to write it.
Stay safe!
Tunç




