Skill Development
Are your engineers getting bogged down in technical debt because they lack the skills to effectively break down complex problems? Or struggling to deliver impactful solutions because they aren’t truly understanding user needs? For two decades, I've watched engineers – and their managers – get caught in a perpetual cycle of “skill development” focused almost entirely on technical proficiency. Learn the latest framework, master a new language, dive deep into system design. These are, of course, important. But they represent only a sliver of the skillset that truly defines a high-performing, well-rounded engineer – and, critically, what engineering managers need to understand to foster that development effectively.
We treat skill development like acquiring tools. We think, “I need to learn X so I can do Y.” But what if the real skill development isn't just about what an engineer can do, but how they approach work, problem-solving, and collaboration? This is where the conversation shifts from purely technical to a surprisingly holistic view.
The Four Factors: Beyond Technical Prowess
I’ve often thought about skill development through the lens of a simple equation: Ability + Interest + Effort + Luck = Great Work. It sounds almost too simplistic, but it's remarkably accurate. It’s important to recognize that these factors aren't independent; they amplify each other. For example, genuine interest fuels sustained effort, and a strong foundation of ability allows an engineer to explore more creative solutions. As managers, we often focus intensely on ability (through training, mentoring) and effort (expectations, performance reviews). But we frequently neglect interest and underestimate the role of luck.
Let’s break this down:
- Ability: This is the foundational technical skill. It’s the language syntax, the data structure knowledge, the system design expertise. We must invest in this, but it’s increasingly a baseline expectation.
- Interest: This is the crucial differentiator. Engineers who are genuinely interested in the problem they’re solving, not just the technology used to solve it, are exponentially more effective. They’re more likely to take initiative, explore creative solutions, and persevere through challenges. Imagine a developer assigned to a complex data pipeline. If they're fascinated by data and its potential, they'll likely go the extra mile to optimize it, even beyond the initial requirements.
- Effort: Consistent effort is non-negotiable. But effort sustained over time comes from a combination of ability and, crucially, interest.
- Luck: Let’s be honest, being in the right place at the right time, or stumbling upon a crucial insight, plays a role. We can’t control luck, but we can create environments where lucky breaks are more likely to happen – through experimentation, open communication, and diverse perspectives.
The Surprisingly Underdeveloped Skills
So, what skills often get overlooked in the rush to keep up with the latest tech? Here are a few that I've consistently seen separate good engineers from exceptional ones:
- Problem Decomposition: The ability to take a large, ambiguous problem and break it down into smaller, manageable pieces. This isn’t taught in most coding bootcamps. It’s a critical thinking skill honed through experience and deliberate practice. For example, when faced with a bug report like "the app is slow," a skilled engineer won't just start randomly profiling code. They’ll break it down: "Slow for whom? Under what conditions? Which specific features are affected?"
- Communication & Influence: Engineering isn’t a solo sport. The ability to clearly articulate technical concepts to both technical and non-technical audiences, and to persuasively advocate for solutions, is paramount. A strong communicator can effectively explain the trade-offs of different architectural choices to a product manager, ensuring alignment and informed decision-making.
- Learning How to Learn: The tech landscape changes constantly. Engineers who can rapidly acquire new knowledge and adapt to evolving technologies are invaluable. This is about meta-learning—understanding your own learning process. An engineer adept at learning can quickly pick up a new framework, not just by following tutorials, but by understanding the underlying principles and applying them to existing knowledge.
- Systems Thinking: Understanding how different parts of a system interact, and how changes in one area can impact others. This is about seeing the big picture, not just focusing on individual components. When adding a new feature, a systems thinker will consider its impact on other parts of the system, potential performance bottlenecks, and long-term maintainability.
- Empathy and Collaboration: Truly understanding the needs of users and colleagues. Engineering is about building things for people, and that requires empathy. An empathetic engineer will actively seek feedback from users and colleagues, ensuring that the solution truly addresses their needs and pain points.
What Managers Can Do: Beyond the Training Budget
Okay, so how do we, as managers, foster these often-overlooked skills? Recognizing that budgets are often tight and deadlines are pressing, here are some actionable steps:
- Focus on Problems, Not Just Solutions: When assigning tasks, frame them as challenging problems, not just implementation details. Encourage engineers to explore different approaches and justify their decisions.
- Create Space for Exploration: The pressure to deliver can stifle creativity. Allocate time for “spike solutions” and experimentation. Consider dedicating 10% of sprint time for engineers to explore new technologies or approaches.
- Encourage Cross-Functional Collaboration: Break down silos. Give engineers opportunities to work with designers, product managers, and other stakeholders. This fosters empathy and broadens their understanding of the problem space.
- Promote Knowledge Sharing: Encourage engineers to present their work, write blog posts, and mentor others. This reinforces their understanding and builds a culture of learning.
- Be a Coach, Not Just a Director: Instead of telling engineers how to solve a problem, ask questions that guide them towards the solution. Focus on helping them develop their critical thinking skills.
The Danger of Rigid Methodology
I've seen teams become paralyzed by process – rigidly adhering to methodologies without understanding why. As Jørgensen and Sjøberg pointed out years ago, teams often focus on doing things right instead of doing the right things. They found that an overemphasis on process can stifle innovation and lead to inefficient workflows. We need to empower engineers to adapt methodologies to the specific needs of the project, not the other way around. This means encouraging experimentation, fostering open communication about what's working and what's not, and being willing to adjust the process as needed.
Ultimately, skill development isn’t just about keeping up with the latest technology. It’s about fostering a culture of continuous learning, critical thinking, and collaboration. It’s about empowering engineers to become well-rounded problem-solvers who can thrive in a rapidly changing world. And it’s a responsibility that falls squarely on the shoulders of engineering leaders.
Challenge: This week, try dedicating 10% of sprint time to "spike solutions" and see how it impacts your team’s creativity and problem-solving abilities.