What is AGILE ?
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Agile project management is not a singular framework but an umbrella term that includes a wide range of methodologies:
- Scrum: It is ideal for projects with rapidly changing requirements, using short sprints.
- Kanban: It visualizes project progress and is great for tasks requiring steady output.
- Lean: It streamlines processes, eliminating waste for customer value.
- Extreme Programming (XP): It enhances software quality and responsiveness to customer satisfaction.
- Adaptive Project Framework (APF): Works well for projects with unclear details, as it adapts to constantly evolving client needs.
Scrum Definitionit is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.
In a nutshell, Scrum requires a Scrum Master to foster an environment where:
- A Product Owner orders the work for a complex problem into a Product Backlog.
- The Scrum Team turns a selection of the work into an Increment of value during a Sprint.
- The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.
Scrum is simple. Try it as is and determine if its philosophy, theory, and structure help to achieve goals and create value. The Scrum framework is purposefully incomplete, only defining the parts required to implement Scrum theory. Scrum is built upon by the collective intelligence of the people using it. Rather than provide people with detailed instructions, the rules of Scrum guide their relationships and interactions.
Scrum TheoryScrum combines four formal events for inspection and adaptation within a containing event, the Sprint. These events work because they implement the empirical Scrum pillars of transparency, inspection, and adaptation.
- Transparency: The emergent process and work must be visible to those performing the work as well as those receiving the work.
- Inspection: The Scrum artifacts and the progress toward agreed goals must be inspected frequently and diligently to detect potentially undesirable variances or problems
- Adaptation: If any aspects of a process deviate outside acceptable limits or if the resulting product is unacceptable, the process being applied, or the materials being produced must be adjusted. The adjustment must be made as soon as possible to minimize further deviation.
Scrum ValuesSuccessful use of Scrum depends on people becoming more proficient in living five values: Commitment, Focus, Openness, Respect, and Courage
Scrum TeamThe fundamental unit of Scrum is a small team of people, a Scrum Team. The Scrum Team consists of one Scrum Master, one Product Owner, and Developers. Within a Scrum Team, there are no sub-teams or hierarchies. It is a cohesive unit of professionals focused on one objective at a time, the Product Goal. Scrum Teams are cross-functional, meaning the members have all the skills necessary to create value each Sprint. They are also self-managing, meaning they internally decide who does what, when, and how. The Scrum Team is small enough to remain nimble and large enough to complete significant work within a Sprint, typically 10 or fewer people.
- Developers: Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment each Sprint.
- Product Owner: The Product Owner is accountable for maximizing the value of the product resulting from the work of the Scrum Team
- Scrum Master: The Scrum Master is accountable for establishing Scrum as defined in the Scrum Guide. They do this by helping everyone understand Scrum theory and practice, both within the Scrum Team and the organization.
- The Sprint:
Sprints are the heartbeat of Scrum, where ideas are turned into value.
They are fixed length events of one month or less to create consistency.
During the Sprint:
- No changes are made that would endanger the Sprint Goal
- Quality does not decrease.
- The Product Backlog is refined as needed
- Scope may be clarified and renegotiated with the Product Owner as more is learned.
- Sprint Planning:
Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team.
- Topic One: Why is this Sprint valuable?
- Topic Two: What can be Done this Sprint?
- Topic Three: How will the chosen work get done?
- Daily Scrum: The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work. Daily Scrums improve communications, identify impediments, promote quick decision-making, and consequently eliminate the need for other meetings.
- Sprint Review: The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations. The Scrum Team presents the results of their work to key stakeholders and progress toward the Product Goal is discussed.
- Sprint Retrospective The purpose of the Sprint Retrospective is to plan ways to increase quality and effectiveness. The Scrum Team inspects how the last Sprint went with regards to individuals, interactions, processes, tools, and their Definition of Done. Inspected elements often vary with the domain of work. Assumptions that led them astray are identified and their origins explored. The Scrum Team discusses what went well during the Sprint, what problems it encountered, and how those problems were (or were not) solved.