One of the most common—if not the most common—assumption in the world of Agility is the absence of specialization. Anyone must be able to jump in and do whatever task the team has planned for. We insist on multi-skilled and interchangeable team members. We seem to forget to make a clear difference between a goal and the reality, the arbitration between binarity and utopia.
It is like if I was seeing my neighbor having a stroke. I am neither a physician nor a certified nurse. I slept during CPR classes in college (I know, I need to take a refresher course) and I definitely not own a defibrillator. I can gently pat his cheeks, shake him or make sure he is as comfortable as possible or whatever else, I cannot… I will not… save him unless I start CPR. Of course I will be clumsy. I may not even succeed, but to my neighbor, it is critical that I try something. Status quo is not an option. Obviously, a call to 911 will be of a tremendous assistance, but my cell phone is not a defibrillator… there is no App for that! The phone call will not save my neighbor directly. The 911 specialist will use all the information I provide (circumstances, environment, the person’s size and pulse, etc.) to guide me and to remotely refine my technique, my efficiency and to ensure all the odds are on my neighbor side. Thank God he does! Imagine what would happen if he had refused to help?
The reality. Functional architects may not know how to code or may not know the programming language used. Business specialists probably know nothing about data architecture. The team is an entity built around people with specific and specialized skills; people with a background of different knowledge, expertise and experience. Having only unique and specific experts do not prevent us to carry out the project, but it could be done so much faster if we were helping each other. Avoid bottlenecks and work as a team!
The goal, you figured it out, is to help each other immediately, not to wait, try to the best of our abilities or with the guidance of experts. Being labeled as a programmer, architect, nurse, newspaper vendor, or lawyer does not matter. I have to save my neighbor. It is crucial to recognize and map all skills the team possesses to make clear, by analogy, if the 911 respondent must explain where the heart is or if there is a strong enough team member who can put the adequate pressure on the chest during CPR.
Utopia is to assume that everyone must master all techniques of cardiopulmonary resuscitation and have all the required skills. It is impossible to do better… by definition, this is utopia. It can remain a goal, a target, but it is certainly not a usable short-term reality for most organizations.
Planning is the same. Analysis of a team’s capacity is done on a global basis, but it is crucial to keep an eye on the capacity by trade, by skills. Not only do we want to ensure everyone will be busy throughout the sprint, but we also want to maximize the usage of their specific skills. Be aware of the skill set required for all stories and for your backlog. Keep this in mind when you create your delivery plan and perform your product backlog grooming. Embrace empiricism and use Scrum retrospectives to reassess your by-trade ratios and make those work silos fade away as much as you can.
I will publish an additional post soon. In the next post, I will provide you with hints and examples to help you go from ideas to reality. In the meantime, if you read this post with the concept of “teammate” in mind when referring to the neighbor, take a few seconds and read it again but conscientiously replace neighbor by “project”. Did it change your understanding?