In software development organizations, chaos often results when a project’s complexity is greater than its managers’ ability to direct meaningful progress toward a goal.

Progress might be made in fits and starts, but it is often indiscernible and unsatisfactory. Scrum cuts through this kind of complexity and forcibly pull order from chaos. It does so by enabling a team
to organize itself, which allows a particularly productive order to emerge.

Sometimes the interaction of the two products is so complex and so unknown that the tasks managers plans at the beginning of the release cycle are obsolete soon after they’d been assigned. Just a moment after the team began work, the project slips. Planned tasks couldn’t be completed and dependent tasks are put on hold indefinitely. Team members struggle to reconcile the work they need to do with the work that had been assigned to them.

The sequential nature of the tasks can divide any team. The people who analyze the situation and set requirements are not the same people who would design the solutions that meet these requirements. The people who designed these solutions are not the same people who would code the solutions. The team is fundamentally divided.

How can this divided team manage to communicate and collaborate? Not very well: after each task had been completed, team members had to produce a document detailing the work they’d done.

By focusing on increments of functionality, the team makes orderly progress toward completing the release. Since each increment is tested as it is coded, the number of bugs never overwhelms the project. Scrum’s iterative incremental practices provide the team with a sense of accomplishment and an awareness of where it is in the release cycle. Scrum’s requirement that each increment of code be potentially shippable requires the incremental removal of defects and minimizes ongoing bugs. Scrum is an empirical process. Rather than following outdated scripts, Scrum employs frequent inspection and adaptation to direct team activities toward a desired goal. The Sprint review inspection is particularly powerful because real functionality is being inspected. When they use Scrum, teams are empowered to find their own way through complex situations. This freedom, along with the creativity that results from it, is one of the core benefits of Scrum.

Sometimes projects are so complex that they require something more than the normal implementation of Scrum. You’ve to go back to thinking about the basics. Scrum is based in empirical process control theory. As the degree of complexity rises, the number of inspections must be increased. Because of the increased frequency of inspections, the opportunity for adaptation also increases. Scrum relies on individual and team commitments rather than on top-down control through planning. Self-organization and human commitment are far more powerful mechanisms than imposed controls, plans, and
even loyalty.

We have to make sure that the ScrumMaster has to be effective regardless of the circumstances.  Although ScrumMasters might be tempted to think of themselves as powerful, they are really only enablers. It’s one thing to read and talk about Scrum, but it’s another to implement it. Scrum must be put into place before it can be fully understood. The dynamics of self-organization, collaboration, and emergence are best understood when a team faces a real problem.

Out-of-the-box Scrum doesn’t have practices that address the complexities of every project. However, ScrumMasters have only to refer back to Scrum theory to find Scrum practices that can be readily adapted to handle even the most complex projects.

As a ScrumMaster, your role is to that of a coach or a mentor. You’ve to teach the teams how to deal with increasing levels of complexity through self-organization within and supported by the practices
of Scrum. Reducing the complexity to a degree where the team could cope and function. Help staff the team with people who had all of the skills needed to understand the complexity and commit to resolving it.

The ScrumMaster applies Scrum theory to projects with different types and degrees of complexity. In every instance in which they apply Scrum, ScrumMasters will be called upon to apply their understanding to a project’s aims and difficulties so that the ScrumMaster aptly supports the team’s efforts to achieve those aims.