Have you ever wondered what your manager is doing all day? Are you guilty of secretly thinking he/she is playing Candy Crash and attending endless stream of useless meetings? If yes, then you are normal. Management is often invisible and hard to understand. We have tons of books and courses on management but too few good leaders. Sadly, many of us had a bad boss and too of us had a great boss. This post will share my approach to being a good leader.
My management philosophy revolves around three things but one of them is the most important because if we get it right, then all other parts will fall into place. One thing that I care about the most, and which is my main job, is people. I coach, mentor and help people to grow in their careers. I find their strengths and talents. Most people are not that great at self awareness and self observation because their insecurities, desires or emotions interfere with the clear perception of reality. Observing people from outside as a manager or peer gives much better results—a much cleaner and fuller picture.
My job is to match what people are good at (their talent, not necessarily their current skills) with the opportunities and needs of my team, or other teams within my company. If it’s a small company and we don’t have a good match, then I can encourage the person to look outside. In the end, it’s better for the company to have someone who is great at something and for that person to find a new place where he/she really shines. It’s a typical win-win but a counterintuitive at first.
With companies trying to outcompete each other in hiring in this notoriously low-unemployment job market some manager coerce, deceive and force engineers to stay at a place they don’t excited about. This is terrible for engineers and not great for companies either because they get low motivated people. I’m the opposite. For me people are first. They have different strengths and different motives. Someone is motivated by prestige of a higher title and other by respect of their peers, or money. Some people are good at backend while others like the more customer-facing frontend. Understanding them and aligning with the team and the company is the key to success.
The second part of my job as a good manager is delivering products. I’m helping product managers or stepping into their roles to fill in the gaps as needed. I’m defining the product, breaking it down into technical tasks, helping my team leads to create actionable tasks and keeping everyone accountable. I’m a fan of Google Sprint-like brainstorming and Objects and Key Results (OKRs). I let my engineers set roughly half of the quarterly goals, especially goals around technical stack, tech debt and infrastructure, because they are closer to the problems. They are the subject-matter experts. They know what’s better and more effective. My job is to balance the scale and make judgements: more technical work vs. more product work. Sometimes my job is to push for faster and more product deliveries and new features, and take on some tech debt (like when we pushed for the new DocuSign web app release to be ready in time for the conference). Other times, I push back on the product work and have talks with product managers to explain to them that we are better off to spend time on updating our tech stack and paying tech debt.
As a manager, I need to take extreme ownership even if parts of my team’s work is outside of my control. Often times, I work with different teams and even different organizations without our company. Sometimes I work with outside vendors or clients. That’s even harder. But in the end, I plan accordingly, organize, coordinate and communicate to resolve any dependencies for my projects to eliminate wasted time and to let my engineers focus on their main work (On some teams, a Program Manager can help with this work). In the end, companies must deliver what customers want and need. If we don’t deliver, then we’ll be outcompeted and there would be no need for managers or software engineers.
The last part of my work is something that I truly believe makes the world a better place that I’m really passionate and care about. My third job is meta, that is to instill great engineering culture, help out the community (within the company or outside) and improve the engineering itself. I speak at conferences. In the last few years, I spoke at over 20 conferences all over the world and taught over 1000 engineers in person. I taught probably 40,000 engineers virtually through my edX, Coursera, YouTube, podcast, Node University, Webapplog blog, Medium, GitHub and book materials. (It’s hard to quantify the actual number due to overlap of the consumers of these mediums.) My books Practical Node.js and React Quickly sold in 10s of thousands. Who knows how many, many more of these books were downloaded from pirate sites or shared for free?
Helping the community does not only feel right and good, it also boosts one’s career. I highly recommend it to anyone. I encourage my engineers (who have talents for that) to write blog posts, speak at meetups and conferences, and contribute to open source. I know a graduate form Hack Reactor, which is now part of Galvanize (I used to give lectures there). This person quit his job at a promising late stage startup that is a famous marketplace for discounted online courses. The reason was that his employer prohibited him to work on open source. What a mistake on the part of this employer. They not only lost this engineer who ended up being a very good tech teacher and an expert, but they also lost the good exposure which could have helped this company with recruiting.
If we all consider our job as a trade akin to a guild of programmer and take pride in our work and trade, then we will be enjoying the work much more. Open source is growing and becoming more and more popular. Now, software engineers can learn React or Spring and find a job at a lot of companies because fewer and fewer companies have a need or desire to build in-house tech.
This sums up the main aspects of my management philosophy. I’m a software engineering manager but this post can apply to any knowledge/informational management: people, deliveries and community. If you read this blog and your management doesn’t care about all of these three things, then maybe it’s time to start thinking if that’s a good place for you and dust off your resume and start looking for a better place to spend 1/3 of your life.