Files
uni/year2/semester1/logseq-stuff/pages/Introduction to Agile Methods.md

4.9 KiB

  • #CT216 - Software Engineering I
  • Previous Topic: Software Processes
  • Next Topic: SCRUM Roles & Ceremonies
  • Relevant Slides: Week 3 - Introduction to Agile Methods - Scrum(1).pdf
  • Software Development Lifecycle

    • What is the Software Lifecycle? #card card-last-interval:: 4 card-repeats:: 2 card-ease-factor:: 2.7 card-next-schedule:: 2022-11-22T18:34:10.895Z card-last-reviewed:: 2022-11-18T18:34:10.895Z card-last-score:: 5
      • The software lifecycle is an abstract representation of a software process. It defines the steps, methods, tools, activities, and deliverables of a software development project.
      • The following lifecycle phases are considered:
          1. Requirement Analysis
          2. System Design
          3. Implementation
          4. Integration & Deployment
          5. Operation & Maintenance
    • SDLC Limitations

      • Classical project planning methods have a lot of disadvantages:
        • Huge efforts during the planning phase (requirements + design).
        • Poor requirements conversion in a rapidly changing environment.
        • Treatment of staff as a factor of production.
  • Agile

    • What is Agile? #card card-last-interval:: 9.28 card-repeats:: 3 card-ease-factor:: 2.32 card-next-schedule:: 2022-11-23T22:34:56.520Z card-last-reviewed:: 2022-11-14T16:34:56.520Z card-last-score:: 5
      • There is no single definition of Agile, but the Agile Manifesto is the closest to a defintion.
        • Set of principles.
        • Developed by Agile Alliance.
      • Agile methods focus on:
        • Individuals & interactions over processes & tools.
        • Working software over comprehensive documentation.
        • Customer collaboration over contract negotiation.
        • Responding to change over following a plan.
    • The Agile Alliance is a non-profit organisation promotes agile development.
    • Agile Motivation

      • Agile proponents argue:
        • Software development processes relying on lifecycle models are too heavyweight or cumbersome.
        • Too many things are done that are not directly related to the software product being produced, i.e., design, models, requirements docs, documentation that isn't shipped as part of the product.
        • Difficulty with incomplete or changing requirements.
        • Short development cycles (Mobile Apps).
        • More active customer involvement needed.
    • There are several Agile methods, including Scrum and Extreme Programming (XP).
    • SCRUM

      • What is Scrum? #card card-last-score:: 5 card-repeats:: 4 card-next-schedule:: 2022-12-06T08:19:38.287Z card-last-interval:: 21.53 card-ease-factor:: 2.32 card-last-reviewed:: 2022-11-14T20:19:38.287Z
        • Scrum is an agile project management methodology for managing product development.
        • It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month).
        • The business sets the priorities. The teams self-manage to determine the best way to deliver the highest priority features.
        • Every two weeks to a month, anyone can see real, working software and decide to release it as is or continue to enhance it for another iteration.
      • Characteristics of Scrum #card

        card-last-score:: 3 card-repeats:: 3 card-next-schedule:: 2022-11-19T18:30:55.633Z card-last-interval:: 8.32 card-ease-factor:: 2.08 card-last-reviewed:: 2022-11-11T11:30:55.634Z
        • Self-organising teams.
          • No need for project manager (in theory).
        • Product progresses in a series of month-long or biweekly sprints.
        • Assumes that the software cannot be well defined and requirements will change frequently.
        • Requirements are captured as items in a list of product backlog.
        • No specific engineering practices prescribed.
          • XP, TDD, FDD.
        • Best approach is to start with Scrum and then invent your own version using XP, TDD< FDD, etc.
      • Daily SCRUM / Standup #card

        card-last-interval:: 33.64 card-repeats:: 4 card-ease-factor:: 2.9 card-next-schedule:: 2022-12-21T00:50:15.178Z card-last-reviewed:: 2022-11-17T09:50:15.179Z card-last-score:: 5
        • Parameters:
          • Daily.
          • 15-minutes.
          • Stand-up.
          • Not for problem solving.
          • Only team members, Scrum Master, & Product Owners should talk.
          • Should help to avoid additional unnecessary meetings.
          • Commitment in front of peers to complete tasks.
        • ^^Answer 3 questions:^^
          • ^^What did you do yesterday?^^
          • ^^What will you do today?^^
          • ^^Is anything in your way?^^
        • The Daily SCRUM is not a problem-solving session and is not a way to collect information about who is behind the schedule.
        • It is a meeting in which members make commitments to each other and to the SCRUM Master.
        • It is a good way for a SCRUM Master to track the progress of the team.