I’ve been fortunate to have been involved in Agile and Scrum with a variety of teams in several different companies. It’s been interesting to see how Agile is adapted to the particular nature of a given organization – I don’t know of any place where “pure” Scrum is practiced, though I wouldn’t be surprised to find out there are such organizations. The instructor for a Product Owner course I took referred to “Scrum but” organizations, because when you ask them if they do Scrum, they say “Yes, we do Scrum, but…” followed by a list of the Scrum things they don’t do.
There are a few really cool aspects of Scrum that I find really work well, and it’s one of those I’d like to touch on here. I really like the idea of self-directed teams. Now, there aren’t many places a team can be *fully* self-directing (e.g., usually team membership is set by the organization), but in my view, the more a team is able to take ownership of a story the better the quality of the delivered software.
I’ve watched how attitudes change in an organization as Agile concepts are adopted and Scrum is implemented –there is a point where the teams catch fire as they take on responsibility and ownership for team commitments. As a Product Owner, this is also when you find the questions being asked of you about what the user wants, and what the narrative of the big picture looks like, become more pertinent and pointed. If you don’t have the requirements crisp enough to plan or design against, you’ll find out pretty quick since the team has to understand what is needed in order to accept the story and tackle the work. The requirements are expressed in the stories that the team develops against, so the stories and their associated acceptance criteria have to spell out what needs to be done.
The team begins to naturally improve its own approach to design and development, sticking to what needs to be done to deliver the story and avoiding that which isn’t needed. A virtuous cycle kicks in where features and the quality of the code just keep on improving, and the team velocity (how much they accomplish in a sprint) increases. The benefits of things like Continuous Integration becomes readily apparent as teams understand they need to have a continuing confidence that what they are delivering isn’t breaking anything they’ve already completed and put on the shelf.