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