/
Sprint 1: Planning a Service - Assessment Outline Draft

Sprint 1: Planning a Service - Assessment Outline Draft

Value: 10% of the Course Mark

Due: Monday 3rd March (Week 3), 1pm

What is this sprint aiming to achieve?

Sprint 1 is all about planning and designing. You’ll be planning your work up until the end of Sprint 2 (Week 5). The learning outcomes of this sprint can be broken down into four major pillars:

  1. Requirements Engineering. To succeed in creating a solution you first need to understand the problem you’re solving. This means analysing the problem domain and defining requirements for your API.

  2. Designing an API. You’ll need to decide on the stack for your microservice - what technologies you’ll use at each layer to build and deploy a working prototype, and defining the technical requirements (interface) of your API.

  3. Managing a project. Using Jira and Confluence, industry-grade tools, you’ll be tracking and managing tasks and team progress. This sprint is all about familiarising yourself with the toolchain and workflow.

  4. Working as a Scrum team. In adopting Scrum team roles and following Scrum rituals - standups and retrospectives, you’ll be working in the same fashion as real-world software teams. You’ll have to work through issues as they arise - technical and people related! This is all a normal part of real Software Engineering.

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 API.

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. Section 1: Requirements Engineering

You will be assigned an API category by your tutor. You will need to define more precisely what your API will be covering:

  • The value of the API from a consumer’s perspective

  • The expected inputs

  • The expected outputs

You may add other information such as non-functional requirements (e.g. access, performance).

Make sure you read the API requirements provided and that your API complies with the category managed by your mentor.

Allocating someone in your team as a Product Owner who can become a Subject Matter Expert on the domain will help you understand the requirements better. You can also clarify the requirements by talking to your mentor.

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

4. Section 2: 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.

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

5. Section 3: 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

We expected documentation to be informal at this stage, perhaps using examples of requests and responses. You will need to create finalised API Design with proper documentation in the next sprints.

Place your design inside a Confluence page called Interface.

6. Section 4: 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. Marking Criteria

Criteria

Description

Criteria

Description

Requirements (20%)

  • Scope: Is the selected API compliant with the API category specified by the mentor ?

  • Content: Do the requirements listed form a complete and accurate specification of the API ?  Do the requirements outline a solution to a business problem rather than an implementation?

  • Format: Have the requirements been listed in a consistent and readable format? Have functional and non-functional requirements been differentiated?

  • Constraints: Are the constraints identified logical, valid and justified? Are the suggested steps taken to exploit constraints feasible? 

Initial Software Architecture Design (20%)

  • Architecture description: (1) are the different components identified ? (2) Justified appropriately ? (3) Considerations taken into account ? (4) Consideration of multiple options and elimination to decide upon the best one ?

  • Choice of technologies: selected platform and technologies justified appropriately. Consideration of multiple options and elimination to decide upon the best one

Initial API Design (20%)

  • Interface Breadth: Does the API design provide a near-complete solution to the specified requirements? Does the API provide the ability to create, read, list, update and delete data in the service?

  • Interface Quality: Have all required fields been included for each endpoint? Route names; Route description - succinct and understandable; CRUD method (GET, POST, PUT, DELETE); Parameters; Return values; Exceptional flows; Descriptions of composite parameter/return types; Is the interface well formatted and readable?

Project Planning (40%)

  • Team Roles: Role Allocation:  Have the team roles been allocated logically according to individual member strengths/goals?

  • Task Breakdown: Do tickets correspond to logical segmentations of work? Are the tickets written at a technical level of abstraction? Have tickets been logically grouped under epics?  Have tasks been appropriately broken up into sub-tasks? Does the plan provide a complete layout of the next sprint of work?

  • Task Sequencing & Allocation: Have individuals been logically assigned to tasks? Are task allocations approximately equal across the team? Have dependencies and prerequisites between tasks been highlighted? Is the backlog sequenced logically?

  • Task Details: Are the ticket descriptions sufficient for someone picking up the work item with minimal understanding to begin work (links to supporting documentation, etc)? Have story points been logically allocated to tasks according to a specified structure? Have priorities been logically allocated to tasks? 

  • Meeting Minutes: Are meeting minutes well laid out, detailed and insightful?Scrum Communications: Has the team undertaken Agile communications? Standups (at least 3 a week); Sprint Planning Meeting; Sprint Retrospective Meeting

Remember to communicate proactively with your mentor about teamwork issues as they arise.

For example, if Bob hasn’t been attending team meetings and completing their work in Week 2, then you should tell your mentor in Week 2.

If you fail to raise the issue in time, we may not be able to address the issue and/or apply redistribution of marks.

8. Submission

Sprint 1 Submission Guidelines

  • Make sure you have a single link to your online documentation website(Confluence) with the 4 sections of Sprint 1 as sub-links

  • Place a link to your online documentation website(Comfluence) in the Moodle Sprint 1 submission. Ensure that your tutor has full access.

  • The grading tutor will assess the state of your Jira board and Documentation (Confluence) space after the mentoring session as your final submission.

Submission Process:

  • Only one member of your team (the Scrum Master) should submit the link in Moodle text box here.

  • If the Scrum Master is unable to submit the assessment for any reason, inform your tutor as soon as possible.

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.

9. Plagiarism

The work you and your group submit must be your own work.

Students are permitted to use generative AI, provided they clearly disclose its use and seek confirmation from their mentor beforehand. This approach ensures transparency and responsible use of generative AI tools. 

Relevant scholarship authorities will be informed if students holding scholarships are involved in an incident of plagiarism or other misconduct.

All work you submit must be your team’s. The use of external contractors to complete the project or your part of the project is not permitted.

During your mentoring sessions, you mentor will be using the opportunity to interview you and ensure you are contributing to the project.

Related content