Sprint 1: Planning a Service - Assessment Outline

Value: 10% of the Course Mark

Due: Monday 28th February (Week 3), 1pm

1. Task

In this sprint, you will be expected to:

  1. Within your team, allocate team roles.

  2. Convert the initial specification for your assigned service category into a list of requirements.

  3. Decide on a stack architecture for your service.

  4. Identify any initial constraints that will affect the team’s performance in the project

  5. Create an initial API interface design for your service.

  6. Plan for the completion of work for the following sprint to complete a MVP of the service.

2. Team Roles

Based on your individual and collective strengths, discuss and as a team allocate the following roles:

  • Team Lead / Scrum Master

  • Product Owner

  • Delivery Manager (Optional)

These roles aren’t formal positions of responsibility within the group - they are simply a means of helping you structure your approach to managing the project by having people responsible for specific aspects of it. You are welcome to change the roles, if you as a team see fit during the term.

In a Confluence page called Team, document your decision-making process and the reasoning behind the team’s decision.

3. Requirements Analysis

Using Confluence, convert the specification for your assigned service into a list of requirements.

You may, but are not expected to use a controlled language notation such as Connextra Notation (User Stories & Acceptance Criteria). A list of dot points with statements detailing the definition of done will suffice, however.

You will need to logically group features that are related, and differentiate between functional and non-functional requirements.

Document this in a Confluence page called Requirements in your team workspace.

4. Initial Software Architecture Design

As a team, you will need to decide the stack you will use to develop the service. In particular, you will need to decide what frameworks you will use to create each of the following layers of your service:

  • Deployment Method

  • Server / API Layer

  • Application Layer

  • Persistence Layer

In your discussions, you should consider factors and constraints including, but not limited to the following:

  • Current team member knowledge of frameworks

  • Difficulty of frameworks to learn

  • How well the framework is documented

  • Availability / pricing of platforms

Your software architecture design can change between now and when you implement the service - this is simply an initial draft design.

You will also need to decide on your repository provider (GitHub / Bitbucket). This is up to you, however the course has 2 requirements for this:

  • You must be able to link your Jira tickets to branches and Merge Requests / Pull Requests

  • You must be able to setup automated Continuous Integration. GitHub provides free CI through GitHub Actions. If you would like to use Bitbucket please make a post on the forum, as we will be able to set it up for you.

Document your decisions and reasoning inside a Confluence page called Architecture.

5. Initial API Design

Convert your list of requirements into an initial API Interface Design for your chosen service. Your interface design will need to include the following:

  • Route names

  • Route description

  • CRUD method (GET, POST, PUT, DELETE)

  • Parameters

  • Return values

  • Exceptional flows

  • Descriptions of composite parameter / return types

You are welcome to use an alternative approach to designing your API, such as GraphQL, however all design decisions must be documented. You may use Swagger for this phase if you wish, however you are not required to. You will need to create a finalised API Design with Swagger in the next sprint.

Place your design inside a Confluence page called Interface.

6. Project Planning

From your requirements analysis and design, plan for the completion of work for a Minimum Viable Product (MVP) of the service.

The breakdown of tasks is up to you as a team, however you should (a) ensure that tasks are broken down at a technical level and not just a product level, and (b) document your logic behind the breakdown of tasks.

Using Jira, you will need to:

  • Create a sprint that details all of the work up until the end of Sprint 2;

  • Create tickets / work items for each task;

  • Appropriately group tickets together under epics;

  • Where needed, split tickets down into subtasks;

  • Allocate assignees and reporters to each ticket;

  • Allocate Story Points to each ticket;

  • Allocate Priorities to each ticket;

  • Sequence the tickets appropriately in the backlog; and

  • Highlight dependencies and prerequisites between tasks as needed.

Document any important reasoning that occurs as part of this process inside a Confluence page called Planning.

7. Constraint Analysis

Identify and document any constraints - potential bottlenecks, blockers or other obstacles that may arise in the project and affect your performance as a team. Briefly note down any measures you as a team can put in place to exploit the constraints.

Document this inside a Confluence page called Constraints.

8. Communications

As part of this sprint you will need to demonstrate your ability to communicate and work as a team. You will need to have:

  • A sprint planning meeting;

  • Regular standups, either synchronous or asynchronous (at least 3 a week); and

  • A sprint retrospective meeting.

You will need to take minutes for your meetings and record these on Confluence. Minutes should contain information on:

  • Who was there;

  • What was discussed; and

  • Action items.

Meeting minutes should also be taken at project check-ins.

You are welcome to use whatever asynchronous communication platform you as a team choose (MS Teams, Slack, Facebook, Discord) - however your tutor will setup a MS Teams Channel for you to communicate in, and this is the only place we will look when marking your communication and resolving disputes.

Inside a Confluence page called Communications, document any reasoning and screenshots of communications outside MS Teams.

9. Marking Criteria

Criteria

Description

Criteria

Description

Team Roles (5%)

  • Have the team roles been allocated logically according to individual member strengths / goals?

  • Has the entire team participated in the process of delegating team roles?

Requirements & Constraint Analysis (15%)

  • Do the requirements listed form a complete and accurate specification of the product?

  • Have the requirements been listed in a consistent and readable format?

  • Have the requirements been organised in a logical hierarchy?

  • Have functional and non-functional requirements been differentiated?

  • Do the requirements outline a specification rather than an implementation?

  • Is there a definition of what done looks like?

  • Are the constraints identified logical, valid and justified?

  • Are the suggested steps taken to exploit constraints feasible?

Initial Software Architecture Design (20%)

  • Have all relevant layers of the service been chosen?

  • Is the stack logical and justified?

  • Is there evidence of deliberation, consideration of multiple options and elimination to decide upon the best ones?

  • Have factors and constraints been taken into account when deciding upon the stack?

Initial API Design (20%)

  • Does the API design provide a near-complete solution to the specified requirements?

  • Does the API provide ability to create, read, list, update and delete data in the service?

  • Have all required fields been included for each endpoint?

  • Are the endpoint descriptions succinct and understandable?

  • Is the interface well formatted and readable?

Project Planning (30%)

  • Do tickets correspond to logical segmentations of work?

  • Are the tickets written at a technical level of abstraction?

  • Have individuals been logically assigned to tasks?

  • Are task allocations approximately equal?

  • Have dependencies and prerequisites between tasks been highlighted?

  • Have story points been logically allocated to tasks according to a specified structure?

  • Have tasks been appropriately broken up into sub-tasks?

  • Have priorities been logically allocated to tasks?

  • Is the backlog sequenced logically?

  • Have tickets been logically grouped under epics?

  • Does the plan provide a complete layout of the next sprint of work?

Communications (10%)

  • Are meeting minutes well laid-out, detailed and insightful?

  • Has the team been using a platform for regular communication?

  • Has the team undertaken Agile communications? (standups, sprint planning, sprint retrospective)

10. Submission

For this sprint, we will take the state of your Jira board and Confluence space at the deadline as your submission. You do not need to run any submission commands.

Late submissions will not be accepted.

Applications for Special Consideration and ELS assessment accomodations will not include extensions as this is a group project with no scope for extending deadlines. The course authority will determine an appropriate adjustment in cases where a Special Consideration request is approved or a student has an equitable learning plan. Students in either of these positions should email se2021@cse.unsw.edu.au.