101 lines
4.9 KiB
Markdown
101 lines
4.9 KiB
Markdown
- #[[CT216 - Software Engineering I]]
|
|
- **Previous Topic:** [[Software Processes]]
|
|
- **Next Topic:** [[SCRUM Roles & Ceremonies]]
|
|
- **Relevant Slides:** _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.
|
|
- |