Lab 1 - Requirements Gathering
General Info
- Homework must be completed in teams of three students. Teams are formed during this lab session. Each team must write a team name and names+emails of team members on the blackboard and in the email to the lab assistant. Use your team name as the subject in the email to the lab assistant.
- For homework submission, check the exact deadline date/time on your lab specific page (you find the link at the end of the Labs overview page). Homework should be submitted using the Bitbucket repository. Your team should fork the course project on Bitbucket and your project name should start with "Lab[number]-[team-name]". Last commits of the homework X to the repository should be done before the Homework X deadline (we check logs)! Here are different GUI clients, git can be easily used through eclipse as well.
Bitbucket Project
First, you should set up a Bitbucket project. Your Bitbucket project will contain all homework submissions for this course. Some of which are submitted as wiki entries (for example this homework) and others are submitted as code. We chose Bitbucket over Github as Bitbucket lets you create private repositories with a regular account. (Note that for a normal account up to 5 collaborating users are allowed. You can add your UT e-mail address to your account to increase the number of allowed users if needed.)
We have created a project containing the code you need during the next labs. You should fork this project. Forking basically means making a copy of the project for yourself. The difference between simply copying the code of a project and forking a project is that a fork will remain connected to the original project. This makes it easier for the lab assistants to follow your progress. Don't worry about the code that came with the fork, you don’t have to look at it before lab 3.
To fork the project:
- All team members must create a Bitbucket account, if they don't have one yet, and log in. TIP: Use your UT email account to get a free plan upgrade and get rid of team member limits per repository.
- One team member must go to course project and follow the next steps:
- Click on the "+" button on the left panel, and then on "Fork this repository".
- Choose a PROJECT name.
- Set the NAME of your repo using the following naming convention: "Lab[number]-[team-name]".
- Check the option "Private repository"
- Click "Fork repository"
- Now you have a new repository, you should configure its settings by clicking "Repository Settings"
- "User and group access": add the other team members and the account
se2017bitbucket@gmail.com
to give TAs access. - Under the section "Features", click "Wiki" and check the option "Private wiki" and then save the setting.
- "User and group access": add the other team members and the account
For this homework, you can either use JIRA ISSUES or the project wiki to post/submit your requirements.
- If you opt to use the project wiki: When your homework is done you should add a link to the corresponding wiki page to the readme page that is displayed in the project overview. The readme page is the text you can see on the project overview page. Creating a readme page creates a file named README.md. The readme should contain your team members names and links to submitted homework. This way your lab assistant can see that your homework is ready. The corresponding wiki page of a homework should not be altered after the homework submission (we will check logs!).
- If you opt to use JIRA ISSUES: When your homework is done you should add a link to the corresponding Jira project (*.atlassian.net) to the readme page that is displayed in the project overview. The following step will enable the integration of Bitbucket with Jira Cloud (Jira Issues):
- Enable the integration of Bitbucket with Jira Cloud. This will take several steps, but it will allow you to manage better the project.
- On the left side panel, click "Jira issues", then "Try Jira free". You will be redirected to Jira Software website.
- Create an account or login to continue. Set up the site for your account (the domain will be atlassian.net) and agree on the terms.
- Add other team members (including
se2017bitbucket@gmail.com
) and complete the set-up. When choosing a template, we recommend you to select KANBAN, which will be enough for this course. - Then, you will be asked to create an account on Jira Cloud. It's a good idea to be consistent with your repo name on bitbucket.
- Come back to Bitbucket, and then click Jira issues > Connect to Jira Cloud (Open settings). In the workspace settings, section "Integrations for Jira Cloud", connect your repo to the domain you have just created. Press "Connect", then "Grant access".
- Finally, go to "Jira issues" on Bitbucket, click "manually link Jira projects" > "manage linked Jira projects" > select your domain and project > "Link project". Then, you can just refresh the webpage and you will be able to use Jira + bitbucket.
Homework 1
Intro
Congratulations, you are employed as an analyst by "Joostes Marss AS" company. During the first day at work, you are informed that "Joostes Marss" got a new client who needs a new POS system. Your new boss is patting your shoulder and says that you are responsible for the project and become the lead analyst of the project.
Customer
Your customer is a BSC, a big supermarket chain. This company is mostly dealing with the management of supermarkets. Currently, the company has 22 stores in Estonia, Latvia, Lithuania and Poland. Your customer has ambitions to expand to 100 stores, and enter the markets of Finland, Sweden and Norway. Today, your customer is using a different POS software in their stores, which makes it expensive to maintain business processes across the company. The administration decided to replace their current POS software by a new software solution developed specifically for their needs.
Initial Requirements
The customer has already done some analysis on what the software should do. This means that some of your work has been already done by the customer. They know pretty well how the new software should look like. The initial document supplied by the customer contains images of the different views with some clarifying comments.
Your Task
After you finished reading the contract you realize to your surprise that although the images define pretty well how the software should look like, there is no list of requirements for the software to be developed, nor a defined workload or fixed deadlines. Thus, as a newly appointed analyst your task is to estimate/find out about these issues and to make an offer. In other words, clarifying the list of requirements and making an offer is your first homework. For this homework you need to:
- Find out user roles
- Find out the requirements regarding software functionality (functional requirements) and write them up as user stories
- Find out the requirements regarding software usability and performance (non-functional requirements)
To clarify the requirements you have to analyse the initial document given by the customer and prepare questions for anything that is unclear. You have the possibility to interview the customer for 5 minutes (here your lab assistant plays the role of the customer). The interview should be recorded and any requirements not based on the initial document have to be based on the interview.
Before doing the interview make sure that you have pinpointed what is unclear about the requirements! If you run into unclarities after the interview is done and you realised you forgot to clarify something you may ask the lab assistant, but this means you can miss out on points for the interview.
User stories are requirements of the form:
As a <<user role>>, I want to <<specific requirement>>, so that <<benefit>>.
Submission of the results
For evaluation you need to submit the following:
- Interview during assessment lab. NOTE: The main learning experience here is about being prepared, asking good questions and simulating the interview situation. All requirements have to be based on either the initial document or the interview. NOTE: You must present 20 functional requirements as user stories already in the consultation/assessment lab to get full marks. (3p)
- Functional requirements: Your team should find at least 20 functional requirements as user stories for the software to be created. The user stories must be in line with the interview protocols described above. (4p)
- Non-functional requirements: Your team should find at least 5 user stories related to usability and 5 user stories related to performance. At least one user story should request that all functions should be available through both user interfaces (CLI and GUI). (3p)
Note: Use the INVEST criteria to check the quality of your user stories (cf. lecture slides).
Tip: Look through the lecture slides again. They will contain useful information on these subjects that are often more precise than the provided links.
Your results should be published to your team project wiki on Bitbucket. When the homework is ready to submit, you should link the corresponding Jira project link (domain.atlassian.net) OR the homework wiki page in the project readme (which will then be displayed in project overview).