Software development is a long slog of false starts and frustration. It is different from other forms of construction. Stakeholders generate vague guidelines, and it is up to software engineers to transform them into working software on various platforms. As an agile coach, the complex process of building software must have an environment of psychological safety, mutual respect between team members, and a ruthless commitment to quality. I keep thinking about Alex Stoley's discussion about how we need to have a 'brain transplant' between members of an agile team.
I first met Alex in 2018 at the Agile 2018 conference. We were both giving presentations, and I looked forward to his unique perspective. During his presentation, he used the metaphor of a mad scientist to describe the process of cross-pollination, which should happen between a scrum master and a product owner. He likened it to something like the Frankestines monster, with brains transferred between the two roles. To Stoley, only by living and working in the other person's role was it possible to improve the entire team's performance. I instantly converted to this message, and when I had a chance, I decided to work as a product owner to improve my skills.
Today, I continue to think about Stoley and his message. My experience in the software business has convinced me that teams perform better when members cross-train. Training like this allows team members to help each other during difficult periods and prevents bottlenecks from happening when one team member can only do work. Each team member can have a specialty, but each member is responsible for instructing the others on the team on how to do the basics of that specialty. Someone with object-oriented skills can help a javascript developer better understand types. That javascript developer can teach the object-oriented developer how a domain object model works on the web page.
The cross-training process on your team will be hard work, and the go-go business world might need help understanding it. Still, the hard work done upfront will make the team more resilient and better able to code with the numerous challenges which crop up during a software release.
If you attempt to explain this to an executive, use a metaphor from athletics. The next player steps in to fill a role when a football player is injured. The replacement player is good enough to help the team and will act as a sparkplug for the people already on the field. Crosstraining is also valuable because it defines the standards of excellence everyone on the team should follow. For example, everyone on the team should know how to write unit tests because a story is incomplete until someone writes a unit test. Thus, when new people join the team, part of the integration process is showing them how to write unit tests. It creates a common bond that all the team members share.
Brain transplants are the stuff of science fiction, but the benefits of cross-training are genuine. Team members who share a standard skill set are less likely to get stuck and perform better for the organization. That knowledge makes me want to cackle like a mad scientist.
Until next time.
No comments:
Post a Comment