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:
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 service.
Designing a Microservice. 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.
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.
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:
Within your team, allocate team roles.
Convert the initial specification for your assigned service category into a list of requirements.
Decide on a stack architecture for your service.
Identify any initial constraints that will affect the team’s performance in the project
Create an initial API interface design for your service.
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 Engineering 🔍
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.
The requirements will be long and complex - try not to be intimidated by that! They are intentionally open-ended for you to define the scope of your application yourselves.
Allocating 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. 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. 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. Scrum 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 mentoring sessions.
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 |
---|---|
Requirements & Constraint Analysis (20%) |
|
Initial Software Architecture Design (20%) |
|
Initial API Design (20%) |
|
Project Planning (40%) |
|
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.
10. Submission ⬆️
Sprint 1 Submission Guidelines
Place a link to your online documentation website 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 Confluence space at the submission deadline as your final submission.
Submission Process:
Only one member of your team (the Scrum Master) should submit the proposal in PDF format 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.
11. 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.
Add Comment