Scrum is easy to understand but difficult to master. For a team to be successful with Scrum, developers have to learn new ways of working as well as adopt Agile Engineering practices.
Building things iteratively and incrementality differs from traditional SDLC phased development. In addition, developers must apply new technical skills and techniques in to be able to regularly deliver working Product Increments at the end of every Sprint. Without these practices, quickly responding to changing requirement is difficult and risky. Technical training and coaching becomes essential to change existing behaviors.
Sending an entire team to training is expensive. As an organization we can send the Product Owner or the Scrum Master to training. That is just 1 or 2 people. That’s not a problem. Sending the entire team will cause disruptions as the entire team is out. If developers need training, we send a few at a time.
When undergoing a major change initiative like an Agile adoption, it is important that team goes through training together as a group. Since the team is going to be working closely together, it is essential that team members get the right foundational knowledge, hear the same message, understand the journey and challenges ahead, and learn the technical practices that will enable success. Absent that, confusion sets in as each team member is moving at a different pace and in a different direction based on their own misunderstandings.
When it comes to developers selecting training, they not interested in Agile Engineering practices. Most want to learns about new cool technologies, and not necessarily better ways of working. New technology is exciting, whether it is a new web framework, mobile development, cloud computing, AI, etc… The attitude is that Scrum is for management and not for developers. This is ironic since most of the authors of the Agile Manifesto are technical and came together to improve the lives of developers.
This leads to the training dilemma with these 2 cycles feeding each other. Management can’t send the entire team to training so the team does not gain the necessary Agile Engineering skills, and given an option, the team members would rather take different training classes instead of learning about Agile Engineering practices.