Or How To Decrease The Load on Your Team.
Throughout the years, there are things my mentors reported, and some that I observed both while hustling as a junior and managing a team in my past life, which help juniors contribute more, develop faster and save mentoring time (and mentors energy).
Disclaimer: Reading this you may have a feeling that I disregard the role of the mentor, and the responsibility of seniors to share their knowledge with the team. I don’t—I think it’s a separate topic.
No matter how junior you are, and who is assigned to help you on the task, ultimately you are the owner of your task. You take responsibility for moving it forward. This means tracking it, reporting about it, tracking requirements, clarifying the definition of done, observing deadlines, identifying needed help and asking for it. Your mentors are there to generously share their time and knowledge with you, but it is not their job to make sure the task is moving towards completion.
You need to communicate the status of your task to the person who assigned it to you, and be proactive about it. If you need more time than expected, say it. If you need help, say it. If you got stuck, say it. If you finished it, say it. If you don’t know how long it will take to deliver, say it when asked to time-box it.
It is on you to make sure that the person who assigned you the task knows what is the status of it, without their need to constantly check in with you.
To make the communication process even smoother, ask your mentors about their preferred channel and frequency of communication. Have them explicitly tell you whether they prefer you to write everything in a pull request, write an email so they can read it when they have time, write them a Slack message, or come by their desk to talk. Ask whether they want to get regular updates or only in certain circumstances.
Agree on communication protocol for regular work and high importance work—those requirements may be different. And then follow the agreement—this will help you communicate in a way that will respect their time and attention requirements, and usually make them more eager to help out. Everyone wins.
When assigning tasks, team/project leaders usually ask the assignee what is their estimated time until completion. They do it to decrease the uncertainty of the project they manage, and just as importantly—to have you commit to a deadline and finish the task before it.
Let’s get real here—if you’ve never written any production code, don’t know the review process, don’t even understand the task fully when you’re assigned with it, you won’t be able to come up with a realistic time frame for its delivery. If it really is the first time you’re doing something, you won’t be able to predict whether it will take an hour or a week.
It’s fair to explain that you have not completed a similar task in the past and so you don’t know how to estimate the duration of this one. If you’re still being pressed to come with the number, just pull a random number out of a hat that seems most reasonable to you. Insider information—seniors do it from time to time, too. You will then either complete it before the deadline, or ask for an extension and/or help.
In the end, updating duration estimates happens all the time—for some kind of work, you won’t know what are the subtasks of each task and what black holes hide in them. Here’s an interesting, comic-infused article on deadlines and estimates in the startup world for further reading.
Navigating a project with a very high amount of unknowns is one of the hardest things there is at work, yet this is your standard operating environment. It’s very easy to get lost, discouraged, overwhelmed in the process. You need to remember, however, that you need to do your best to move your task towards completion. This means you need to finish it in a way that meets the agreed upon definition of done.
It’s you who is responsible for delivering the task - not your team lead, your mentor, or that super senior person in your team who saves everyone’s butts when they forget something, or run out of steam.
You need help all the time. Anything small and big is an obstacle you’re struggling to get over. Before you go looking for help, put your best effort into solving your own problem. Ask seniors around you how they handle situations like this and what tools they use.
Learn to search for answers on the internet, and learn to do it well. Learn to find available documentation, even if you don’t understand the instructions in it. Learn to suppress the instinct to call out for help and try it yourself first, so when you go looking for help, you are able to summarize what steps you tried and how successful you were.
But what you also need to learn is not to waste infinite time trying to do it yourself, and ask for help—sometimes someone senior will solve in 5 minutes something you’d solve in 5 days.
And so when you’re ready to ask for help, try to define the problem as clearly as possible. Summarise how you tried to solve it yourself, e.g. “This is the article I found I think is on the topic, but I don’t understand the explanation, or I tried it like this and it did not work. I don’t know why.” Or explain how lost you are, e.g. “I need to finish this task, but I don’t understand what exactly am I supposed to do, and don’t know how to achieve it.”
This will help your mentor understand the issue quickly, assure them you’re not wasting their time without thinking it through first, help them by having some guides to look into if you can find some documentation, and mostly—take away a burden of figuring out what they need to do to help you. They can review the current status and understand what needs to be explained or shown, and then just do it.
It will save a lot of their energy and time, and will make them feel more useful and effective. My colleague pointed out some interesting resources on the topic: How do I ask a good question? by Stackoverflow and How To Ask Questions The Smart Way by Eric Steven Raymond
Unless you’re one of those superhumans I constantly read about in the news, you’re prone to giving up if you run out of energy (or hope). Doing things takes time, and doing valuable things frequently takes a lot of it. Like in every adventure story, there are traps and obstacles waiting for you behind every corner. It’s easy to get discouraged and feel hopeless from time to time.
It is your job to bounce back, and keep putting one foot in front of the other until you can run. We’ve already established that your task is your responsibility—you need to find answers, get help, and ultimately get it done.
You need to learn, and fast. Figure out how you learn best—you’ve been doing it for years now, so think of what strategies work best for you. Do you like to layer knowledge like a lasagna—start with basics, progress to more advanced topics later? Do you prefer a tetris approach of fitting random things together until they fit? Do you need to understand the philosophical principles first?
Verbalize your style and be conscious of it, mention it to your mentor if you feel comfortable doing that. Try out and find tools that work best for you—paper notebooks, apps, whatever it is. Learn to make effective notes—or go big, and have a repo with your notes.
And this is important: learn to check your notes and use them when you approach problems. Nothing wastes your time like solving the same problem 3 times in a row, while having it documented in your notes (trust me—I keep doing it regularly, to my horror).
Figure out the structure of teams and responsibilities of various people. Learn how they handover tasks between each other. Learn how it works in your own team. Figure out what implicit and explicit processes and rituals and best practices there are, what things are important to management and your team (is it meeting deadlines? Is it the quality of work? Is it good communication?)
The time for suggesting improvements will come when you have a reasonable understanding of how things (don’t) work, in the beginning you want to know the exact lay on the land so you can operate effectively in it. Fineprint: this is exactly why picking the right team to learn from is so bloody important.
You may be a junior in this line of work, but surely you have life experience you can draw from at this point. Did you work in sales before becoming a yoga teacher? Did you do user support before going into programming? Were you a personal assistant before going into marketing?
What skills, knowledge, tools do you have from your past life that you can apply in this one? Is your team full of super senior specialists missing someone to manage projects? Do they need someone to communicate with users? Or someone to teach them some basic sales skills?
Whatever those are, offer them to your team. This is how you can pay back for the time they will take to mentor you. But make sure there is a good balance—you want to develop in the new career, not slide back into your old one.
Unless you’re one of those mythical creatures whose belief in their own value is rock solid no matter the circumstances, your feeling of worth and ability to do valuable work as a junior may be as fragile as well roasted tomatoes. Poke into it and it spills all its contents.
To make sure you have the energy to keep getting through even the worst of days, take the time to focus on things you do well. Sit down and put an effort into making a list of things that make you remarkable. Write down a list of things you do really well (baking chocolate muffins, levelling up fast in WoW, reverse parking, organizing spreadsheets—literally, anything that makes you proud goes into that list). Have the list always with you and read it regularly. Set a reminder to read it once a day, or a week. Look at it immediately when you feel an instinct to call yourself an idiot, or tell yourself that you suck.
Talk to yourself like you would to your best friend—be real, but also be caring, and gentle, and supportive. After all, you are starting on a journey to development, and growth, and learning. Over time you will accomplish great things, do awesome work, have epic adventures.
Every junior climbing up the ladder of knowledge does so by standing on the arms of the giants. My words can’t possibly express the gratitude I feel towards my mentors, colleagues past and present, supportive bosses, instructors and teachers who generously shared their time and skills with me.
To every one of you, on an off chance that you’ve read this article this far, thank you. I promise I will try not to waste what you taught me, and to pass it forward.
P.S. Many thanks to Honza Javorek for his review and suggestions which enriched this post.