> For the complete documentation index, see [llms.txt](https://peterlulu666.gitbook.io/tek-system-java-developer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://peterlulu666.gitbook.io/tek-system-java-developer/week-1/scrum-agile-manifesto.md).

# Scrum - Agile Manifesto

* Waterfall Methodology
  * Traditional Development
    * REQUIREMENT ANALYSIS&#x20;
    * DESIGN&#x20;
    * DEVELOPMENT&#x20;
    * TESTING&#x20;
    * IMPLEMENTATION&#x20;
    * MAINTENANCE&#x20;
  * Problems with Traditional Development
    * Hard to be Predictive
    * Lack of flexibility&#x20;
      * 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&#x20;
    * High levels of documentation&#x20;
      * 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&#x20;
  * Traditional Development Results&#x20;
    * Builds exactly what was asked for&#x20;
    * But it is not what you need now&#x20;
  * Class Activity
    * Write down the route you will take to a destination of your choosing that is over five hours away&#x20;
  * Houston, we have a problem&#x20;
    * There is a massive traffic backup on your defined route&#x20;
    * You see full lanes of traffic for a couple of miles ahead and hear on the radio that there is no immediate expected resolution&#x20;
  * What do you do&#x20;
    * Wait for the traffic to clear&#x20;
    * Attempt a reroute&#x20;
* Adaptive Development&#x20;
* Origin of the Agile Manifesto&#x20;
  * 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.&#x20;
      * 4 Core Values.&#x20;
  * Agile Principle #1
    * Our highest priority is to satisfy the customer through early and continuous delivery of valuable software&#x20;
      * 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**&#x20;
      * In traditional software development approaches, customers often have to **wait** for long periods before they can see and use the software&#x20;
  * Agile Principle #2&#x20;
    * Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage&#x20;
      * 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&#x20;
      * In traditional, changes are difficult and expensive to make later on&#x20;
  * Agile Principle #3&#x20;
    * Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale&#x20;
      * 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&#x20;
      * In traditional software development approaches, software releases often happen infrequently, with long periods between releases&#x20;
  * Agile Principle #4&#x20;
    * Business people and developers must work together daily throughout the project&#x20;
      * 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&#x20;
  * Agile Principle #5&#x20;
    * Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done&#x20;
      * 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&#x20;
  * Agile Principle #6&#x20;
    * The most efficient and effective method of conveying information to and within a development team is face-to-face conversation&#x20;
      * 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.&#x20;
      * Team can improve collaboration, reduce misunderstandings, and increase the efficiency and effectiveness of their work.&#x20;
  * Agile Principle #7&#x20;
    * Working software is the primary measure of progress&#x20;
      * Delivering functional software&#x20;
  * Agile Principle #8&#x20;
    * Agile processes promote **sustainable development**. The sponsors, developers, and users should be able to maintain a constant pace indefinitely&#x20;
      * Traditional software development approaches often prioritize productivity over sustainability, leading to burnout, low morale, and decreased quality of work&#x20;
      * Agile processes aim to **maintain a steady and sustainabl**e pace of development over the long term&#x20;
        * **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&#x20;
        * 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&#x20;
        * They can also **reduce** the risk of employee **turnover** and **maintain** team **morale**, leading to a more positive and productive work environment&#x20;
  * Agile Principle #9&#x20;
    * Continuous attention to **technical excellence** and **good design** enhances agility&#x20;
      * **Technical excellence** means developing high-quality software that is reliable, maintainable, and scalable&#x20;
      * **Good design** refers to the thoughtful and intentional organization of code, which makes it easier to modify and update as requirements change&#x20;
  * Agile Principle #10&#x20;
    * Simplicity–the art of maximizing the **amount of work not done**–is essential&#x20;
      * It's essential to **prioritize tasks** based on their value and only work on those that provide the most significant benefit.&#x20;
      * By doing so, teams can **avoid wasting time** and resources on tasks that don't contribute to the project's success.&#x20;
  * Agile Principle #11&#x20;
    * The best architectures, requirements, and designs emerge from **self-organizing** teams&#x20;
      * Provide teams the **autonomy and freedom** to organize and manage their work&#x20;
      * 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 &#x20;
  * Agile Principle #12&#x20;
    * At regular intervals, the team reflects on how to become more effective, and then tunes and adjusts its behavior accordingly&#x20;
      * The importance of **continuous** learning and adaptation in Agile methodologies&#x20;
  * Statement of Values&#x20;
    * Individuals and Interactions -- over --> Processes and Tools&#x20;
    * Working Product -- over --> Comprehensive Documentation&#x20;
    * Customer Collaboration -- over --> Contract Negotiation&#x20;
    * Responding to Change -- over --> Following a Plan&#x20;
  * Introducing Scrum&#x20;
    * Focus on People&#x20;
      * Expect professionalism to be used to produce high quality&#x20;
    * Working Software&#x20;
      * Agile aims to deliver high-quality working (functioning with needed functionality) software products&#x20;
    * Flexibility&#x20;
      * Agility: The ability to adjust to changing conditions&#x20;
    * Customer Involvement&#x20;
      * Customers or User representatives are expected to be involved, give opinions and feedback, and help to prioritize next steps&#x20;
    * Multidisciplinary, Cooperating Teams&#x20;
      * Scrum teams consist of different professionals; each with different specialty skills working together to deliver the requested product&#x20;
    * Trust&#x20;
      * Trust is the basic ingredient to be able to deliver the requested quality&#x20;
    * Agile Frameworks&#x20;
      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).&#x20;
    * What Scrum is Not&#x20;
      * 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.&#x20;
    * Scrum&#x20;
      * 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&#x20;
    * Scrum Roles&#x20;
      * In general, a Role is a set of **activities, responsibilities, and/or authorities** granted to/performed by a person, group or team&#x20;
    * Rituals/Activities&#x20;
      * Rituals/Activities represent actions to be taken or a specific act of work to be performed&#x20;
      * Rituals&#x20;
        * Sprint&#x20;
        * Sprint Planning&#x20;
        * Daily Scrum&#x20;
        * Sprint Execution&#x20;
        * Sprint Review&#x20;
        * Sprint Retrospective&#x20;
        * Product Backlog Grooming&#x20;
    * Artifacts - Documentation/Reporting&#x20;
      * Artifacts are documents that report, or documentation of some activity that has been performed or is planned to be performed&#x20;
      * Artifacts&#x20;
        * Definition of Done&#x20;
        * Product Backlog&#x20;
        * User Stories&#x20;
        * Sprint Backlog&#x20;
        * Burn-Down Chart&#x20;
        * Task Board&#x20;
    * Rules&#x20;
      * Rules define prescribed behavior or a control mechanism that is intended to be followed&#x20;
