CS计算机代考程序代写 Software Engineering

Software Engineering
Agile Process
and
A Brief Intro to Scrum
(Includes graphics from Ken Rubin and Mike Cohn: Agile Alliance)

Reference for the group stage:
Here is a concise reference to the agile process framework we’ll use in the project: Scrum.
“The Scrum Guide” November 2020
https://www.scrumguides.org/download.html
It’s the definitive guide. You’ll find the official version (PDF, English), and community translations into many languages.
Short, with 10 pages of content.
Many details changed from the previous Guide (2017), but the core ideas and principles remain the same.
COMP3297: Software Engineering

The Scrum Framework
A process framework for organizing and managing complex product development.
Scrum is not a methodology for developing products. It must be combined with other practices, methodologies and standards. It doesn’t tell how to develop the increments.
Extremely useful framework to master since it is compatible with many methodologies and can wrap around them.
COMP3297: Software Engineering 3
“Scrum is:
Lightweight
Simple to understand Difficult to master”

From the Guide
The Scrum Guide contains the definition of Scrum. Each element of the framework serves a specific purpose that is essential to the overall value and results realized with Scrum.
Changing the core design or ideas of Scrum, leaving out elements, or not following the rules of Scrum, covers up problems and limits the benefits of Scrum, potentially even rendering it useless.

The Scrum framework, as outlined herein, is immutable. While implementing only parts of Scrum is possible, the result is not Scrum.
Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices.
COMP3297: Software Engineering 4

Scrum and your project
Scrum is one way of doing agile development.
It is the most popular framework, but not the only way.
For practical reasons, you can’t do everything that Scrum requires in your Group Project.
You will be guided by Scrum principles, but you won’t be doing Scrum…which is fine.
What is worse is believing you are doing Scrum, but in fact abusing Agile principles and values.
More common than you might think: Dark Scrum
COMP3297: Software Engineering 5

Why you need to know Agile development
Percentage of companies using Agile development methods
Why you need to know Scrum
State of Agile Report 2020
COMP3297: Software Engineering
State of Agile Report 2020
6
Scrum and Scrum hybrids dominate in industry

Reminder: Empirical Process Control
Input Process Output
Identify when aspects of the product or process are deviating beyond acceptable limits, and adjust process to bring them back into control.
Decisions are based on what is observed.
COMP3297: Software Engineering
7
Empirical control is built on three principles which form the basis for Agile frameworks like Scrum:
Transparency Inspection Adaptation

Scrum cycle:
Input
Process
Output
Product Owner maintains the work to be done in an ordered Product Backlog
Scrum Team turns a selection of work into an increment of value during a Sprint
Scrum Team and stakeholders inspect the results and adjust for the next Sprint
COMP3297: Software Engineering
8

What is inspected?
The three Scrum artefacts (each also contains a commitment):
Product Backlog. This is the only source of work for the Scrum Team.
Product Backlog Items are the “what” needed to achieve the Product Goal, the long-term objective of the Scrum Team.
Sprint Backlog is a set of Product Backlog items chosen to achieve the Sprint Goal, which is the objective of the Sprint created during Sprint Planning. The Sprint Plan is also part of the Backlog.
Increment is a concrete step towards the Product Goal. A new Increment come into existence when a Product Backlog item under development satisfies the Definition of Done.
A Sprint may create more than one Increment.
COMP3297: Software Engineering 9

Inspection
All events are timeboxed
COMP3297: Software Engineering 10

Inspection and Adaptation
Initial vision and backlog
Input
Process Inspection
Process
Product Inspection
Output
Final output
In Scrum, inspection and adaptation take place during:
Sprint Planning Daily Scrum Sprint Review
Sprint Retrospective
COMP3297: Software Engineering
11

Scrum Events
4 Scrum events are contained within each short – 4 weeks or less – timeboxed Sprint (a 5th event)
Sprint Planning. Product Owner suggests the most valuable objective for the Sprint and the Scrum Team works together to define a corresponding Sprint Goal.
Developers select Product Backlog Items to fill the Sprint and achieve the Sprint Goal. They then plan how to complete the work to create the next Increment.
Daily Scrum. Developers meet for 15 minutes each day to inspect progress and adapt the Sprint Backlog and Plan.
Sprint Review. At the end of the Sprint, Scrum Team and stakeholders review the work completed and progress made towards the Product Goal. Product Backlog can be adjusted to accommodate change, and they discuss the next step in development.
Sprint Retrospective. The last event of the Sprint. Scrum Team inspects elements of the process, what went well, what could be improved, and adapts accordingly.
COMP3297: Software Engineering 12

Do developers really do all that?
Top 5 Agile techniques and practices actually used:
COMP3297: Software Engineering 13

The team is small – 10 or fewer members.
Depending on the size of the overall product, there may be one or many Scrum teams.
Within every team are three accountabilities, but the entire team is accountable for creating a valuable Increment in each Sprint:
Focus is on Scrum principles and practices
Focus is on
building the right product and maximizing value
Focus is on
building the product right.
The Scrum team is self-managing and cross-functional. It is not directed by anyone outside the team and does not need to depend on others to create value.
COMP3297: Software Engineering
The Scrum Team
Developers
14

Product Owner
Developers
Single authority for managing the Product Backlog – that is deciding which features and functionality to build and in what order.
Responsible for the overall success of the solution being developed. Collaborates with other members of Scrum Team and with other Stakeholders Can delegate but remains accountable.
COMP3297: Software Engineering 15

ScrumMaster
The process authority. Ensures that the team understands, enacts and adheres to Scrum values, principles and practices. Serves and supports the Product Owner, Developers and the Organization.
Acts as a coach for the Scrum Team and removes anything blocking progress.
Has no authority over the team. Doesn’t tell anyone how to implement the backlog items.
Developers
No one tells the team how many PBIs to bring into a sprint or, as above, how to build the increment. They create the plan for the Sprint.
They create the Increment.
COMP3297: Software Engineering 16

Sprint
Feature M
Refactor A Feature Q
COMP3297: Software Engineering
17
New sprint immediately follows the completion of the previous sprint.
Timeboxes are generally kept at the same duration and are strict.
Risk is limited to the duration of the timebox.

An alternative approach with more structure: Unified Process. Still can be Agile.
The UP organizes the project spiral into 4 sequential phases:
Inception
Elaboration
Construction
Transition
Each phase is a series of iterations. Each iteration is cycle of the spiral.
Unlike Scrum, each phase has its own distinct objectives, deliverables
and character.
COMP3297: Software Engineering 18

UP Phases – risk-driven
Inception: Understand what to build
Vision, high-level requirements, business case Addresses business risks
Elaboration: Understand how to build it
Verified baseline architecture, most requirements detailed Addresses architectural/technical risks
Construction: Build the product
Complete working product, system test complete Addresses logistical risks
Transition: Validate solution
Stakeholder acceptance
Addresses delivery and roll-out risks
Inception
Elaboration
Construction
Transition
COMP3297: Software Engineering 19

Unified Process framework (The diagram you see everywhere for the UP. It represents activity during a typical mid-sized project)
Each column is an iteration
Which is a distinct sequence of activities…
…with an established plan and evaluation criteria…
…resulting in an executable release.
Disciplines
COMP3297: Software Engineering
20
TI M E

Finally, a second generation hybrid: Disciplined Agile Delivery
No explicit Elaboration phase, but there implicitly in the form of the “Proven architecture” milestone early in Construction.
COMP3297: Software Engineering 21