The modern project manager must be familiar with the concept of scrum in the environment of agile software development. Iterative and incremental software development has its roots as far back as the late 1950s, but it really developed into the modern concept in response to the project management style of the 1990s, which was closely regulated and micromanaged. They realized that the goals of projects often change mid-course. Customers changes their minds or events make the original concept unrealistic.
Agile Software Development
Agile software development is a framework within which the conditions and desired outcomes change through collaborative, customer-centered processes using cross-functional teams. It stresses adaptive planning, changing development, on-time delivery and on-going enhancement. Quick and imaginative response to unexpected changes is its hallmark.
In 2001, a number of software experts met to confer on what had come to be known as lightweight development methods. As a result, they published the Manifesto for Agile Software Development, which stressed:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
To elaborate:
Individuals and interactions – Self-organization and motivation are crucial. To function effectively, development teams should be physically close and in constant communication.
Working software– Presenting software that works is better than handing out documents to customers in meetings or showing Power Point slides.
Customer collaboration– Accept up front that the requirements may not be completely known from the start and they may change over the course of development. Including the client throughout the course of the development cycle is obligatory.
Responding to change– Agile development emphasizes rapid reaction to change and on-going development. It respects modeling, but recognizes its limits in a changing environment. It strives to minimize documentation, which can slow the development process down and impede on-time development.
Highsmith and others published “Principles behind the Agile Manifesto” in 2010, the twelve principles of which are worth noting:
- Customer satisfaction by early and continuous delivery of valuable software
- Welcome changing requirements, even in late development
- Working software is delivered frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly
The Scrum Master
This is where the term “scrum” comes in. In rugby, a scrum occurs when all or most of the players pack in tightly to try to gain possession of the ball. In business, this manifests as a self-organized, co-located teams working in constant collaboration. A pillar of scrum is accepting that the requirements will change over the course of the project and rapidly adjusting to those changes is essential to success.
The job of the scrum master is to deflect distractions from the key purpose of the project. As is often heard in military circles, “The good idea fairy sprinkles f*** up dust all over everything.” Preventing distracting intrusions is vital.
The scrum master’s job is not the same as that of the team lead or the project manager. He or she performs the function of a buffer to filter out distractions. He or she makes sure the scrum framework is adhered to. This role is sometimes likened to that of a facilitator. The key job components of the scrum master are as follows:
- Helping maintain the product backlog so as to ensure the necessary tasks are completely understood
- Helping the team achieve and maintain clarity as to the precise goal of the project
- Advising the teamon delivery of high-quality aspects of its product
- Facilitating self-organization
- Helping remove and avoid both internal and external impediments to progress
- Ensuring regular progress through facilitation of team events
- Advising key stakeholders on scrum principles
- Facilitating self-organization and cross-functionality in the development team
One of the differences between the project manager and the scrum master is that the project manager may be responsible for managing personnel. The scrum master doesn’t. Indeed, scrum has no need for the concept of project manager in the traditional sense of vertical command and control.
The Sprint
A sprint is the basic cycle unit in scrum. It is a specifically timed cycle set in advance and usually lasts from a week to a month. Two-week sprints are typical.
Every sprint begins with a sprint planning event that defines the sprint backlog, stipulates the work for the sprint, and sets a commitment for the goal of the sprint. The sprint finishes with a sprint review and a sprint retrospective. This allows for progress to be shown while identifying lessons learned and improvements achieved as the project goes along.
Scrum Master Certification
Team leaders and project managers are the most likely candidates for seeking education and certification in scrum, but scrum team members and managers might consider it as well. When seeking scrum master certification, the candidate should search for a program that includes practical exercises. Scrum is all about performance, not passive understanding. At the end of such a course, the candidate should understand agile and scrum concepts, and possess the necessary skills required to pass the exam.
Just what are these skills, in addition to scrum terminology and application? At the end of the course, you should feel comfortable with facilitating daily scrums, user stories, planning and reviewing the sprint. You should be able to create the various scrum items such as the product backlog, sprint backlog as well as the completed deliverables along with the definition of done. Although co-location is a principle of scrum, you should be able to manage a scrum spread out over distant locations.
You should be comfortable stepping into the role of scrum master anywhere in the world.