We are very much aware of the Scrum framework, how it works and how it promotes agility (responding to change). In Scrum and in a Scrum Team, every team member has unique predefined responsibilities with one objective in mind, i.e., delivering the desired product to the customer, which delights them all the way, also running the product's development process smoothly.
The first thing that pops into our minds when we talk about developers is coders. However, in Scrum, a developer can be a frontend dev, a backend dev, a QA tester, or a designer. Any of these types of devs are held accountable for their assigned tasks. The completion of these tasks is a stepping stone toward the product goal.
SCRUM DEVELOPERS IN NUTSHELL
The scrum developers in a scrum team are the team members responsible for transforming product backlog items into usable increments. They are committed to creating any aspect of a usable increment in each sprint.
Scrum Developers are cross-functional. In other words, the sum of the developers' skills must be enough to deliver all the aspects of a usable product. We know that an individual might have a specialized area of focus, such as development, testing, dev-ops, analysis, and designing. But in Scrum, there are no sub-teams or hierarchies, and they share the accountability for planning their work and delivering quality work. The responsibility belongs to the developers; there is no individual failure or success.
Scrum Developers are self-managed. It is necessary to have an alignment between the developers and the business owners. Furthermore, the developers must have Autonomy in negotiating the work with the product owner.
We know that the Product Owner is responsible for defining the sequence of work and defining the product, but they can only take some of the decisions by themselves.
The Product Owner must negotiate with the Developer because the product owner cannot define their tasks; the Scrum Developers have complete Autonomy.
Let's consider a small example where the Product Owner and the Developers are role players, and we will discuss how Autonomy and Alignment are co-related.
In the above picture, "Alignment" refers to the coordination between the Product Owner and the Developer, whereas "Autonomy" refers to self-management.
Alignment and Autonomy have two possibilities, i.e., Low or High. So here we have four quadrants, each reflecting the alignment and Autonomy between the Product Owner and the developers.
The picture shows that with high alignment and Autonomy, the Product Owner frames a business problem, "We need to cross the river," and the team figures out how to do it.
But with other quadrants, we can see either a lack of alignment or low Autonomy, or both of them, resulting in an undesirable outcome by the Developers.
DEVELOPER: A GENERALIST OR SPECIALIST?
One of the main reasons for the lack of unity on the Scrum team is the lack of redundancy, in other words, the lack of members with multiple skills.
It is essential because we want the team members to give each other feedback, assist others in tasks, and complete tasks started by others.
If each person only works on the part of the problem, we won't have a team but just a group of people. So we can't have a team composed only of specialists.
However, what about generalists? They know little about a lot of areas. It would be okay if we worked with simple tasks, but more profound knowledge is needed for complex products.
So we need to have a mix of both GENERALISTS and SPECIALISTS. Of course, we need people specialized in skills or technology for the product, but at least some must be open to moving around the system or problems in hand more freely.