So I spent a few weeks talking about things that I learned from my dad that were awesome. I want to take this week to reflect on one thing that I think he could have improved on.
Growing up on the farm, there were two ways to do things: My father’s way, and the wrong way.
We all immensely disliked doing things his way. It should not be a surprise to anyone that I have seen this pattern manifest itself in engineering teams.
One of the challenges with leadership is trying to set the direction for your team and giving them enough freedom to make their own decisions along the way.
The reason you might have a particular idea for how to build out a software system is that you have encountered a similar problem in the past and have built up some patterns that you like to apply.
The challenge is that if you provide too much direction and guidance, then the team building your platform may not go through those same mental transformations and growth, and they might greatly dislike the process along the way.
There is a fine line between giving people enough direction and support to get to the business goal and giving them too much guidance which might smothering the joy out of their work.
There will come a point in your career where you will be confronted with this problem. You will have a software system to build, and you have a particular approach that has worked for you in the past. You will also have several engineers working with you who might not have relevant experience and you will need to coach them to get it built.
The more senior the development team you work with, the better they are at dealing with ambiguity and creating their own systems.
You will also have an engineer or two who, while just not quite ready, believes they understand the issues well enough that they should have considerable freedom on the project.
The most successful leaders can tell the difference between the previous two groups of engineers. They will let their best people build software unimpeded and check in to give them mild directional feedback and some suggestions on changes to make that will be beneficial.
For the latter engineers, who are not quite there, it is important to find a piece of software for them to build that is relatively low risk and give them a chance to deliver a successful finished product. There is a decent likelihood they will miss the mark and that is okay.
Setting up small parts of the project for people to have an opportunity to ship a piece of software will let your team have the freedom to build things the way that they want, and for you to give them some feedback on how to improve it in flight.
It takes a few years to figure out the right balance of testing people’s limits and knowing when you have a member on your team who you can trust to drive a project to completion.
With all due respect to my father, there is often precisely one wrong way to build software: Your way.
Leaders who try to push their ideas or solutions onto a team often fail. The worst of them will appeal to their role or title as a means to get engineers to build things the way they want. “You will do this because I said so and I am the boss” is not written on a fortune cookie for a reason.
The best leaders will show everyone where the goal is, give them some patterns that they have used in the past as examples, and step in to provide minor course corrections along the way.
Will your team ship perfect software? I doubt it. You probably did not either early on in your career.
Will they learn from the experience? Absolutely. And this is the most important thing for you to manage as a leader in a software development organization.
I am reminded of an interesting quote I heard by another engineering leader. “The best software architects create software architects”.
I think that is very true.
There is nothing more satisfying than working with a team of people who grow professionally and are able to build great pieces of software on their own terms.
I take that back. Perhaps the one thing that is more satisfying to me is when I see someone who has mastered their craft and is ready to mentor and coach the next generation of engineering leaders by letting go of the steering wheel and telling someone on their team “here, you drive.”
Thank you for reading along! It is another short post this week. If you find my ideas wrong or disdainful, then here, enjoy some ironic merchandise from The Office. I implore you to buy this clearly promoted fine Amazon product. After all, if you will not profit from my noise-making, then perhaps maybe I should!
See you next week!