Scrum - Agile Manifesto
Waterfall Methodology
Traditional Development
REQUIREMENT ANALYSIS
DESIGN
DEVELOPMENT
TESTING
IMPLEMENTATION
MAINTENANCE
Problems with Traditional Development
Hard to be Predictive
Lack of flexibility
It requires each stage of development must be completed before moving on to the next. This can lead to delays and make it difficult to adapt to changing requirements
High levels of documentation
It places a heavy emphasis on documentation. While documentation is important, focusing too much on it can lead to a lack of focus on the actual development process
Traditional Development Results
Builds exactly what was asked for
But it is not what you need now
Class Activity
Write down the route you will take to a destination of your choosing that is over five hours away
Houston, we have a problem
There is a massive traffic backup on your defined route
You see full lanes of traffic for a couple of miles ahead and hear on the radio that there is no immediate expected resolution
What do you do
Wait for the traffic to clear
Attempt a reroute
Adaptive Development
Origin of the Agile Manifesto
2001:
17 Technologists met at the Snowbird Ski Resort in SLC UT.
Unhappy with state of software development.
Wanted to delight customers and be more productive.
Wrote The Agile Manifesto.
12 Principles.
4 Core Values.
Agile Principle #1
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
The importance of delivering value to the customer as early and frequently as possible. It allows customers to see the software in action, provide feedback, and ensure that the development team is meeting their needs
In traditional software development approaches, customers often have to wait for long periods before they can see and use the software
Agile Principle #2
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage
Agile can evolve and change over time as the customer's needs and market conditions change. Agile teams can respond more quickly to customer needs, deliver value more efficiently, and help the customer gain a competitive advantage
In traditional, changes are difficult and expensive to make later on
Agile Principle #3
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
Agile processes aim to deliver working software on a frequent basis, often in increments of a few weeks to a few months. This feedback allows the team to adjust the software and make changes as needed, ensuring that the final product meets the customer's needs and expectations
In traditional software development approaches, software releases often happen infrequently, with long periods between releases
Agile Principle #4
Business people and developers must work together daily throughout the project
The importance of close collaboration and communication between the development team and the business stakeholders
In traditional software development approaches, business requirements are often gathered and documented upfront, with little interaction between the development team and the business stakeholders during the development process
Agile Principle #5
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
Team members have the freedom and responsibility to make decisions about how to approach their work. By empowering the development team and trusting them to make decisions, the Agile approach helps to foster a culture of innovation, creativity, and collaboration
Agile Principle #6
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
It recognizes that face-to-face communication is often the most efficient and effective way to convey complex information, ideas, and feedback within the development team.
Team can improve collaboration, reduce misunderstandings, and increase the efficiency and effectiveness of their work.
Agile Principle #7
Working software is the primary measure of progress
Delivering functional software
Agile Principle #8
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely
Traditional software development approaches often prioritize productivity over sustainability, leading to burnout, low morale, and decreased quality of work
Agile processes aim to maintain a steady and sustainable pace of development over the long term
Sustainable development means that teams are able to maintain their productivity and quality of work over an extended period without experiencing burnout or other negative effects
To achieve this, teams need to prioritize factors like work-life balance, regular breaks, and clear communication to ensure that everyone involved in the project can maintain a steady pace of work
They can also reduce the risk of employee turnover and maintain team morale, leading to a more positive and productive work environment
Agile Principle #9
Continuous attention to technical excellence and good design enhances agility
Technical excellence means developing high-quality software that is reliable, maintainable, and scalable
Good design refers to the thoughtful and intentional organization of code, which makes it easier to modify and update as requirements change
Agile Principle #10
Simplicity–the art of maximizing the amount of work not done–is essential
It's essential to prioritize tasks based on their value and only work on those that provide the most significant benefit.
By doing so, teams can avoid wasting time and resources on tasks that don't contribute to the project's success.
Agile Principle #11
The best architectures, requirements, and designs emerge from self-organizing teams
Provide teams the autonomy and freedom to organize and manage their work
By doing so, they are better able to create effective solutions that meet the customer's needs and can adapt quickly to changing requirements or circumstances
Agile Principle #12
At regular intervals, the team reflects on how to become more effective, and then tunes and adjusts its behavior accordingly
The importance of continuous learning and adaptation in Agile methodologies
Statement of Values
Individuals and Interactions -- over --> Processes and Tools
Working Product -- over --> Comprehensive Documentation
Customer Collaboration -- over --> Contract Negotiation
Responding to Change -- over --> Following a Plan
Introducing Scrum
Focus on People
Expect professionalism to be used to produce high quality
Working Software
Agile aims to deliver high-quality working (functioning with needed functionality) software products
Flexibility
Agility: The ability to adjust to changing conditions
Customer Involvement
Customers or User representatives are expected to be involved, give opinions and feedback, and help to prioritize next steps
Multidisciplinary, Cooperating Teams
Scrum teams consist of different professionals; each with different specialty skills working together to deliver the requested product
Trust
Trust is the basic ingredient to be able to deliver the requested quality
Agile Frameworks
Scrum.
Kanban.
Extreme Programming (XP).
Feature Driven Development (FDD).
Crystal.
Dynamic System Development Method (DSDM).
Rapid Application Development (RAD).
Adaptive Software Development (ASD).
Disciplined Agile (DA).
Scaled Agile Framework (SAFe).
Large-Scale Scrum (LeSS).
Lean Software Development (LSD).
What Scrum is Not
Scrum has no exhaustive and formal prescriptions on how to design and plan the work, actions, and behaviors of all players involved in product development against time.
Scrum is also not a methodology.
Scrum
Scrum is a lightweight framework that helps teams and organizations generate value through adaptive solutions. It is ideal for complex product development, and is iterative and incremental
Scrum Roles
In general, a Role is a set of activities, responsibilities, and/or authorities granted to/performed by a person, group or team
Rituals/Activities
Rituals/Activities represent actions to be taken or a specific act of work to be performed
Rituals
Sprint
Sprint Planning
Daily Scrum
Sprint Execution
Sprint Review
Sprint Retrospective
Product Backlog Grooming
Artifacts - Documentation/Reporting
Artifacts are documents that report, or documentation of some activity that has been performed or is planned to be performed
Artifacts
Definition of Done
Product Backlog
User Stories
Sprint Backlog
Burn-Down Chart
Task Board
Rules
Rules define prescribed behavior or a control mechanism that is intended to be followed
Last updated