I've always wanted to gain a deeper understanding of what it means to be Agile. The dictionary's meaning of agile
is "nimble" or "being able to move quickly." I suppose that refers to being ready to embrace and respond to change quickly. In the context of software development, it may mean responding to changing business needs quickly to ensure value. These are my musings about how Scrum, a vastly popular and successful Agile method, prepares us for being Agile.
One of the main principles of Scrum that we all love and value is "inspect and adapt." The whole idea of an empirical process — that is, creating something, looking at it, inspecting and adapting the product as well as the related process — sounds very valuable. Although nothing really prevents the Scrum team from continually inspecting and adapting, Scrum recommends a few events during which the Scrum team can pause to inspect and adapt. Let us look in detail at how Scrum helps us bubble up problems and risks early on and change our course of action during releases, sprints, and daily churn.
Release start and end
- Release planning is the event that allows the team to provide input and help the product owner change the release stories and the order in which they are pulled from the backlog.
- The release retrospective looks at the way the team works and provides feedback. It is a forum in which team members make suggestions about how to improve the next release.
Sprint start and end
- Sprint planning is the event that allows the team to provide input and help the product owner to change the sprint stories and the order in which they are pulled from the backlog.
- Sprint review or show-and-tell sessions allow the product owner to view the product demos and provide feedback.
- The sprint retrospective is a forum in which members can reflect on the past sprint and suggest improvements for the upcoming sprints.
During the sprint
- The Daily Scrum provides an opportunity to talk about impediments and course corrections. The team can also change the sprint plan to ensure that sprint goals are met.
After a discussion at a recent conference, one of the recurring comments was that most of the Scrum events that help us inspect and adapt are reactive
in nature. Though the inspect-and-adapt approach is extremely helpful in helping us produce working software that is valuable, it relies on analyzing past tasks and reacting by adjusting future tasks.
So what can help Scrum teams think proactively about the product and the process?
Here are a few things that they can do:
- Attend workshops that product owners hold for discovery purposes. The workshops use the design-thinking framework or other methods that help the team proactively suggest changes.
- Participate in the following sessions:
- Backlog grooming. The teams can proactively provide inputs to bring about changes.
- Retrospectives. Although a lot of time is spent analyzing issues and finding solutions, the team should be encouraged to think of new ideas. Various techniques, such as 6 Thinking Hats, compel the teams to proactively think afresh about the changes that would be helpful.
- Futurospectives. This is a forward-looking session in which teams are encouraged to think about how they would like to work.
- Participate in communities of practice. Communities of practice are for ScrumMasters, product owners, and most importantly for technologists, with a focus on specific technology. These communities present an opportunity to come together, learn from each other, and extract insights from industry trends.
To summarize, Scrum provides us with several opportunities to manage change in a proactive as well as a reactive manner.
How do you manage change in your Scrum projects?