After pondering the question for quite some time, and reflecting on the many exceptionally talented developers I’ve had the pleasure of working with over the years and work with now, I have finally decided to articulate my thoughts on what truly defines an exceptional developer. In doing so, I aim to steer clear of buzzwords like “10x Code Ninjas” that are often thrown around. Instead, my objective is to outline the qualities that make a developer truly great.
Back in 1991, Tim Brown of IDEO popularized the concept of T-Skilled employees, emphasizing their immense value in the workforce. Simply put, this metaphorical “T” represents an individual’s depth of skills and expertise in a specific field, while the horizontal bar represents their ability to collaborate across disciplines and apply knowledge beyond their own expertise. While possessing this aptitude is important, the ability to seamlessly transition between different areas of knowledge is what sets exceptional developers apart. They possess a broad range of knowledge across various vertical topics and tools, complemented by in-depth expertise in specific areas. This additional layer to the “T” is crucial for building knowledge and applying wisdom gained from a diverse range of experiences and problem-solving scenarios.
Less experienced developers tend to have a limited toolkit, often resorting to familiar solutions for every problem they encounter. For example, a junior .NET developer tasked with synchronizing data between databases might consider using EF Core and a .NET console app, unaware that there might be better tools for the job. In contrast, experienced developers would propose a range of approaches, recognizing that the task is more about data synchronization than programming, and that the choice of tools should align with the specific requirements. They don’t view every problem as a nail to be hit with the EF Core hammer.
Such realizations come with experience, but it’s important to note that experience alone does not guarantee this level of proficiency. There are senior developers with extensive experience who still rely on familiar solutions. What truly matters is a developer’s hunger and passion for learning. In the fast-paced world of technology, continuous learning is crucial. When assessing potential hires, I often browse through their GitHub repositories to gauge their interests and drive. While not a requirement, individuals who actively seek knowledge, embrace feedback and critique, and invest in their technical development are the ones most likely to contribute significantly to a team. You want team members who elevate everyone’s abilities, not the other way around.
The multi-layered T-Skills also encompass “the zoom” – the ability to seamlessly shift focus between the big picture and intricate details. Exceptional developers do this effortlessly throughout their working day, especially in environments where they work on multiple projects for different clients simultaneously. Constantly zooming in and out, and effortlessly switching contexts, presents a considerable challenge. I had the privilege of working on multiple SaaS applications alongside numerous other projects, each serving different clients. Understanding each client’s business and requirements while balancing the impact of every change became second nature, akin to spinning plates while juggling. Over time, you develop the ability to swiftly switch contexts without missing a beat.
The final trait of exceptional developers is applicable across various roles and industries: the golden rule of problem-solving. Don’t present a problem without considering a solution. It’s perfectly acceptable if the proposed solution is incorrect, as long as the individual takes ownership of the problem, makes an effort to find a solution, and escalates it when necessary. The individuals who approach you, highlighting a problem they have already resolved (and even explaining how they did it), are the true rockstars. They save you time, energy, and money, and demonstrate a strong sense of responsibility.
By embodying these traits, exceptional developers make invaluable contributions to their teams and the projects they work on. Their ability to seamlessly navigate different domains of expertise, coupled with a hunger for continuous learning, ensures they stay abreast of the rapidly evolving technological landscape. They are the ones who elevate their teammates and bring out the best in everyone.
Moreover, exceptional developers possess a unique talent for zooming in and out effortlessly, shifting between the big picture and intricate details. This skill becomes particularly crucial when working on multiple projects for various clients simultaneously. They excel at understanding each client’s specific needs and carefully weighing the impact of every decision. It’s like a finely choreographed act of spinning plates while juggling multiple tasks. With time and experience, they become adept at swiftly switching contexts without missing a beat.
In conclusion, exceptional developers go beyond the superficial labels and buzzwords. They possess a broad range of knowledge, seamlessly transitioning between different areas of expertise. They continuously invest in their own growth, fueling their hunger for learning and sharing knowledge with others. They effortlessly navigate the complexities of projects and clients, zooming in and out as needed. And above all, they embody the golden rule of problem-solving, taking ownership and presenting solutions rather than merely highlighting issues.
When you have exceptional developers on your team, you have individuals who can tackle any challenge, contribute meaningfully to projects, and inspire others to excel. They are the true rockstars who make a lasting impact in the world of software development.
I’ll leave readers with a question. How do you help developers take that step up to becoming truly exceptional?