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

101 lines
4.9 KiB
Markdown

- #[[CT216 - Software Engineering I]]
- **Previous Topic:** [[Software Processes]]
- **Next Topic:** [[SCRUM Roles & Ceremonies]]
- **Relevant Slides:** ![Week 3 - Introduction to Agile Methods - Scrum(1).pdf](../assets/Week_3_-_Introduction_to_Agile_Methods_-_Scrum(1)_1663848442133_0.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](www.agilealliance.org) 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.
-