Warm-up: Software Processes and Agile Sprint Planning Flashcards
(27 cards)
What are the main software engineering activities?
- Specification
- Development
- Validation
- Evolution
Draw the diagram relating to requirement specification. Including: Requirements elicitation and analysis, Requirements specification and Requirement validation.
Draw the key steps in development.
Draw the validation diagram steps.
Draw the evolution diagram steps.
What is the diffenrences between software and systems engineering? (Ouline 4 sub)
Systems Engineering also includes:
* Software
* Hardware
* Deployment to physical environment
* Human-in-the-loop
Draw the diagram of the software engineering process of Waterfall.
Name the pros (2) of the waterfall process and what they are used to design (2).
Pros:
* Rigid formal process
* Precise plan-driven
Used to design:
- Embedded systems
- Safety-critical
systems
Give the con (1) of the waterfall process and what issues (2) it implies.
Activities are isolated:
- Late-changing requirements require
a lot of rework!
- Promotes “silo” mindset
Draw the diagram of the software engineering process of Incremental Development.
Name the pros (2) of the incremental development process and what they are used to design (3).
Pros:
* Flexible
* Informal
Fits well:
- Consumer software
- Web-based systems
- Mobile apps
Give the con (1) of the Incremental process and what issues (3) it implies.
Con:
Too Flexible
Issues:
- Large organizations with many teams
struggled to adopt
- Nowadays even safety-critical
systems industry is
iterative
- Wrong architecture degrades quickly
Name all the Principles of the Agile Manifesto (4)
- Individuals & interactions > Processes & tools
- Working software > Comprehensive documentation
- Customer collaboration > Contract negotiation
- Reacting to change > Following a plan
Within the Principles of the Agile Manifesto explain:
1. Individuals & interactions > Processes & tools
Build projects around motivated individuals
* Give them support they need
* Trust them to get the job done
Face-to-face conversation is the most effective method of
conveying information
* Applies to inter- and intra-team communication
Within the Principles of the Agile Manifesto explain:
2. Working software > Comprehensive documentation
Working software should be the primary measure of progress
* Iterate on prototypes that deliver Minimum Viable Products (MVPs)
Top priority is customer satisfaction
* Achieved through early and continuous delivery of valuable software
Simplicity is essential
* Maximizing the amount of work NOT done
Within the Principles of the Agile Manifesto explain:
3. Customer collaboration > Contract negotiation
Developers must work together with other team members
* Daily interaction throughout the project
Deliver working software frequently every:
* Month, Week, Day, Hour
* Preference is given to shorter timescales!
Project cadence should be sustainable
* Stakeholders should maintain a constant pace
Within the Principles of the Agile Manifesto explain:
4. Reacting to change > Following a plan
Changing requirements are welcomed
* Even late in development!
Continuous attention to technical details
* Good design enhances “agility”
Team regularly reflects on how to become more effective
* Behavior is adjusted accordingly
Explain the Iterative approach from Concepts in Agile Project Planning
- Release planning
- looks several months ahead, which features
should be in a release - Sprint / Iteration planning
- plan next increment of system – typically 2-4
weeks - Examples: Scrum, Kanban, Mixed, …
Explain Sprints are… from Concepts in Agile Project Planning
- Units of time for agile (scrum-based) software projects
- Time-boxed rather than story-bound
How long are sprints?
- From one week to one month (mode: two weeks)
- For your project, we will adopt 2-3 week sprints
How are sprints organized?
- Sprints begin with a planning session (backlog tasks are selected)
- End with a retrospective (can we improve the process for the next sprint?)
Explain backlogs from Concepts in Agile Project Planning
The backlog is a list of outstanding tasks yet to be completed
* New tasks can be added, priorities can be changed
* But a task / user story is never removed from backlog
* Ordered by priority—tasks to which team members assign greater importance are addressed first
Explain User stories are… from Concepts in Agile Project Planning
- User requirement written in customer’s language
- Short descriptions of functionality explained from the perspective of a type of user
A useful user story template is of the form… - As a <type>, I would like <feature> so that</feature></type>
<rationale>
* E.g.: “As a course instructor, I would like to add content to a
course so that enrolled students can access it on demand”
</rationale>
Explain Epics are… from Concepts in Agile Project Planning
- Long-term objectives in agile software projects
- Composed of a set of related user stories that may span multiple sprints