Software quality: the generalist vs the specialist

Generalists, according to Emeritus, refer to professionals who offer a range of diverse skills and an intelligent mix of knowledge from a variety of disciplines.

Specialists, on the other hand, have a strong and sustained focus on one specific domain of knowledge and expertise.

Software quality, as defined in ISO 25000 and explored in one of my first posts, is a capability of software product to satisfy stated and implied needs when used under specified conditions.

A system (the team and the work processes) producing a quality product operates really well with information: processes information when gathering understanding of the clients problems, processes information when inventing solutions and presenting them to the client for verification and use.

Given the system's need for effective information processing, the primary managerial emphasis should be on minimising information loss at each stage of the process. For a more in-depth discussion on this topic, refer to my article.

The Tower of Babel, a mythical project that demanded the collective effort of thousands, initially saw great progress: the builders were coordinating their efforts effectively. However, when God confounded their languages, information loss skyrocketed to 100%. People were unable to collaborate, resulting in the project's failure. Despite each individual being a skilled specialist with extensive hands-on experience, the language barrier prevented them from functioning as a team.

In practical terms, when specialists need to collaborate as a team, they must speak the same language. If they don't, the involvement of translators with specific education in the respective fields becomes necessary. For example, if an ophthalmologist needs to collaborate with an engineer, a translator with expertise in both ophthalmology and engineering would be required.

Undeniably, in the majority of teams, backend developers, QA specialists, and frontend developers speak the same language. However, one might question whether they can effectively manage information without understanding each other's distinct areas of expertise. How much detail risks getting lost in translation due to this lack of mutual understanding?

As outlined earlier, numerous strategies can be implemented to mitigate information loss. One of the primary approaches involves promoting a substantial degree of knowledge sharing and overlap among team members.

In 1978, this notion gave rise to the concept of "T-shaped" employees in management. The horizontal bar of the "T" symbolises competencies that extend across boundaries, while the vertical bar denotes in-depth, specialised knowledge. Consequently, a T-shaped employee would share a common language with a broader range of colleagues.

The T-Shape concept distinctly signifies a shift from specialisation to generalisation: a T-shaped employee transcends the confines of being merely a specialist.

Since its inception, the concept has been extensively embraced across various sectors. Research indicates that even certain governmental organisations, traditionally noted for their conservative management perspectives, have opted to foster T-Shaped employees. They've discerned value in ensuring that their workforce shares a common language.

This transition cannot be solely attributed to the aim of minimising information loss among team members; there must be an additional driving force. Certain literature references (1, 2) delve into the trend towards a greater shift from specialisation to generalisation, observable not only in intellectual labour but also in the realm of sports development and product manufacturing.

The books point out two primary reasons: enhanced innovation and increased adaptability.

Innovation

Steve Jobs notably emphasised the significance of a calligraphy class he attended in shaping his design aesthetics. He once remarked, “If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts”.

Often, innovation is a product of serendipity, frequently arising at the confluence of different disciplines:

the best ideas for products and inventions often cross domains, or take many different ideas and put them together.

If we consider that quality, by definition, is a product's capability to satisfy needs, then it becomes clear that innovative products only triumph when they satisfy those needs considerably more effectively than their predecessors.

When a new product significantly surpasses the quality of its predecessor, the company manufacturing it secures a formidable competitive edge.

This advantage garnered through innovation is partly a result of transitioning towards interdisciplinary problem-solving. Interdisciplinary problem-solving thrives when employees have a substantial knowledge overlap and can effectively communicate in the same language.

However, this competitive edge isn't enduring. Other companies will inevitably catch up and may introduce products embodying the same concept.

Therefore, adaptability is crucial in maintaining a competitive advantage amid the rapid pace of global changes.

Adaptability

The world is in a constant state of flux, and as Nassim Taleb articulated in "The Black Swan", some changes are entirely unpredictable. Therefore, the greater a company's adaptability to any shift, the higher its chances of survival.

This is precisely why Agile systems generally yield better-quality products — they retain the capability to meet clients' needs, regardless of what new challenges the world presents, or in other words, they are able to sustain quality.

In biological terms, adaptation is a process of modifying an organism or its parts to enhance its suitability for survival under its environmental conditions. In the context of software development, the 'organism' refers to the company and its product, and 'modification under new conditions' implies adapting both the product and the company to meet emerging challenges.

The process of change is steered by comprehension of the new circumstances and succeeded by a process of devising and implementing novel work methods and product features. This process echoes problem-solving and demands effective information processing. As I mentioned at the outset of this article, it is essential for managers to concentrate on minimising information loss. Given the absolute importance of the process of altering the company and its products for the survival of the firm, it is crucial to avoid information loss in this process at all costs.

This necessitates that team members have interdisciplinary knowledge. Those who explore various areas of knowledge are inherently more adaptable since they regularly shift perspectives and are more receptive to new information:

As David Epstein noted in his book, compared to other scientists, Nobel laureates are at least twenty-two times more likely to engage in amateur pursuits such as acting, dancing, performing magic, or other performance-based activities.

Software development

Many industries have evidently acknowledged the merits of generalisation over specialisation. But how can we transfer this knowledge to the realm of software development and QA?

Should we solely recruit QA generalists, individuals possessing a broad knowledge base, from management theory and TQM practices to writing automated tests and infrastructure maintenance? Or, should we engage specialists and aid in their acquisition of interdisciplinary skills?

Alternatively, should we continue to focus on employing specialists and ensure they provide maximum value within their specific field? Or perhaps, should we concentrate on hiring engineers who are proficient in both development and quality assurance?

As detailed earlier, innovation and adaptability are paramount to producing quality products. Both require the presence of employees with interdisciplinary skills, implying that hiring specialists with narrow-field expertise may not yield the most effective results.

However, generalists can be more challenging to locate and hire, and there are scenarios where specialists with focused expertise possess unique skills indispensable for productive development.

I posit that a robust, productive team can gain from the best of both worlds by incorporating both specialists and generalists.

The specialists that are hired should be encouraged (but not compelled) to learn from their peers and enhance their interdisciplinary knowledge. This approach would enable the utilisation of the unique skills and experience that specialists bring, whilst simultaneously improving the team's innovative capabilities and adaptability.

Therefore, I assert that we should not be choosing between generalists or specialists, but instead, we should aim to incorporate both within our teams.

This principle also holds true in the field of medicine: an array of studies (1, 2, 3) examining the roles of specialists and generalists has led to a consensus among scientists. They concur that a team composed of both specialists and generalists tends to produce superior patient outcomes.

References: