The following are excepts and short summaries of the talk "Things I Was Unprepared For As A Lead Developer", by Pascal De Vink, on the Coding Tech YouTube Channel. The talk is back from 2017, in the event, "WebCamp Zagreb".
The talk deals with the nuances of dealing with a software development team, the rapid changes in being a developer, and finding the
Lead Developer title, a mid way between management and as a senior developer. Pascal remarks about his mistake, what he wish he had kept in mind at the time of leading, how to financially manage assets, and how to deal with people are all very important to the new role, Pascal remarks, rather than just focusing on the code.
What are the developer paths?
The talk starts with showing Brandon Hays' slide, back from 2015 in RubyConf about "Hacking Your Career', and what choices new graduates have when they leave College or University.
Getting promoted to a new position of a Lead Dev at his company, there were a lot of ideas that the speaker had going into the role, about how to drive the project, what features to add in, what things to change, and what role to exactly lead. But as days go by, it simply turns out to not be the case.
Where the initial days were about leading the team forward into the future and into some sort of brand new identity, with hopes and innovative notions, the actual stages dealt with management roles, dealing with people, being sure how to map responsibilities, delegating, reaffirming, setting boundaries, and driving communication - so much so that coding seemed like 40% of the actual workload, and that being only with the code review sessions.
Pascal recommends some things to listeners before they take on such a role to avoid mishaps, confusion, and to save lost time. He focuses on removing
distracting tasks that inhibit the project being forward, being a decision backed by many factors.
The key points
Communicating to the people you are working with about exactly what you expect the project to go towards, and they they expect back from you as output. Having a clear line of what the requirements and the work needed for that will be eases out tension and makes people agree to clear vision about the product being discussed.
Here, coding and working just doesn't mean being behind the computer screen all day, it can be mean pair programming, code reviews, refactoring, designing new solutions.
Keeping in mind what the key driving points are, and what slots to allocate for which task at which time of the day, and when to reschedule if needed. It can be about scheduling what will happen the next week, a month later, or what tasks need to be done today. All are essential for realizing what the needed work to be done is.
Say No More Often
Sometimes we just can't have everything. Saying
no does not exactly mean being rude, but rather trying to find a middle gap between what two groups of people may want to do, and finding a way with
Even though you may love to help, it's sometimes better to say
no politely, and suggest some other alternative solutions or to guide the person to some other person that can handle their queries.
Not Taking Things Personally
It's a team of people - it's not just
you, so it's fine when changes or work is needed to be done. It does not have be personally about
you, and you don't have to take the challenges head on by yourself - it's a team of people. Which brings us to the next point ...
Culture ( Tasks )
People entering into a team form the culture of that team, since everyone brings in their own experiences, ideas, and their way of working. It just so happens, that when new people come into a team, or leave a team, the culture 'changes'. New people affect the dynamics of the team. Some are more naturally geared towards leading, some more towards being technically oriented.
Giving two quotes for the talk,
"The culture of any organization is shaped by the worst behavior the leader is willing to tolerate" - Gruenter and Whitaker
What that 'behavior' is depends entirely on you, coming late, not communicating etc.
Similarly, Pascal says,
"Culture is shaped by the best behavior a leader is willing to promote"
People around you are very similar to you - they like working with others, which is why they are in a team in the first place, and they genuinely believe they have something to contribute to the team. Trusting people to get the job done, and listening to what they have to say about their opinions is crucial to having good to great discussions, and introducing new ideas to solve complex problems. It can also be a way to let people invest emotionally into the work you are trying to get done.
No one wants to work for month on end and see little to no results of the work they have done. Keeping people excited about what to expect from their work, what challenges they might face, is a pretty good way of keeping ambitious people finding value in the work that they do.
Consider the costs and how to keep them balanced for the company or the business you are working for.
It's Not About The Title!
Sure, titles come and go, but the flow of communication, ideas, agenda keeping, and keeping a good workflow in shape is much more important than just titles.
Some other key points
- Mentoring - if you want people to find material and learn on their own, you might need to teach people what approaches they have or should take, and spending dedicated time with them to talk them through the steps.
- Giving And Receiving Feedback - this goes both ways, asking for feedback gives you an idea of how well you are doing your role, and you can give your feedback to them, vice versa
- Hiring ( And Firing ) People - Consider the effect that this will have on the culture of the team. No one likes to fire, but hiring new people can have new doors of opportunities.
- Sickness / Personal Problems - learn to be gentle here
- Lead By Example - self explanatory!
Some Things You Can Do Right Now
Some ways to get better at leading a team can be as follows,
- Start mentoring
- Ask for help
- Public speaking