Some days ago I met with an ex-colleague and we found ourselves talking about the Scrum framework, and one of the things that surprised me the most was that he was convinced that Scrum can be implemented and can be successful when the whole development process is already defined. That would make things easy and reduce the complexity.
As my colleague was saying this, I realized that many people in the industry really believe this kind of misleading information. The company that tries to implement Scrum in this way will expect results that they may not get, so ultimately the company will never truly embrace Scrum.
Once he was done making his point, I explained that I thought that idea was wrong, at many levels of detail.
Scrum, because of its nature, is an empirical process. It will never be implemented twice in the same way, even inside the same company. The implementation of the framework can change due to different factors, which leads me to the next point. . . .
These factors are not just technical problems or problems of the development capacity of the team. They go beyond this, because when implementing Scrum it is certain that one of the big issues you will face is dealing with teams and clients of different types of cultural backgrounds, different values, and the outcome will never be the same.
Scrum does not simplify the complexity of the problem, because the problem comes attached to the rules of business that you are trying to solve. What it really does is help the entire team work in a collaborative and much more organized way. It also introduces the term "timeboxing," which guides pretty much every ceremony and sprint, with the idea of helping the team stay focus on the prioritized and important tasks.
Scrum is a framework that helps you identify your errors and learn from them in the shortest possible time. This is the main reason why the iterations must be short (often just two weeks), so when the iteration is done you can look back (in the retrospective) and make the changes that are required to improve the process.
Scrum is a framework that will help the development process, which will never be defined because Scrum adapts to the reality of the business, and business is a living system that changes every minute, every hour. Scrum is like the human: We will learn and learn and learn until we stop learning anything.
Scrum is not a cookbook, or a bike ride. In theory, Scrum is simple to understand; most people get it on their first experience reading or attending a course. In going from paper to reality, however, there is an abyss of difference because of the fact that our main rules for managing everything change. We focus our attention on people (motivating, self-organizing, developing the talent of each and every person on the team) -- and people are more complex than any computer.