Do you remember when Java’s promise for platform independence opened new frontiers in architectural planning? Or when Extreme Programming gave new life to an audience disillusioned by the Waterfall model? It seems like only yesterday when these two carried the distinction of “next great thing”. A distinction that influences the collective conscience of software professionals, not to mention the effect it has on the software development ecosystem. In 1999 we witnessed Windows ME, Outlook 2000, RUP, DCOM, MySQL, personal homepages, and XML vying for this distinction. Ten years later we find Chrome OS, Google Wave, Agile, REST, NoSQL, Twitter, and JSON picking up the fight.
Programmers and startups have also found themselves vying to become the next Bill Gates, or creating the next Google, but rarely do we sufficiently understand the personal characteristics that inspire such distinction. For example, we know the benefits behind Agile’s iterative approach, or model-view controller in Ruby on Rails, but do we agree on the interpersonal traits required for a high-performing individual? In a world where software development processes, and technologies continue their trend towards commoditization, it is the ability to answer this question, and others like, that will differentiate organizations in the marketplace.
People Narrative is a look at the traits that distinguish talented people in the software development lifecycle. A comprehensive panorama of such traits can serve as a useful reference for programmers, project managers or executives to better understand, select, and improve the people in their own software development teams.
What talents come to mind when you think of the programmers you’ve worked with? Was it their strong ambition, power of persuasion, or their ‘seeing eye’ intuition that set them apart? Or maybe it was their relentless attention to detail coupled with an insatiable curiosity that drove their success. Like them, you also possess innate abilities that uniquely (un)qualify you for certain types of work. Your ability to perform at a high level will largely depend on how well the unique talents you possess align with the needs of the job.
Still too many companies don’t understand this. They write job postings emphasizing a particular skill or body of knowledge yet neglect to mention specific talents required by the job. As Marcus Buckingham and Curt Coffman so eloquently state in their book, First, Break All the Rules, it is critical for companies to understand that the equation of competence includes the set of talents, skills and knowledge an individual possesses. The key differentiator between these three is that you cannot teach talent. For example, I’m willing to bet that an innate attention to detail was a major contributor to the performance of the last superstar programmer you worked with, or that good listening skills contributed to the excellent communication in your current team, but only a healthy dose of empathy has helped you fully understand them (i.e. Peter Drucker’s “the most important thing in communication is hearing what isn’t said”).
The performance of your software development teams will primarily depend on the individual and collective talents that characterize them. I’ve included a comprehensive list of these talents in Table 1.
|Table 1. Panorama of Individual Talents
To better understand this list, I’ll need to categorize. In their book, Buckingham and Coffman offer striving, thinking and relating as three possibilities. Using this scheme, striving talents such as determination explain the ‘why’ we perform, thinking talents such as a superior analytical ability explain ‘how’ we perform, and finally relating talents such as charisma explain for ‘whom’ we best perform.
The Theory of Multiple Intelligences, proposed by Howard Gardner, and more specifically the categories of intelligence he defines, offers an alternative classification. Howard suggests eight different types of intelligence including:
- Interpersonal* (i.e. social intelligence)
- Intrapersonal* (i.e. emotional intelligence)
I’d like to assume that the distinguishing talents of high-performing software development teams span those intelligences marked with an asterisk. More important is the understanding that successful individuals and teams possess talents not typically understood or revered by hiring organizations or educational institutions. For example, standardized intelligence tests that limit themselves to measuring logical-mathematical and verbal-linguistic abilities.
In software development terms, think of effectiveness as the runtime engine. When the code is syntactically correct, it can be executed. Every programmer can admit to an overwhelming sense of motivation that comes with seeing their code execute flawlessly. But without this runtime engine, even the most beautiful piece of code is rendered functionally useless.
Similarly in people, maximizing effectiveness requires a thorough understanding of their competence so that productive work can be assigned to the right individual. While it may be straightforward to assign programming work to an individual who stands out for his knowledge of Java, it may not be so straightforward to conclude that the work of a leader should be assigned to an individual with a talent for empathy. When the full spectrum of an individual’s competence is required for the work at hand, the individual’s motivation will grow, and she will be satisfied in her job. There has been strong emphasis on aligning business and IT over the years, and it’s time we also realize the impact of (im)properly aligning a person’s competence with their work.
Lacking a thorough understanding of an individual’s competence is a recipe for their ineffectiveness. Peter Drucker taught us that the job of the knowledge worker is to be effective (and similarly stay motivated) while also reminding us that:
“…people of high effectiveness are conspicuous by their absence in knowledge jobs. High intelligence is common enough amongst knowledge workers. Imagination is far from rare. The level of knowledge tends to be high. But there seems to be little correlation between a man’s effectiveness and his intelligence, his imagination, or his knowledge. Brilliant men are often strikingly ineffectual; they fail to realize that the brilliant insight is not by itself achievement.”
Perhaps he referred to the limited definition of intelligence and brilliance, which is to say, achievement requires the broader set of intelligences usually found in more than one person alone. Our teams should be formed on this basis and as Marcus Buckingham and Curt Coffman stated, the job of a manager is to convert these combined talents into performance.
Figure 1. High-Performance Teams
Diana Larsen’s presentation on Trust taught us that an individual’s competence (i.e. talent, skill, knowledge) is a major component towards growing professional trust (See Figure 1). A sufficient level of trust must exist in order for a self-organizing team to maximize their individual and collective effectiveness. It will serve as the foundation for the team’s understanding of each individual’s competence, of how best to organize, as well as maximizing their ability to execute.
It should be clear that before we can preach the benefits of Agile software development, or evangelize the next great programming language, for example, we need to understand the talents of people, because it is these talents, and our ability to identify and nurture them, that will primarily influence the foundation for individual and team trust, effectiveness, motivation and overall performance.