4.9 KiB
4.9 KiB
- #CT216 - Software Engineering I
- Previous Topic: Software Processes
- Next Topic: SCRUM Roles & Ceremonies
- Relevant Slides:
-
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:
-
- Requirement Analysis
- System Design
- Implementation
- Integration & Deployment
- 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.
- Classical project planning methods have a lot of disadvantages:
- 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
-
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.
- There is no single definition of Agile, but the Agile Manifesto is the closest to a defintion.
- 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.
- Agile proponents argue:
- 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.
- Self-organising teams.
-
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.
- Parameters:
- 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
- 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