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

        1. Scrum.

        2. Kanban.

        3. Extreme Programming (XP).

        4. Feature Driven Development (FDD).

        5. Crystal.

        6. Dynamic System Development Method (DSDM).

        7. Rapid Application Development (RAD).

        8. Adaptive Software Development (ASD).

        9. Disciplined Agile (DA).

        10. Scaled Agile Framework (SAFe).

        11. Large-Scale Scrum (LeSS).

        12. 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