Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
panelIconId2753
panelIcon:question:
panelIconText
bgColor#DEEBFF

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

  2. Designing a Microservicean 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. 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 serviceAPI.

2. Team Roles 🎱

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

...

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 requirementsYou 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).

Panel
panelIconId2049
panelIcon:interrobang:
panelIconText⁉️
bgColor#FFFAE6

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

...

  • 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 toWe expected documentation to be informal at this stage, perhaps using examples of requests and responses. You will need to create a finalised API Design with Swagger proper documentation in the next sprintsprints.

Place your design inside a Confluence page called Interface.

...

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

7.

...

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.

...

Marking Criteria (tick)

Criteria

Description

Requirements

& Constraint Analysis

(20%)

Team Roles: Role Allocation:  Have the team roles been allocated logically according to individual member strengths/goals? 
  • 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

product
  • API ?  Do the requirements outline a

specification
  • solution to a business problem rather than an implementation

? (PROBLEMS, not SOLUTIONS) . Is there a definition of what done looks like
  • ?

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

the requirements been organised in a logical hierarchy (logical grouping, sub-requirements, etc)? 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%)

Persistence Layer
  • Architecture description(1)

Chosen (2) Justified appropriately(3) Considerations taken into account (4) Consideration of multiple options and elimination to decide upon the best oneApplication Layer: (1) ChosenDeployment Layer:(1) Chosen(2) Justified appropriately(3) Considerations taken into account(4)
  • 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 ?

  • API Layer:(1) Chosen(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 technologiesjustified 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

    Panel
    panelIconId2757
    panelIcon:exclamation:
    panelIconText
    bgColor#DEEBFF

    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 with the 4 sections of Sprint 1 as sub-links

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

    ...

    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 (error)

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

    ...