Professional Documents
Culture Documents
Reykjavik University
Computer Science
Table of Contents
1 Introduction 3
1.1 The companies 3
1.2 Facilities 3
1.3 Goals of the project 3
1.3.1 Final product 3
2 Organization 4
2.1 Methodology 4
2.2 Roles 4
2.3 Working hours 4
2.4 Meetings 5
2.5 Workload in other courses 5
2.6 Sprint planning 6
3 Technical Environment 8
3.1 Development environment 8
3.2 Project management 8
3.3 Coding rules 8
4 Requirement Analysis 9
4.1 User groups 9
4.2 User interviews 9
4.2.1 Interviewees 9
4.2.2 Interview results 10
4.2.2.1 Administrators 10
4.2.2.2 General employees 11
4.2 Product backlog 11
5 Design 15
5.1 System design 15
5.1.1 Network diagram 15
5.1.2 Navigation diagram 16
5.2 User interface 16
5.2.1 Prototypes 16
5.2.1.1 Attendance 17
5.2.1.2 Lunch order 17
5.2.1.3 Shop 18
5.2.1.4 Admin 18
6 Risk Analysis 21
6.1 Estimation 21
6.2 Risks 21
1
Tengir - Employee System
7 References 26
Appendix A 27
A.0 - Sprint 0 (20th - 27th Jan. 2019) 27
A.0.1 - Sprint backlog 27
A.0.2 - Burndown chart 27
A.0.3 - Sprint retrospective 28
A.1 - Sprint 1 (27th Jan. - 3rd Feb. 2019) 29
A.1.1 - Sprint backlog 29
A.1.2 - Burndown chart 29
A.1.3 - Sprint retrospective 30
A.2 - Sprint 2 (4th Feb. - 17th Feb. 2019) 31
A.2.1 - Sprint backlog 31
A.2.2 - Burndown chart 31
A.2.3 - Sprint retrospective 32
A.3 - Sprint 3 (18th Feb. - 3rd Mar. 2019) 33
A.3.1 - Sprint backlog 33
A.3.2 - Burndown chart 34
A.3.3 - Sprint retrospective 34
A.4 - Sprint 4 (4th Mar. - 18th Mar. 2019) 35
A.4.1 - Sprint backlog 35
A.4.2 - Burndown chart 36
A.4.3 - Sprint retrospective 36
2
Tengir - Employee System
1 Introduction
1.2 Facilities
Tengir provided a meeting room that the team can use as needed during opening hours. The
room is equipped with a whiteboard, a projector and each team member was provided with a
second monitor for their laptops. Team members also brought a pin board to pin up useful
information. There might be some cases where staff might need to have a short meeting and
the meeting room would be occupied, but it is very rare and the team can work around that.
The group has access to the company cafeteria, which includes a fridge, a coffee machine and
a small shop.
3
Tengir - Employee System
2 Organization
2.1 Methodology
The group decided early on to utilize the Scrum methodology for the project. It is an agile
approach used by a large number of companies in the technology industry which made it an
appealing choice. The group also has considerable experience of using Scrum since it has
been a big part of two courses taken by all group members. The work in Scrum is performed
in iterations or sprints which usually range from a week to a month in length (Rubin, 2013).
The sprint planning for this project is elaborated further in the next chapter on scheduling.
2.2 Roles
There are three main roles that have to be assigned in Scrum which are Product owner,
Scrum master and Development team. It was decided within the group that Eyrún would take
on the role of Scrum master but, through the first couple of weeks, Halldór took on more and
more responsibility and it was decided that Halldór would be the Scrum master from then on.
The Scrum master manages the Scrum process as well as assisting the team members in
keeping the backlog clear and concise. He is however, also a part of the development team
since the project is relatively small and with this being a school project. The company had
already decided on Gunnar Björn Þórhallsson, the company’s owner and CEO, would have
the role of Product owner and Viðar Einarson will also be a company contact.
4
Tengir - Employee System
2.4 Meetings
The group decided early on that it would be wise to schedule regular meetings with both the
instructor as well as the company contact. On Tuesdays at 9:00, the group will meet with its
instructor, Ólafur Pálmi and with the company contact, Viðar Einarsson, at 9:00 on
Wednesdays. On March 4th 2019, Viðar became a father and was absent for 2 weeks.
There will be daily Scrum meetings for the first ten minutes of each day where the
group will answer three questions: a) What did you work on yesterday? b) What will you work
on today? c) Is anything interfering with your progress? The group will also hold a
retrospective meeting in the end of each sprint, detailing what was a success and what should
be improved in the next sprint.
Figure 1: Workload in other courses during project timeline. Workload is measured by adding the percentage of the final
grade of each project due that week divided by the number of team members (e.g. a week where there are three different
projects due that each weighs 20% of the final grade, the workload that week would be 3 * 20 / 4 = 15). The last 2 weeks are
the weeks of the final exams.
5
Tengir - Employee System
0 20th Jan. - 27th Jan. 2019 (1 week) - Planning the overall project and the
teams organization along with
making the sprint backlog.
- Report on organization planning.
- Risk analysis.
- Requirement analysis.
- Set up Jira, GitHub and Google
Drive.
- Status report.
2 4th Feb. - 17th Feb. 2019 (2 weeks) - Set up different areas for the
appropriate project parts.
- Connect to Tengir’s database.
- Start programming main features.
- First status meeting and
presentation.
3 18th Feb. - 3rd Mar. 2019 (2 weeks) - Set up Identity Framework for
administrator log in.
- Work on employee clocking system.
4 4th Mar. - 17th Mar. 2019 (2 weeks) - Work on employee clocking system.
- Work on administrative tools for
clocking system.
- Start work on lunch system.
- Work on lunch system.
6
Tengir - Employee System
6 1st Apr. - 12th Apr. 2019 (2 weeks) - Start work on company shop.
- Work on company shop.
- Work on administrative tools for
shop.
7
Tengir - Employee System
3 Technical Environment
The following chapter goes over the development environment used to create the project as
well the project management of the team. Also, the project’s coding rules are clarified to
show the guidelines and principles that the team has chosen to emphasize software structural
quality.
8
Tengir - Employee System
4 Requirement Analysis
The requirement analysis is a critical part of the whole project. It should first and foremost
state what the system should do. The analysis includes a requirements list and prioritization
of each task in the list. It also goes over what user groups were identified and which user
group is associated with each requirement.
General GE
employees
Administrators AD
4.2.1 Interviewees
Interviews were conducted with four employees within the companies. Two of them
belonged to the user group of Administrators, where one of them was questioned about the
current clock-in system and other about the lunch system. The other two interviewees
9
Tengir - Employee System
belonged to the user group of General employees. Thus, an attempt was made at revealing
interesting opinions from all perspectives by interviewing at least two persons from each user
group.
4.2.2.1 Administrators
Employee A falls into the administrator user group and was generally satisfied with the
current attendance/shop system but did make a few interesting points:
● If an employee accidentally clocks out and then clocks back in, then only the first log
of attendance will appear on the overview.
● Employees often forget to clock out, but the system clocks people out automatically at
midnight if they do.
● Shop transactions are irreversible, as the admin can only move transactions between
employees, but can not remove a certain part of a transaction.
● A guest account for lunch orders might be useful, since there are often contractors or
other short-term employees working for the company.
Employee B was questioned on the current arrangement for lunch orders and was not
considered to be satisfied. It involves a lot of manual work because the current system is just
a piece of paper up on the wall where everyone marks their choice of food each day. This
information is then manually registered and an order is made, making the margin for error
larger than it needs to be. Employee B also made some interesting points during the
interview:
● Since there are a few employees that work in Reykjavík, it might be useful to have a
checkbox that allows users to opt out of the pop-up that asks users if they want to
order lunch.
● It would also be useful that employees can cancel their lunch registration before the
deadline of 10:00 AM, especially since employees that work out in the field.
● Employee B would want to manually disable or “close” the lunch order option for
each day or automatically when the deadline has passed.
10
Tengir - Employee System
● It would be convenient if employees could review and change their lunch orders.
● Lastly, as Employee B shows the team the food supplier’s website, it makes the team
wonder if their site could provide the system with a connection via an API.
11
Tengir - Employee System
Table 4: A list of all the functional requirements, the estimated story points of each requirement and the user group it
pertains to.
End of Sprint 1
End of Sprint 2
End of Sprint 3
12
Tengir - Employee System
End of Sprint 4
13
Tengir - Employee System
14
Tengir - Employee System
5 Design
There are various approaches to illustrate how the staff system will be implemented. The goal
is that the reader gains some insight into team’s ideas on how the final product will look and
perform in the hands of the user. Certain diagrams are used to clarify the structure of the
system, prototypes have been created to portray the look of the system, and user interviews
provide the team with important feedback from potential users of the system.
Figure 2: A network diagram showing how a computer outside of Tengir’s LAN will not be able to access the system.
15
Tengir - Employee System
Figure 3: The light balloons reference the system wireframe figures that are in chapter 5.2 User Interface below.
Under the administrator homepage the administrator has overview of all records
regarding the three main parts of the system, the attendance, lunch and shop. There the
administrator can create and edit all records. On the figure the Create/Edit records pages at
the bottom refer to different create and edit pages depending on where the flow is coming
from, the attendance, lunch or shop.
5.2.1 Prototypes
In the first stages of the design process, the group worked together on building prototypes for
the system. The meeting room was equipped with a whiteboard and the first sketches were
made there instead of using paper. Once everyone was relatively satisfied with the initial
design, one of the group members was assigned the task of making it digital. The tool used
for creating digital prototypes was Balsamiq, a convenient prototyping tool found online, but
most team members had some experience of using that tool. It also has the quality of being
16
Tengir - Employee System
web-based, so team members could work on the prototypes at the same time, but in their own
computers. The next few sub-chapters display the main prototypes for the three major
components of the project.
5.2.1.1 Attendance
The following sketch shows the initial screen that will be on the screen on a computer where
the staff clocks-in to work. The people that work in the office open up this window on their
personal computer to clock-in.
Figure 4: The main page where employees can clock in and out.
17
Tengir - Employee System
.
5.2.1.4 Admin
These following sketches are not available for the general employee. The admin has overview
of the whole system and all employees.
18
Tengir - Employee System
Figure 7: The administrator’s home page, showing today’s lunch orders and attendance on the left and right respectively.
This following sketch shows the admin page of the lunch orders. Overview of each staff
member that has ordered lunch today and the whole number of each dish for today’s order.
The admin can also look up past orders of each staff member.
Figure 8:A page where the administrator can inspect lunch order more closely.
This is the admin overview of the shop and what is currently being sold. The admin can
change each product, add a new product or delete a product that is sold in the company.
19
Tengir - Employee System
The following sketch shows what each employee has bought in the shop, with the date,
amount and total price for each purchase.
Figure 10: A page where the administrator can see all transaction made in the shop.
20
Tengir - Employee System
6 Risk Analysis
A risk analysis can often reveal important aspects of a project that otherwise would have been
ignored. It can reveal what could possibly go wrong in the total process and prepare group
members in dealing with the consequences. To identify, estimate and manage risks for this
project, a live spreadsheet was created in Google Sheets. In the initial risk analysis, the group
identified possible risk factors at the top of their head. Older final projects were also used for
inspiration. Once a factor had been identified, group members discussed possible precautions
and actions to take in case of occurrence. A team member was then made responsible for
each risk factor. After the first evaluation, the document was updated regularly and two re-
evaluations were scheduled before the 2nd and 3rd status meetings. If any actions were made
regarding risks, it was logged appropriately in the live document.
6.1 Estimation
When estimating the risk factors, one of the group members would read the factors out loud,
one by one. Each group member would then write down his estimate of both the probability
and impact of that factor on a scale of 1-5. The mean of each estimate was roughly calculated
and used in the analysis if everyone agreed. If not, group members would discuss the factor
further and come to a conclusion that satisfied everyone. To calculate the severity of each risk
factor, the probability and impact estimations were multiplied. Finally, the risk factors were
sorted by severity, where the most sever factor came first and so on.
6.2 Risks
Table 5 shows the risks identified by the team. It displays the risks in their corresponding
order, a short description and the total severity score. The full analysis will be available in the
final project appendix.
21
Tengir - Employee System
Table 5: Risk Analysis with the description, of each risk and the actions taken to prevent those risks. Below each risk is an
event log to record when team members ran into problems pertaining to that risk.
Risks
Precaution There is not really anything specific that can be done to prevent
such problems.
Event log:
#1: 5. February 2019. Some Visual Studio extensions seem not to be supported in MacOS.
MacOS group members switch to VS Code.
#2: 25. February 2019. Local DB problems with the MacBook computers. All group
members set up VM on Docker to host a local DB.
Event log:
#1: 4. March 2019. A decision was made to temporarily remove the 3-hour working
sessions on Mondays, due to increased workload in other courses. Some members still
work at home.
Precaution Let team members know about bugs discovered and solutions.
22
Tengir - Employee System
Event log:
#1: 5. March 2019. A “cancel” button redirected to a site that seemed to work, but was not
the correct one.
#2: 12. March 2019. Slim version of jQuery and the normal version of jQuery clashing.
The slim one has been omitted.
Event log:
#1: 12. February 2019. Some database problems and therefore the impact of this risk was
revised - changed from 1 to 2, updating the severity to a total of 8.
#2: 5. March 2019. One group member has quite some trouble with Docker.
Description Team members get ill and are not able to attend scheduled
working sessions.
Event log:
#1: Sprint 3: A total of three sick days.
#2: Sprint 4: A total of two sick days.
Event log:
#1: 15. March 2019. The group’s estimated time for the lunch menu is unfortunately
23
Tengir - Employee System
regarded as not being sufficient. A PDF viewer works but utilizing the lunch supplier’s own
website to automatically show the menu could be better.
Event log:
#1: 31. January 2019. A majority of the group participates in a scheduled school-trip.
#2: 15. March 2019. Halldór’s weekend trip to the UK.
#3: 23. March 2019. Haraldur’s weekend trip to Húsavík.
#4: 25. April 2019. Darri’s weekend trip to Denmark.
Event log:
#1: 13. March 2019. Some browser problems. Works perfectly in Google Chrome and in
Firefox on a Mac, but not properly in Firefox on a Windows computer. Works properly in
Safari on one Mac, but not the other. Browser testing continues.
24
Tengir - Employee System
Action Start over. Include other members if they have worked on code.
Event log:
#1: 12. March 2019. A branch was merged to our main development branch which resulted
in conflicting JavaScript files and our development branch therefore overwritten. Thus, we
worked together in backtracking the main development branch to a working instance before
adding to it again.
25
Tengir - Employee System
7 References
Kniberg, H. (2015). Scrum and XP From the Trenches: How we do Scrum (2nd ed.).
C4Media.
Rubin, Kenneth. S. (2013). Essential Scrum: A Practical Guide to the Most Popular Agile
Process. Boston: Addison-Wesley.
26
Tengir - Employee System
Appendix A
In this appendix there are detailed descriptions of the team’s progress throughout the project.
For each sprint there is a brief description, a sprint backlog, a burndown chart and a sprint
retrospective summary.
27
Tengir - Employee System
28
Tengir - Employee System
29
Tengir - Employee System
30
Tengir - Employee System
31
Tengir - Employee System
32
Tengir - Employee System
33
Tengir - Employee System
34
Tengir - Employee System
35
Tengir - Employee System
36