This is "Through the Stack", a weekly list of links relating to topics relevant to Lead developers (actual or aspiring) working with an internet related product.
Many lead developers, tech lead and staff engineers have their hands in many projects and influence many layers in their organisations. This publication is aimed at sharing thoughts and content that are relevant to such profiles.
If you have comments or content to suggest please reach out to us by email firstname.lastname@example.org .
It's about vision
With the new quarter starting it's a good time to revisit the bigger picture. As senior, staff , principal engineers, VPs and CTO we are often involved in defining and supporting strategies, goals and objectives.
A. Osmani gives a good overview of why and how to set a long term vision and mission for your team. It's a good read and will definitely help anyone in an engineering position to understand, at least the why, if not the how. The author links up to https://www.bain.com/insights/management-tools-mission-and-vision-statements/ to give some explanation on mission and vision statements.
Yet, personally, I prefer to consider the approach of James Stanier in "The engineering manager". In that post (back in 2020) he makes an interesting reflection on structuring work and vision. To do so he refers to the "three levels of war" (tactical, operation and strategic) :
- Tactical: guiding others to win individual battles and engagements.
- Operational: planning, conducting, sustaining and adapting campaigns to accomplish strategic goals.
- Strategic: defining outcomes that form strategic goals: why and with what we will achieve.
To sum up both phrasing : the goals and objectives are operational and tactical parts, while strategies are ... well strategies indeed. So indeed : defining and sharing a clear Vision within the team (or company) is a reflection of Strategy set for the company.
As you go towards finer details goals will allow to translate that Strategy into more actionable, tactical, items : Objectives.
And about people
Managing is caring, isn't it ? As engineers we will end up leading, if not managing, other people in our teams. Learning early to care for your team mates as part of that leading is important.
Most of us have heard managers say things like "I am not your [dad|mom] I am not here to listen to your life". Unfortunately. Those are not managers, they are just a whip meant to keep things moving.
Instead, we could say that we are indeed here to listen. It's easier in an office setting but it also works remotely. It's just a matter of caring and reaching out.
I was reminded that taking time to care about other team members, especially if you are more senior than them, is something that will really really help not only the team members but also the team and the company overall.
That's why, even if you are not the lead or the manager of the team, it's important to reach out to others, regularly and especially when you have a feeling something is wrong.
This will not only help your fellow teammates but also build trust and ensure they will come to you when they are in need of help in the future. Remember that many people won't call for help when in need. There are many reasons to this. Yet, one great way to insure they will is to ensure they know you care about them and that you are here to listen.
As senior, staff or lead we should invest time in learning how to do 1-1 meetings well and understand how this can help in the long run. There are many resources on this out there but you can start with "Effective One on Ones". Yet, understanding some basic mechanism of coaching such as the ones N. Knight describes in Using coaching skills to grow compassion, empathy and kindness might help a lot more to understand what to do in 1:1 meetings.
If you are working remotely and wondering about pay in big and small companies ... you might want to read this twitter thread.
A quick tip about ActiveStorage on how to not update all attachments to a model instance.
- Tech lead journal episode 83 with James Stanier : great episode around Remote work as J. Stanier's book "Effective remote work" is out.
- Remote Ruby episode 173 with Sebastien Auriault
This content is written and published by Imfiny, a consulting company based in France. We do Ruby software engineering and devops in the Cloud (AWS, GCP and others) as well as training and supporting teams in their journeys to grow code, infrastructure and practices (production engineering, incident management, retrospectives, ...).
We are available for 3 to 18 months contracts, contact us.We have courses available on https://learn.imfiny.com/ .
Illustration photo by https://unsplash.com/@muhraufan