Coding Made Me Better Leader

Feb 7, 2023 10:23 · 406 words · 2 minute read

As a people manager, my primary focus is on leading and guiding my team to achieve our common goals. But, I never expected that my experience with coding would have such a profound impact on my ability to lead and manage others. From building software applications to learning about systems thinking and abstraction, coding has taught me valuable lessons about leadership. In this blog, I want to share some of the key insights I gained and how they have helped me to become a better leader.

  1. Functionality before optimisation As a developer you always aim to make the module functional before optimising it. This is the single most important lesson that I try and apply to problems in business, as pre-mature optimisation significantly reduces speed and effectiveness of teams.

  2. Coding teaches problem-solving skills By learning to code, you develop a logical and analytical approach to problem-solving. Being able to break down complex tasks into smaller, manageable parts and finding efficient first-principle solutions to problems is a valuable skill I acquired because of coding.

  3. Trade-off mindset As a system designer, you are always thinking of trade-offs between, scalability, latency, maintainability, and effort. The ability to make effective trade-offs is key to building company strategies. You also think about whether to build the module from scratch, buy a third-party solution, or leverage open-source projects. This framework of evaluating to Build/Buy/Borrow parts of businesses is key to achieving high velocity and agility in teams.

  4. Attention to detail It can be frustrating as a developer when things don’t work out as expected, debugging requires a lot of patience and perseverance. This taught me resilience and to look for small details that might be breaking the system.

  5. Coding fosters a growth mindset The world of programming evolves at a break-neck speed. Keeping up requires a mindset of constant upskilling.

  6. Coding promotes systems thinking and abstraction Coding requires understanding how different parts of a system interact with each other and how to design modular and reusable components and their interfacing (APIs). This same systems thinking can be applied when designing organizational structures and teams. This mindset can be used to design effective team structures that can be easily integrated into a larger organization. By breaking down a company or a team into smaller, modular components that can work together efficiently, and understanding how different roles interact with each other, one can create organizational structures that are better able to adapt to change and achieve their goals.

GL HF;