Agile Software
Development &
The Project
COMP2511
The Software Development
Lifecycle
Requirements
Analysis
User Stories & Epic Stories
Role, Goal, Benefit
As a resident in a COVID hotspot, I want to be alerted of all
new cases so that I can keep those around me safe
What’s a good user story?
Specific role
Singular goal
The benefit is actually beneficial to the user
Epic Stories
Abstract user story that encompasses several stories
Describes user problems at a higher level
Acceptance Criteria
Descriptive (Yes/No)
The user is given an alert whenever there is an update to
restrictions
The user can see the number of active cases in the
community
Scenario-Based
Given, When, Then
Given that the user has scanned in to a venue, when there
is a case identified at the venue, then the user is informed
Story Points and Priorities
Story Points
Relative measure of effort needed to complete a user
story
Includes time taken to research how to do it
Fibonacci Scale – 1, 3, 5, 8, 13, 21
Priorities
High Priority – Minimum Viable Product (MVP)
Medium Priority
Low Priority
Example Gitlab
Taskboard
https://gitlab.cse.unsw.edu.au/z5169779/taskboard-
example-2511/-/boards
Agile Project
Management
Timeline
Using Story Points and Priorities, create a rough plan
of how work will be completed
Considerations
Sequencing of Tasks
Allocation of Tasks
Timespan of Tasks
Meeting Minutes
Attendees
(Optional) Agenda
Discussion Points
Action Items
Agile Practices
Standups
Asynchronous Standups
Pair Programming
Test-Driven
Development (TDD)
Why test first?
Start with the end
Tests-last simply justify the code written
You want your tests to fail your code, not to pass your
code
TDD with Java & Classes
1. Design your model (UML Diagram)
2. Write the class & method stubs
3. Write unit tests
4. Run the unit tests
5. Implement the functions
6. Pass the tests
Git Practices
Tasks are assigned to team members;
Tasks are updated across the kanban columns;
The board shows the truth of your team’s progress;
The timeline you created in Milestone 1 is updated as
needed in Milestones 2 and 3
Assignment of tasks in the timeline corresponds to the
board;
Detail and specificity in commit messages;
Avoiding committing large chunks of code;
Merge requests are approved by another team member;
One feature = one branch = one merge request into
master.
Good Assumptions
Clear up an ambiguity in the specification
A good assumption articulates a behaviour rather
than an implementation
Assumptions are black-box