Growing Generalized Specialists on an Agile Team

This article explains how agile teams can improve flow by developing generalized specialists rather than relying on narrow role silos. It offers practical cross-skilling ideas for developers, testers, analysts, designers, and ScrumMasters.

Jeffery Payne

April 24, 2018

It’s difficult for an agile team comprised solely of specialists to be fully productive. If team members are unable to help others with their tasks, the team will not maximize its potential.

The agile community calls team members who are capable of working in a variety of roles generalized specialists. A generalized specialist is not a jack of all trades. It is an individual with deep knowledge in a particular specialization who also has learned to be productive in other team roles.

While we cannot expect our staff to become experts in all areas, it’s possible to teach motivated individuals how to be productive in other roles, particularly those most related to their specialization.

Here are some tips on how to grow generalized specialists on your team.

Teach developers how to automate tests

Test automation is essential in agile, if for no other reason than to support fearless refactoring. We already expect developers to be able to write effective unit tests, so why not leverage their skills to support other necessary test automation activities?

The test automation needs that developers can most easily learn to support include automation for story acceptance tests and application smoke tests. I would hesitate to throw a developer into designing these types of tests without some testing techniques training, but having them automate tests that others have created is a good use of their programming skills. Plus, their software engineering background should reinforce a “treat tests as code” philosophy that will result in more maintainable automation scripts for the team.

Teach business analysts and UI designers how to do exploratory testing

Anyone with strong critical thinking skills, some training, and practice can learn how to become an effective exploratory tester. As testing time is often squeezed at the end of sprints, getting everyone on the team capable of participating in testing efforts can make a huge productivity difference.

Those with strong product domain knowledge, such as business analysts or UI designers, are great candidates. Because much of their analysis and design work is often performed during the first half of each sprint, they may have some spare cycles to help test later on.

Teach testers how to improve user stories and acceptance criteria

While your testers may not necessarily be experts in your product domain (although some of them surely are!), their role demands they understand your software product end to end. This understanding, coupled with their critical eye toward testability, can help make your user stories more understandable, less ambiguous, and easier to implement.

User story acceptance criteria also often goes hand in hand with tests that validate stories, meaning testers will be good at writing appropriate user story acceptance criteria, too.

Teach ScrumMasters how to plug holes

ScrumMasters come in all shapes and sizes, so it is difficult to give specific guidance for how they can broaden their skills, but a good ScrumMaster will seek out roles they can participate in to increase productivity. Spend some time understanding your ScrumMaster’s background to see which role they can best support.

Jeffery Payne

Jeffery Payne

Jeffery Payne is the founder and CEO of Coveros. Under his guidance, the company has become a leader in secure agile software development. Jeff is a popular keynote speaker at tech conferences and has testified before Congress on issues like intellectual property rights and cyberterrorism. Jeff is the co-founder of the Northern Virginia Chapter of the IEEE Computer Society. He holds a B.S. in Computer Science from Allegheny College and an M.S. in Computer Science from The College of William and Mary.