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
COMP2511: Agile Software Development & The Project
By npatrikeos
COMP2511: Agile Software Development & The Project
- 1,585