Not Your Everyday Tech Lead: What Does It Mean To Be TL in a Lean Software Company?

Rate this content
Bookmark

The experience of being a Tech Lead can change from organisation to organisation, from being an ivory tower architect to getting stuck in the weeds with complex technical challenges. A Lean Software Company is one whose approach is deeply rooted in optimising customer value through studying the techniques used in Toyota’s Production System.

Old-school Agile also has many roots in Lean principles - Kanban, for example, is a tool used on the Toyota production line. But what can the manufacturing of cars teach us about software development?

Join me for this exploration through the world of a TL as experienced within a Lean Software Company as I reveal some of the secrets that allow these companies to deliver higher-quality software at speed.

This talk has been presented at C3 Dev Festival 2024, check out the latest edition of this Tech Conference.

FAQ

A tech lead is not just a senior developer. While a senior developer focuses on technical issues and coding, a tech lead is responsible for creating the conditions for the team to succeed, which includes problem-solving and improving workflows.

The 'cycle of firefighting' refers to the constant handling of recurring problems without solving their root causes. This can lead to burnout and inefficiencies as the tech lead is constantly shifting focus between coding and resolving issues.

Lean principles originated from the Toyota production lines and focus on problem-solving to make incremental improvements. They aim to create stable and efficient workflows, which help in delivering high-quality outcomes reliably.

Standardization in Lean methodology involves defining the state of the art for work processes to create stable conditions. This helps in identifying when things are off standard, making it easier to solve problems and maintain quality.

Andon is the surfacing and visualization of problems that occur in work processes, while Genchi Genbutsu means going to the actual place to understand the real conditions and issues faced by workers. Both practices help in effective problem-solving.

Tech leads should focus on identifying small, specific problems and solving their root causes. They should use the 4M model (Maker, Machine, Methods, Materials) to categorize and address issues, ensuring continuous improvement.

Focusing on standardization and problem-solving helps create stable working conditions, reduces recurring issues, and improves team efficiency. It allows tech leads to maintain high performance and deliver value effortlessly.

A tech lead in a Lean software company creates and maintains the conditions for developers to deliver value effortlessly. This involves identifying problems in the working conditions and solving them to ensure a high-performing team.

The maker-manager model divides roles into makers, who directly create the product or service, and managers, who create and maintain the conditions for makers to deliver value. In a Lean company, tech leads are seen as managers.

The 4M model categorizes inputs that go into making high-performing teams: Maker (health, knowledge, skills), Machine (codebase, equipment, tooling), Methods (work standards), and Materials (requirements, designs). Problems are solved differently based on these categories.

James Haworth Wheatman
James Haworth Wheatman
20 min
15 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
The Talk discusses the role of a tech lead in a lean software company and the challenges they face. It emphasizes the importance of problem-solving and continuous improvement in software development. The speaker shares their personal struggles as a tech lead and the need to prioritize between being a maker and a manager. The Talk also highlights the significance of identifying root causes and solving problems to prevent future issues. Overall, it provides insights into the role of a tech lead and the role problem solving plays in creating optimal conditions for developers.

1. Introduction to the Role of Tech Lead

Short description:

Today, I want to talk to you about the role of tech lead. I want to share an underrepresented perspective on what it means to be a tech lead in a lean software company. As a tech lead, I saw the role as a senior developer who could solve any technical issue, but I was mistaken. This misconception had costly consequences on my first project as a tech lead.

Today, I want to talk to you about the role of tech lead. You may already have some impressions of the role, both positive and negative. Perhaps you're a developer aspiring to take the next step, or you've recently been promoted and you're finding your feet in the role, or perhaps you've been a tech lead for years.

I want to share what I see to be an underrepresented perspective within the industry, and hopefully you can gain some value from that. That is what it means to be a tech lead in a lean software company.

My name is James and I've been working as a tech lead for the past two years now, building full-stack web and mobile applications at Theodo UK, which is a lean software consultancy. But actually, I joined Theodo as a developer, so this was me, not this. And consequently, I built a picture of what it meant to be tech lead by paying attention to the tech leads that I had had over the years.

There were a few things that I watched them do. They defined the project architecture and cleared up any difficult technical uncertainty. It helped me when I was stuck. They were always the person to get me out of a sticky situation. They managed to build up really good trust with our clients, and they were also able to drive the project as a whole towards success. And so, essentially, I saw the tech lead as a senior developer, a person with the technical experience to solve any technical issue that might arise, rather than an entirely different role within the team. And this was a fundamental misunderstanding of the role that was very costly for me personally.

On my first project as a brand new tech lead, I was working internationally with a large management consultancy, and we were traveling to see our clients every two weeks or so on site, building a greenfield e-commerce platform to sell photovoltaic cells to be installed on private properties. So, let's see how this misconception, that tech leads are essentially senior developers, affected my daily work. I would pick up a ticket and start coding. After all, I'm a developer, so I should be working on tickets.

2. Struggles as a Tech Lead

Short description:

Often, complex problems interrupted my workflow as a tech lead. One issue was caused by a change in the data type without updating the TypeScript types, leading to a recurring bug. Despite appearing as a highly functional team, I was burning out due to the cycle of firefighting. It was a pivotal interaction with the CEO that reframed my understanding of the tech lead role. I realized I was trying to do two jobs: developer and tech lead, leading to struggles with interruptions and neglecting tech lead responsibilities.

Often, this could be something quite complex. For example, we were working on some pretty unique React components that allowed a user to select their roof on a map and see a visual representation of their solar panels that would be installed on their roof.

Then, a problem would interrupt my flow. And this was usually a developer asking for help with something. Perhaps one of the developers was struggling to handle a data coming directly from our CMS. After some time debugging, in the end, it turned out that someone had made a change to the data type in Contentful without updating the TypeScript types on the front end, and this had caused a bug.

So, we updated TypeScript and we fixed the bug. But now I'm behind with my own work. So, the components that I'm building are core to our flow. So, I hurry back to coding and try and get back in the zone after switching contexts. However, because I only addressed the symptoms, the problem reoccurs, and two weeks later, we've got another bug because someone else made a change to Contentful without updating TypeScript.

The result, after about six months on the project, I realized I was starting to burn out. We call this the cycle of firefighting. Sure, from the outside, it seems like we were a highly functional team, and our clients were really happy. We were pushing new features on a daily basis, and I was keeping the developers afloat. But the effort was a lot, and I was definitely working harder and not smarter.

Fortunately, I've got a number of mentors at work to help me grow into the tech lead role, and they help me clarify a mental model of what I should be aiming for. So, after this low point, I actually had a pivotal interaction, which reframed my understanding of what it means to be tech lead.

During a company-wide training, the CEO offhandedly asked the managers to raise their hands, and she was making a point that was geared towards them, and I didn't raise my hand. So, she looked around the room, a bit confused, and noticed me. She said, come on, James, why isn't your hand up? Of course you're a manager. You're a tech lead. The problem was, I didn't see myself as a manager. To me, that seemed like a dirty word.

I thought that manager was someone who coordinates the work within their team, but doesn't actually do the work themselves, and it turns out that our CEO had a completely different understanding of what the word manager should be. After that training, through discussion with her and others, I learned about the mental model of management that we use in our group. The reason that I was struggling with the cycle of firefighting and burnout was because I was trying to do two jobs.

On the one hand, I was struggling to be a developer getting my tickets done because I could be interrupted at any point in the day, needing to jump in, help out with tickets of the developers, which interrupted my own development flow. On the other hand, because I was always behind with my development, I neglected some of the responsibilities of the tech lead in order to play catch up with my tickets. And this meant that the team ran into some problems over and over, and it was a constant uphill battle to stay at our team velocity as the project went on.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

A Framework for Managing Technical Debt
TechLead Conference 2023TechLead Conference 2023
35 min
A Framework for Managing Technical Debt
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Remix Flat Routes – An Evolution in Routing
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – An Evolution in Routing
Top Content
Remix Flat Routes is a new convention that aims to make it easier to see and organize the routes in your app. It allows for the co-location of support files with routes, decreases refactor and redesign friction, and helps apps migrate to Remix. Flat Folders convention supports co-location and allows importing assets as relative imports. To migrate existing apps to Flat Routes, use the Remix Flat Routes package's migration tool.
Principles for Scaling Frontend Application Development
React Summit 2023React Summit 2023
26 min
Principles for Scaling Frontend Application Development
Top Content
Watch video: Principles for Scaling Frontend Application Development
This Talk discusses scaling front-end applications through principles such as tearing down barriers, sharing code in a monorepo, and making it easy to delete code. It also emphasizes incremental migration, embracing lack of knowledge, and eliminating systematic complexity. The Talk highlights the use of automation in code migration and the importance of removing barriers to enable smoother code migration.
Fighting Technical Debt With Continuous Refactoring
React Day Berlin 2022React Day Berlin 2022
29 min
Fighting Technical Debt With Continuous Refactoring
Top Content
Watch video: Fighting Technical Debt With Continuous Refactoring
This Talk discusses the importance of refactoring in software development and engineering. It introduces a framework called the three pillars of refactoring: practices, inventory, and process. The Talk emphasizes the need for clear practices, understanding of technical debt, and a well-defined process for successful refactoring. It also highlights the importance of visibility, reward, and resilience in the refactoring process. The Talk concludes by discussing the role of ownership, management, and prioritization in managing technical debt and refactoring efforts.
Building High-Performing Cross-Cultural Teams
React Day Berlin 2022React Day Berlin 2022
25 min
Building High-Performing Cross-Cultural Teams
The Talk discusses the importance of effective communication and collaboration in cross-cultural teams. It emphasizes the impact of culture on communication and performance evaluation. The speaker highlights the differences between low-context and high-context communication styles and the need to understand cultural nuances. It also explores the challenges of giving feedback in multicultural teams and suggests ways to improve communication and create a feedback culture. The influence of language on communication and the importance of transparency and honesty in feedback are also discussed.
How to Make a Web Game All by Yourself
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
How to Make a Web Game All by Yourself
This talk guides you on how to make a web game by yourself, emphasizing the importance of focusing on tasks that interest you and outsourcing the rest. It suggests choosing a game engine that allows distribution on the web and aligns with your understanding and enjoyment. The talk also highlights the significance of finding fun in the creative process, managing scope, cutting features that don't align with the game's direction, and iterating to the finish line. It concludes by discussing the options for publishing the game on the web and leveraging unique web features.

Workshops on related topic

Integrating LangChain with JavaScript for Web Developers
React Summit 2024React Summit 2024
92 min
Integrating LangChain with JavaScript for Web Developers
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Dive into the world of AI with our interactive workshop designed specifically for web developers. "Hands-On AI: Integrating LangChain with JavaScript for Web Developers" offers a unique opportunity to bridge the gap between AI and web development. Despite the prominence of Python in AI development, the vast potential of JavaScript remains largely untapped. This workshop aims to change that.Throughout this hands-on session, participants will learn how to leverage LangChain—a tool designed to make large language models more accessible and useful—to build dynamic AI agents directly within JavaScript environments. This approach opens up new possibilities for enhancing web applications with intelligent features, from automated customer support to content generation and beyond.We'll start with the basics of LangChain and AI models, ensuring a solid foundation even for those new to AI. From there, we'll dive into practical exercises that demonstrate how to integrate these technologies into real-world JavaScript projects. Participants will work through examples, facing and overcoming the challenges of making AI work seamlessly on the web.This workshop is more than just a learning experience; it's a chance to be at the forefront of an emerging field. By the end, attendees will not only have gained valuable skills but also created AI-enhanced features they can take back to their projects or workplaces.Whether you're a seasoned web developer curious about AI or looking to expand your skillset into new and exciting areas, "Hands-On AI: Integrating LangChain with JavaScript for Web Developers" is your gateway to the future of web development. Join us to unlock the potential of AI in your web projects, making them smarter, more interactive, and more engaging for users.
From Engineer to Leader: A Workshop for First-Time Tech Leaders
TechLead Conference 2024TechLead Conference 2024
144 min
From Engineer to Leader: A Workshop for First-Time Tech Leaders
Workshop
Andrew Murphy
Andrew Murphy
Transitioning from an individual contributor role to a leadership position, especially in the fast-paced tech industry, is hugely challenging. Most new leaders don't receive any training at all in the first 10 years of their new responsibilities.Our comprehensive workshop is designed to assist new and emerging tech leaders in understanding their new roles and gaining the skills to make them confident, happy and effective leaders.
Managers Are From Mars, Devs Are From Venus
TechLead Conference 2024TechLead Conference 2024
111 min
Managers Are From Mars, Devs Are From Venus
Workshop
Mo Khazali
Mo Khazali
A Developer’s Guide to Communicating, Convincing, and Collaborating Effectively With Stakeholders
It’s a tale as old as time - collaboration between developers and business stakeholders has long been a challenge, with a lack of clear communication often leaving both sides frustrated. The best developers can deeply understand their business counterparts’ needs, effectively communicate technical strategy without losing the non-technical crowd, and convince the business to make the right decisions. Working at a consultancy, I’ve both failed and succeeded in architecting and “selling” technical visions, learning many lessons along the way.Whether you work at a product company, are a consultant/freelancer, or want to venture beyond just being a developer, the ability to convince and clearly communicate with stakeholders can set you apart in the tech industry. This becomes even more important with the rise of GenAI and the increasingly competitive developer market, as problem-solving and effective communication are key to positioning yourself.In this workshop, I’ll share real-world examples, both good and bad, and guide you through putting the theory into practice through dojos.
Out of the Frying Pan, Into the Fire: A Manager's Guide to Helping New Developers Thrive
TechLead Conference 2024TechLead Conference 2024
35 min
Out of the Frying Pan, Into the Fire: A Manager's Guide to Helping New Developers Thrive
Workshop
Andrew Coleburn
Andrew Coleburn
Onboarding to a new project can be difficult, no matter your background and experience. But it can be especially challenging for new developers straight out of school or a coding bootcamp. Drawing on personal experience as a bootcamp grad and JavaScript consultant, this talk will discuss tips and strategies for managers to help the new developers on their teams get their bearings in an unfamiliar codebase, so they can make more of an impact, faster!
How to create editor experiences your team will love
React Advanced 2021React Advanced 2021
168 min
How to create editor experiences your team will love
Workshop
Lauren Etheridge
Knut Melvær
2 authors
Content is a crucial part of what you build on the web. Modern web technologies brings a lot to the developer experience in terms of building content-driven sites, but how can we improve things for editors and content creators? In this workshop you’ll learn how use Sanity.io to approach structured content modeling, and how to build, iterate, and configure your own CMS to unify data models with efficient and delightful editor experiences. It’s intended for web developers who want to deliver better content experiences for their content teams and clients.