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
Design your model (UML Diagram)
Write the class & method stubs
Write unit tests
Run the unit tests
Implement the functions
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