What are they and why do they matter today? Here our blog about legacy Approaches, scrum and Agile Development Frameworks.
What is Scrum? The Scrum framework earns its name from the popular sport of Rugby where a scrum describes a tight formation of players working together to free the ball. In general parlance, it describes a problem, or challenge to be surmounted by the scrum team. In a digital framework, it represents a development approach rooted in cross-functionality, autonomy, and adaptation. Before further discussion of Scrum, we should consider the Agile framework in which the Scrum methodology is embedded.
Prior to Agile development, other development methodologies were used. Managers employed a top-down methodology known as the “waterfall approach”. Following this narrative, product requirements were first determined, then a project plan would be drawn that spanned the whole project. Next, code would be written followed by final product testing and release. The inherent problem with this traditional project approach was its rigidity. Customers were largely sidelined from the development process. Often products would require extensive rework when it became clear that there were major discrepancies between what the customer actually wanted, the user stories and what the development team envisioned and produced.
Communication and feedback between team members and customers was deficient in both quantity and quality and, so like a waterfall, problems would cascade, costs would increase, and customer satisfaction was low.
A small group of developers observed the processes of successful firms, military operations, and sports teams, and identified several key success factors regardless of the industry. Somehow the teams thanks to a particular management were meeting objectives in the time boxed that had been given! Wanting to share their findings with the world, they wrote the “Manifesto of Agile Software Development”. Including only 4 core values at its outset, they completely transformed the development process and the potential business value.
- People and processes > tools needed to harness and use them
- Product quality/operational software > comprehensive documentation about the resource
- Interacting with customers > than contractual obligation and negotiation
- Willingness to change > having set plans and development schedules
Later, 12 principles were amended which remain central to the agile methodology and inform the Scrum framework that is common practice today in project management.
The Twelve Principles of Agile Development
1. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software”.
Through prompt and continuous delivery, customer satisfaction is increased. In the context of an Agile development framework, project plans can be more readily altered when customers are involved in a project’s progress. Through continuous involvement and feedback, needs for major course corrections ‘late in the game’ are averted, thus saving time and money.
2. “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage”.
Making changes may be inconvenient and frustrating for both product owners and development teams but ignoring problems and letting them go on is far worse in the long-run. Recognizing and addressing issues at the earliest possibility naturally stems the need for further changes later at which point time and resources have already been expended. Recognizing mistakes as learning opportunities can be a good way of embracing flexibility.
3. “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale”.
By breaking projects into component parts that are worked on in short cycles (sprints), and through regular inspection (sprint review, and testing, constraints are identified and responded to more quickly. Continuous involvement of the product owner means evolving feedback to the team and shorter response times.
4. “Business people and developers must work together daily throughout the project”.
Daily team meetings are standard practice in Agile methodology and a good opportunity for the scrum master product owner to communicate with the developers (specialists). Scrum Masters are important to bridging gaps between business and technical perspectives and ensuring the team shares the same goals.
5. “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done”.
It can be hard to avoid micromanagement but it’s essential in Agile metholodogy as it works in sprint planning. Specialists are best motivated when they clearly know their role and are given adequate autonomy. Mutual team trust and understanding of team roles fosters efficiency through employee empowerment.
6. “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation”.
Obviously in-person physical meetings are not always practical as we approach a third year of pandemic lockdowns, remote work, and the realities of the 21st century global economy. What’s important is ensuring a human aspect to communication that cannot be achieved through email or other static mediums. While physical meetings offer the highest level of communication, virtual meetings can still be effective with a daily stand, and sprint retrospective.
When having virtual meetings, especially with cross functional teams, ensure everyone has their video feed turned on as much is communicated silently through body language.
7. “Working software is the primary measure of progress”.
Working software matters more than complete documentation about the software or product in agile project. User stories are essential for software development teams as they help to discuss the features of the software.
By delivering working products as soon as available, the customer can provide feedback more quickly. Documentation or other non-essentials can be added later if necessary and shouldn’t pose bottlenecks in the overall process.
8. “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely”.
An evolving project where tasks (story points) and goals are continuously inspected means team members are always working. The ‘waterfall approach’ can result in periods of intensive effort for some at the same time as periods of idleness for others. This can be detrimental to morale and efficiency.
By maintaining flexibility through Agile methodology, work-life balance is optimized while burnout and turnover are reduced among the development team. Through regular communication, self organization and goal setting for next sprint, a swift but sustainable work pace can be achieved even in complex projects.
9. “Continuous attention to technical excellence and good design enhances agility”.
While Agile methodology emphasizes short cycles and continuous delivery of results, technical excellence and adequate task completion is still essential. Whether it be in the context of tidy readable code or a clean kitchen or science lab, the same principle applies that by maintaining a high level of self organization and best practices, efficiencies and value are produced, and team members may react and respond to challenges more quickly and effectively to deliver the product.
10. “Simplicity – the art of maximizing the amount of work not done – is essential”.
In a nutshell this refers to prioritization. Teams must focus on the items with the most impact first and not get bogged down by tangents. Put another way, details should not derail the crucial project outcomes and objectives in each cycle. Continuous testing and evaluation help to identify and differentiate what is necessary from what would be otherwise desirable.
11. “The best architectures, requirements, and designs emerge from self-organizing teams”.
The traditional waterfall approach could be illustrated using a pyramid. Agile teams though have a more egalitarian architecture: Self-organizing teams make decisions as a group. The benefits of agile development lie in the sum of the parts being greater than the whole.
By valuing the individual skillsets brought to the table by team members, a better product is produced than would be achieved if ideas were dictated from the top down.
12. “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly”.
Continuous self-improvement at the individual level lies at the heart of this principle even though it’s expressed as a team value. Agile methodology is rooted in what individuals bring to a project. It is a reciprocal learning framework where specialists learn from each other in a cross-functional setting. Daily meetings are central to solving issues as much as they are opportunities to learn from each other.
In Conclusion about agile and scrum
The Agile manifesto and its 12 principles present the building blocks to more efficient software development. We could have mentioned as well another methodology called extreme programming. One of the most important methodologies of the agile development process, which is based on agile principles and pioneered by Jeff Sutherland and Ken Schwaber, is Scrum.
In our second part of this series, we will delve into the specifics of the Scrum approach and how it fits into the Agile framework and how it can benefit your product development and your firm.
For now if you are interested into doing the Agile training, you might want to have a look at this page.