Project management - To-do list and Task Scheduler - Project Report cs-23-SW-2-17 Aalborg University Institut for Datalogi Copyright © Aalborg University 2022 The text of To-do list and Task Scheduler is written in Overleaf, a free online LaTeX editor. Institut for Datalogi Aalborg University http://www.aau.dk Title: Project managemt Theme: A Larger Program Developed by a Group Project Period: Spring Semester 2023 Project Group: cs-23-sw-2-17 Participant(s): Daniel Rantzau Bech Tobias Bjerregaard Jónas Elís Gunnarsson Andreas Mertz Simon Melgaard Skelkjær Hans Jacob Zachariassen Supervisor(s): Olivier Pelgrin Copies: 1 Page Numbers: 101 Date of Completion: May 25, 2023 Abstract: This report will investigate how a project management tool can assist university students in managing group projects. The aim of the project is to develop a web-based solution that ensures accountability and time management for student group projects. MoSCoW Requirements for the solution were developed through analysis of optimal team operations, student experiences with current project management solutions and existing software solutions. Through the utilisation of these requirements the design and implementation of the software solution was created. Hereupon, the solution was presented to external testers for testing, and feedback was received. Overall the software solution managed to fulfill the requirements resulting in it being successful. The content of this report is freely available, but publication (with reference) may only be pursued due to agreement with the author. Contents Preface 1 1 Introduction 3 2 Initialising problem statement 5 3 Problem analysis 3.1 Team collaboration . . . . . . . . . . . . . . . . . . . . . 3.1.1 High performance teams . . . . . . . . . . . . . 3.1.2 Low performance teams . . . . . . . . . . . . . . 3.1.3 Summary of Team collaboration . . . . . . . . . 3.2 Interviews . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Analysis of interview . . . . . . . . . . . . . . . 3.2.2 Bias . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Summary of interview . . . . . . . . . . . . . . . 3.3 Analysis of existing project management tools . . . . . 3.3.1 Analysis method . . . . . . . . . . . . . . . . . . 3.3.2 Example of analysis method . . . . . . . . . . . 3.3.3 Functionality matrix . . . . . . . . . . . . . . . . 3.3.4 Summary of existing project management tools 3.4 Conclusion of problem analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 8 8 9 10 10 12 12 13 13 14 16 17 17 4 Problem definition 19 5 Requirements 5.1 MoSCoW Prioritisation Model . . . . . . . . . . . . . . . . . . . . . . 5.2 MoSCoW Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Summary of requirements . . . . . . . . . . . . . . . . . . . . . . . . . 21 22 23 29 6 Design 6.1 Visual presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Website sketches . . . . . . . . . . . . . . . . . . . . . . . . . . 31 31 32 vii viii Contents 6.2 6.3 7 Data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implementation 7.1 Frameworks / Libraries 7.1.1 Server design . . 7.1.2 Routes . . . . . . 7.1.3 Databases . . . . 7.2 Website functionalities . 7.2.1 Kanban Board . . 7.2.2 GANTT . . . . . 7.3 Unit testing . . . . . . . 7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 39 39 40 43 44 44 47 48 51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 53 55 56 58 Discussion 9.1 Fulfillment of requirements . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1 Fulfillment of problem definition . . . . . . . . . . . . . . . . . 9.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 60 63 63 8 Testing 8.1 User stories . . . . . . 8.1.1 External testing 8.1.2 Feedback . . . . 8.1.3 Conclusion . . 9 37 38 . . . . 10 Conclusion 65 11 Future works 67 Bibliography 69 12 Appendix 12.1 Analysis of existing solutions 12.1.1 Jira . . . . . . . . . . . 12.1.2 Todoist . . . . . . . . . 12.2 Interview . . . . . . . . . . . . 12.2.1 Interview Questions . 12.2.2 Elisa Interview . . . . 12.2.3 Jesse Interview . . . . 12.2.4 Rasmus Interview . . 12.3 Other . . . . . . . . . . . . . . 12.4 Testing . . . . . . . . . . . . . 12.4.1 External tester 1 . . . . 71 71 71 79 82 82 83 87 91 94 95 95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Contents 12.4.2 External tester 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.3 External tester 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 99 1 Contents Preface This report has been written by 2nd-semester Aalborg University software students. We would like to thank our supervisor for his guidance throughout the project. Aalborg University, May 25, 2023 Daniel Rantzau Bech Tobias Bjerregaard <VR75RC@student.aau.dk> <tbjerr22@student.aau.dk> Jónas Elís Gunnarsson Andreas Mertz <jegu22@student.aau.dk> <SG82DA@student.aau.dk> Simon Melgaard Skelkjær Hans Jacob Zachariassen <XS68MJ@student.aau.dk> <FS23DG@student.aau.dk> Chapter 1 Introduction This report investigates how to assist university students with project management through a software solution. As managing group projects can be challenging for students, as they are an essential part of University that enables students to develop skills such as teamwork, communication, and problem-solving. However, managing group projects can be challenging for students, especially when it comes to coordinating tasks, keeping track of deadlines, and ensuring that everyone is on the same page. Project management tools can assist student groups with important aspects of project management. By helping the students work more effectively while attempting to counteract counterproductive group traits. The problem to be addressed is designing and implementing an effective project management tool to help students during university group projects. The requirements for the proposed software solution will be created by analysing how teams operate optimally. In addition, by interviewing students and how their experience with current project management solutions, uncovers which specific functionalities are expected by students. The base requirements can be created, by analysing the existing software solutions and combining this information with the aforementioned information. The solution to the problem can be found in the form of a website, through Github. 3 Chapter 2 Initialising problem statement Figure 2.1: HW-Diagram During the initial writing process of the report, the goal is to figure out the direction to address the issues concerning project management, using an HW-diagram [10], as seen in figure 2.1. Leading towards the main focal point: What essential project management tools are necessary for optimal workflow during student group projects? With the additional follow-up questions: • What project management issues do students encounter during group projects? • Which project management software applications do students currently utilise and what tools do they wish existed? • What existing project management software applications exist and what functionalities do they include? 5 Chapter 3 Problem analysis This chapter aims to determine the functionalities that students require from project management software. Through investigating what attributes define high- and lowperformance teams in university students, to discover which areas the discrepancies between the two forms of teams exist. In addition, students from Aalborg- and Aarhus University will be interviewed, in order to understand which tools and methods can assist students and allow them to be a high-performance team. Providing insights into which functionalities students require from project management software in order to succeed. Furthermore, Jira, nTask and Todoist existing project management solutions and their functionalities to assist users will be analysed. Thus, determining which functionalities are currently available within existing project management tools and what functionalities they still require, to improve team performance. A problem statement will be created based on these findings, to figure out how to assist students with project management through a web application. 7 8 3.1 Chapter 3. Problem analysis Team collaboration The objective of this section is to analyse the characteristics of high-performance and low-performance teams in student group projects. Uncovering which strategies are prevalent in assisting students learning outcomes during group projects. This is an imperative part of discovery, as without knowing what steps high-performance teams take to ensure a good outcome. Implementing a project management tool without considering collaborative efforts may hinder teamwork. Similarly, it is important to know which common pitfalls low-performance teams fall into, and to which areas improvements need to occur to raise a team from low- to highperformance. 3.1.1 High performance teams Interpersonal interactions, including effective communication and clear expectations, play a significant role in high-performance teams. High-performance teams demonstrate a shared understanding of expectations among all team members and the overall project [1]. Intra-team project communication skills are paramount for any collaborative effort. The use of tools for communicative work overlaps with the regulation of work. Effective communication within the team is crucial for successful collaboration. High-performing teams rely on a high level of self- and team regulation, which in turn rely on communication strategies and tools [1]. Co-regulation is also an aspect of team interaction that high-performance teams utilise. This is in line with the expectations that each member treats another as a supporting actor, rather than merely a fellow learner. A form of engagement through the regulation of others. The outcome of this form of communication strategy is the co-construction of knowledge and is a vital piece of what makes a team high-performing [1]. 3.1.2 Low performance teams Low-performance teams were found to show less engagement in projects, as well as not setting sufficient goals for themselves. Teams lacking adequate planning and coordination were found to make low-quality work and participate less in group work than the high-functioning teams. Participants being part of a low-performance team was shown to be associated with reduced learning outcomes [1]. The success of a team is heavily dependent on interpersonal relationships and collaboration between team members. A recent study by Dinu 2016 [6] found that 3.1. Team collaboration 9 low-performance teams tended to have poorer communication and collaboration in contrast to high-performance teams. Ineffective communication was shown to lead to misunderstandings, delays, and conflicts, which can ultimately jeopardize the project. Communication and collaboration are therefore crucial, in order to achieve optimal results. Thus, showcasing software can play an important role when helping teams improve on pitfall areas like task management and collaboration, which are key factors in achieving a high-performance team. Implementing software tools can help facilitate an online work environment while establishing clear communication and goals. Active engagement and interpersonal relationships are difficult to address with software. Project management tools can still help improve team dynamics through the provided work environment, with the use of the correct functionalities, making teams more productive. Ultimately achieving increased productivity and quality of work. 3.1.3 Summary of Team collaboration In summary, high-performance teams have well-defined expectations and requirements for each member, which are effectively enforced and regulated. Communication strategies and tools play a vital role in facilitating clear communication and providing an overview of the project. In contrast, Low-performance teams suffer from a lack of planning and coordination, leading to ineffective communication and collaboration. Addressing these issues requires both improved planning and increased engagement, which are areas of weakness within low-performance teams. 10 3.2 Chapter 3. Problem analysis Interviews The interview questions were partly created, based on the information gathered in section 3.1 and can be seen in appendix 12.2.1. In addition, to gain insight into which collaboration and management tools the students use, the interview also seeks to figure out group dynamics and success factors. Thereby, understanding how and why students use these tools and methods, alongside which issues they have with these. Thus, allowing one to understand how students can be high-performing teams through communication, responsibility and group expectations. 3.2.1 Analysis of interview The interview is a qualitative method which resulted in a small sample size of three interviewees consisting of students from Aalborg University and Aarhus University. All are students who are actively doing group projects in their studies. One of the participants has finished their bachelor’s degree while the two others are in their 2nd and 6th semester. Tools Used A common link between each of the participants is the tools they use for collaborative efforts. Trello is used for its overview of tasks and deadlines. - Google Drive for its file-sharing capabilities and basic office-work package. - Facebook Messenger, Microsoft Teams, Zoom, and Discord are all messaging or meeting applications for group communications. - And Overleaf is used for its highly customisable word processing layout. None of the tools used by the interviewees is used in singularity, as they all serve different functions depending on the individual project needs and are often used in collaboration. These tools are not without their flaws when seen through the specific lens of student project management, however. Trello for instance, while being a powerful tool for an easy overview, is confusing at the outset. When discussing Trello, Jesse said in appendix 12.2.3:"people have a hard time getting introduced to new platforms, so they have to look really simple to use" Meaning its use needs to be learned by each individual group member to be fully utilized. This can be a hindrance to the adoption of tools and other software solutions and needs to be weightily considered during the later design phase. A similar consideration must be done for the creation and maintenance of task overviews, in a way to aid in co-regulation. 3.2. Interviews 11 The rest of the existing solutions mentioned are also missing the same functionalities, as they are also not meant for project management. Their inclusion herein is not in vain, as their collaborative use gives insight into the participants’ wants for increased communication. Something strongly desired by every participant was for tasks to be overlaid on a timetable, either by automatically exporting to their own calendar or an internal date registrar. In the words of Elisa as seen in the appendix 12.2.2: "a calendar, to-do list with a GANTT chart" This sort of functionality goes hand in hand with the ability to assign tasks to individuals, as well as teams. Overlaying tasks to be done over time also requires the ability to set start and end dates for each part of the project that needs to be done. This happens to also be the definition of a GANTT chart [9]. Furthermore, the inclusion of logbook capabilities, to ensure accountability and for future reflection, was asked if it was a functionality desired by the interviewees. All the participants answered in the affirmative, with at least one participant actively using the concept successfully. Group Problems An important aspect to consider when conducting these interviews is the participants’ experience with group projects. More so which factors they conclude lead to successful group projects and what sort of negative experiences they have had. A reoccurring theme between the participants is that communication is of high importance when trying to achieve success within group projects. Many online platforms allow users to easily communicate with one another, however actively communicating between group members is down to the individuals. One of the respondents, Elisa, mentioned having issues with an individual from a previous project. In the case of this individual, Elisa said in appendix 12.2.2: “The person would just completely ignore our messages”. Jesse, another one of the participants, also made mention of issues regarding communication in appendix 12.2.3: “Every time there was a problem, communication is the foundational problem behind it”. Whilst communication issues are mainly down to the individuals responsible, according to the interviewees’ certain tools could be made available to help hold people accountable for their responsibilities. Something that a project management tool would certainly aid with, is time management which is a common issue among the participants. Two out of the three participants mentioned struggling with deadlines and time management. Rasmus mentioned in appendix 12.2.4: "I think previously we’ve been a bit loose on deadlines so it would be advantageous to have them easily accessible". In this situation having a project management tool with a GANTT 12 Chapter 3. Problem analysis chart could aid in managing and reaching deadlines. 3.2.2 Bias Due to the small sample size and the selected group of interviewees, consisting of students with group project experience, it should be noted there is a sampling bias to be considered [13]. However, the main target group for this project are all among the small sampling size. Therefore, as the purpose is to find a solution for this specific target group, this bias does not have significant negative implications for its credibility. Furthermore, another bias that occurred in the interview process is commonly referred to as convergence bias [13]. This bias exists as all of the participants are engaged with group projects, which corresponds to the investigation of project management within student groups. Therefore, the biases present do not invalidate the credibility of this survey. In addition, the questions have been formed in order to answer specific inquiries regarding project management, resulting in an answerability bias [15], however, this bias is acceptable for the research on project management, as specific questions support the research regarding project management. 3.2.3 Summary of interview Following the interviews, it has become apparent that communication and time management are key elements for successful group projects. Therefore, considering an introduction of a project management tool, with a focus to guide students to be high-performance teams, would specifically be leaning towards a task scheduler and to-do list. These functionalities currently do exist, however, the students experienced a slight barrier to entry while learning how to utilise these. In addition, the interviews showcased a logbook would be a great use in terms of reflection. The implications of the limitations of the tools will be a focus during the requirements and design phase of the proposed software solution. 3.3. Analysis of existing project management tools 3.3 13 Analysis of existing project management tools In this section, an analysis will be done on the free versions of three existing project management software solutions: Jira [2], Todoist [11] and nTask [19]. These three will be analysed, to figure out whether they possess specific functionalities commonly requested in the previous sections. Making it possible to create a functionality matrix, an analysis tool used to compare functionalities across platforms. Thereby, showcasing the dissimilarities between the requested and existing functionalities on the different software solutions. Thereby, granting insight into the differences in the existing functionalities between them and the core components of a project management tool. 3.3.1 Analysis method Based on the conclusions of the previous section 3.1 team collaboration, there are clear characteristic differences between high and low-performance teams. A project management solution should help its users with the difficulties they experience during group projects, and utilise functionalities that can encourage its users to become parts of a high-performance team. The interviews provide critical insights into the problems that students at Aalborg, and Aarhus University, experience during group work. The interviews from section 3.2 further promote the importance of communication and time management. According to the interviewees, a task scheduler with assignments and a to-do list are essential functionalities found within a project management tool, however, the interviewees expressed some concern about the currently available tools and wished that they were more intuitive, alongside a logbook for reflection. The analysis of the existing solution will focus on functionalities, which were found to be important in section 3.1 regarding Team collaboration, alongside the feedback from the interviewees in regards to the interviews from section 3.2. The functionalities have been put into the following table 3.1, which have been ranked in a top-down hierarchy in terms of importance. 14 Chapter 3. Problem analysis Explanation of analysed functionalities Assignments Users have the ability to delegate work between project members. Time Schedule Gives a mutable overview of tasks overlaying a calendar, with expressed start and end dates. Kanban Board [4] An overview of the different tasks which need working on, in an ordered mutable grid view. Task Details The ability to show additional information regarding assignments. Logbook A logbook is a record-keeping book used to document and track progress and events. Backlog [5] A list of tasks that should have been done or needing to be finished. Project Settings The ability to adjust project settings such as project name and members. Projects Overview Pertains to the overview of several different projects at once. Push Notifications Users receive push notifications regarding task assignments nearing deadlines. Table 3.1: Explanation of functionalities 3.3.2 Example of analysis method Jira, nTask and Todoist functionalities were all analysed in the same manner. It should be noted, that the analysis was done using free accounts, meaning any features behind paywalls have not been examined. The interviewees in section 3.2 have expressed comprehension difficulties utilising the existing solutions. This is an element of design, therefore, this aspect will not be the focus of the analysis. Only the existence of the functionalities has been analysed. 3.3. Analysis of existing project management tools 15 Figure 3.1: Todoist - Assignment Todoist’s assignments were analysed, in order to, illustrate how all of the functionalities were analysed. Tasks can be viewed individually giving the user more options, as seen in figure 3.1. Assignments allow the user to assign themselves or other users to a specific task. Thereby, allowing the entire team to see who is currently assigned to which task. This procedure for analysing the functionalities of the existing solution has been done systematically in the same way. The remaining analysis of the functionalities of the solutions can be found in the appendix 12. 16 3.3.3 Chapter 3. Problem analysis Functionality matrix Jira Todoist nTask Assignments ✓ ✓ ✓ Time schedule ✓ ✓ ✓ Kanban Board ✓ ✓ ✓ Task details ✓ ✓ ✓ Logbook × Backlog ✓ × × Project settings ✓ × × × Projects overview ✓ ✓ ✓ Push notifications ✓ × × ✓ Table 3.2: Functionality Matrix The result of the analysis can be seen in table 3.2, the functionality matrix showcases an analysis of different functionalities available on three project management websites: nTask, Todoist, and Jira. The checkmark (✓) and cross (×) symbolise whether the given solution contains the given functionality. The functionalities that were analysed include assignments, time schedules, Kanban board, backlog, task details, logbook, project settings, push notifications, and a project overview. These functionalities can be seen as core elements in helping teams organise and plan their projects, according to the previous two sections. The board and time schedule functionalities, are crucial for task- and time-management as shown in section 3.2. These functionalities provide users with a visual overview of their tasks, whilst keeping track of the team’s progress towards their goals. Thus, allowing teams to enforce high-performance team attributes shown in section 3.1. Some of the analysed functionalities were found to be unique for certain of the analysed websites. For example, Jira is the only website to have a backlog functionality and display tasks sorted based on their priority. Logbook was found to be the only functionality not found on any of the analysed solutions. Based on the conclusions found in section 3.2, the logbook functionality was found to be a relevant tool in order for post-process reflection, documentation, and accountability. 3.4. Conclusion of problem analysis 3.3.4 17 Summary of existing project management tools The existing project management tools, Jira, Todoist and nTask were analysed using a functionality matrix as seen in table 3.2. With a focus on the functionalities which were found to be important in the previous sections 3.1, and 3.2. The research gives insights into the differences in existing functionalities between the three tools and the core components of a project management tool. Assignments, time schedules, kanban board, task details, and project overview were all found to be present in the existing solutions. However, no existing solution provided the functionality of a logbook. Initial comprehension difficulties, as expressed in prior sections, are part of the design, and look of the project solution, and have therefore not been analysed here. 3.4 Conclusion of problem analysis In conclusion, effective communication, planning, and coordination are crucial for high-performance teams, while low-performance teams lack these elements. The introduction of a project management tool can guide students towards becoming high-performance teams, with a focus on task scheduling and to-do lists. The research analysed existing project management tools and found that while many functionalities are present, none offer a logbook feature. The limitations of the existing tools will be considered during the requirements and design phase of the proposed software solution. Overall, the use of a well-designed project management tool can enhance team collaboration and time management, leading to more successful group projects. Chapter 4 Problem definition Group projects enable University students to develop skills such as teamwork, communication, and problem-solving. However, managing group projects can be challenging for students, especially when it comes to coordinating tasks, keeping track of deadlines, and ensuring that everyone is on the same page as seen in section 3.2 and 3.1.1. The analysis also ascertained that current project management solutions have some pitfall areas, in which they do not suffice the needs of the interviewed students in section 3.2. A potential solution to this problem is the use of a project management tool that can help students collaborate effectively and manage their projects efficiently as seen in section 3.3. A tool could provide features such as task assignments, deadline tracking, progress monitoring, and communication channels to keep team members informed and on track. Therefore, the problem to be addressed is how to design and implement an effective project management tool that can help students during university group projects. A successful project would consist of a significant portion of these requirements, thus, while maintaining a user-friendly experience leading to the problem statement: How can a web-based project management tool be created, in order to ensure accountability, and time management for student group projects? 19 Chapter 5 Requirements This chapter will specify the requirements of a project management website solution. The requirements have been based on the information gathered in the problem analysis in chapter 3 and the problem definition in chapter 4. The requirements serve as a guideline in the implementation of the program. By using the MoSCoW requirements prioritisation model, it ensures that functionalities are developed in order of importance to the final application. These requirements will later be tested to determine the success of the final application. 21 22 5.1 Chapter 5. Requirements MoSCoW Prioritisation Model The Moscow requirements, also known as the MoSCoW method [20], is a prioritisation model used in project management, to help determine the importance of different project features or requirements. The findings shown in chapter 4 will be utilised to create specific requirements, to determine whether the proposed solution is successful [20]. The term MoSCoW stems from the acronym of Must-have, Should-have, Could-have, and Will-not-have, and is summarised in the following table. MoSCoW prioritisation model Must-have: These requirements can be classified as features being mandatory for the product, in order, to be evaluated as complete. Should-have: These requirements can be classified as an overall improvement for the product. Hence, they have a lower prioritisation but are desired if possible. Could-have: These requirements can be classified as potential bonus features for the product, as the impact does not influence the general quality. Will-not-have: These features can be classified as potential future features, due to not fitting into the scope due to time constraints. Table 5.1: MoSCoW prioritisation model [20] 23 5.2. MoSCoW Requirements 5.2 MoSCoW Requirements M Must-have requirements M1 Kanban Board M2 Time Schedule M3 Task details M4 Logbook M5 Navigation between functionalities S Should-have requirements S1 Backlog S2 Synchronous collaboration S3 Synchronisation from Kanban Board to GANTT & Backlog C Could-have requirements C1 GANTT Calendar Export C2 Login W Will-not-have requirements W1 User accounts W2 Chat communication W3 Push notifications Table 5.2: MoSCoW requirements The following MoSCoW requirements have been made based upon the information gathered in chapter 3 and 4. These requirements are largely based upon section 3.2 whilst factoring in the research on high- and low-performance teams and the analysis on existing project management tools. Table 5.2 showcases the MoSCoW requirements which have been formed to create a clear outline for the expected functionalities for a successful project management website. The core components of the website application, are shown within the must-have requirements. The potential functionalities for overall improvements can be seen in the should-have requirements. Potential bonus features are showcased in the could-have requirements. Potential future functionalities can be seen in the will-not-have requirements. 24 M1 Chapter 5. Requirements Kanban Board M1.1 The website shall allow users to create new tasks containing the task name, assignee, start-date, end-date, status, and priority which are then added to the Kanban Board, while also being able to delete tasks. M1.2 The website shall allow users to assign assignees to tasks on the Kanban Board. M1.3 The website shall allow users to manipulate the status of each task to either "To-do", "Doing", or "Done", and display the status on its corresponding card on the Kanban Board. M1.4 The website shall allow users to interact with the Kanban Board to modify task information and deadlines. M1.5 The website shall allow users to use a drag-and-drop functionality to modify task statuses. M2 Time Schedule M2.1 The website shall represent the status of each task containing the status to-do or doing on a GANTT chart viewable by users. M2.2 The website shall provide a calendar overview, which displays all tasks with the status of to-do, doing, and their deadlines, and are sorted according to their start-date, within the selected month. M3 Task Details M3.1 The website shall allow users to view task attributes such as description, priority, and deadlines. M3.2 The website shall allow the user to be able to edit task details. M4 Logbook M4.1 The website shall allow users to create a new logbook entry. M4.2 The website shall allow the user to document progress through headers and descriptions with a status. M4.3 The website shall showcase the specific timestamp of the creation of a logbook entry. M4.4 The website shall allow users to view, edit, and delete logbook entries. M5 M5.1 Navigation of application The website shall provide the user with the ability to navigate between functionalities. For example, the user is able to go from Kanban Board to Logbook. Table 5.3: Must-haves requirements 5.2. MoSCoW Requirements 25 The must-have functionalities for the website can be seen in table 5.3 and are the most critical functionalities that were found for project management websites, listed in a hierarchical order of importance found in table 3.2, with the addition of navigation of the application. In addition, sub-requirements have been utilised to ensure correct implementation. Allowing them to be testable for future testing with no confusion about whether they have been fulfilled. M1 Kanban Board was created to fulfil the requirements for a visual representation of tasks, deadlines, and priorities. The users would be able to create and manipulate these tasks depending on their project, thus, helping them to organise their project and assist their productivity while providing accountability between team members. M2 Time Schedule fulfils the requirements of a visualisation of the tasks through a calendar, giving users a clear overview of their timeline for their project. The calendar should be represented as a GANTT chart and must include a visual representation of task assignees, deadlines, and tasks’ current status in a sorted manner. M3 Task Details should provide a detailed overview of each task found on the Kanban Board. It should contain the task-name in addition to the attached attributes of the task, including the following attributes of assignee, status, and task description. M4 Logbook enables users to document their activities and progress through the creation and editing of logbooks. Thereby, allowing users to document overall progress. The logbooks would be sorted accordingly to the creation date, thus, providing a clear overview and documentation of the progress made by each team member throughout the entire project. M5 Navigation of the application should ensure clear and accessible navigation options for the user to move in between the critical functionalities found on the website. 26 Chapter 5. Requirements S1 S1.1 S2 S2.1 S3 S3.1 Backlog The website should showcase the tasks and specific task details such as assignee, priority, status, start- and end-date from the Kanban Board, which are then sorted according to firstly the end-date and then priority. Synchronous collaboration The website should provide a real-time update of the Kanban Board, GANTT, Backlog, and Logbook for all users. Synchronisation from Kanban Board to GANTT & Backlog The GANTT should be automatically generated based on the tasks and their associated deadlines from the Kanban Board. Table 5.4: Should-have requirements The should-have functionalities for the website can be seen in table 5.4, and are desirable functionalities to be found in the project management website. Whilst these functionalities are not critical in comparison to the must-haves they still greatly improve the functionality and experience of the program, and should be included in the final iteration of the website if possible. S1 Backlog should enable the user to view a sorted version of all the tasks found on the Kanban Board, on the basis of the most urgent deadlines and priorities. Thus, visualising the current most critical tasks, which should assist team members to comprehend which tasks they should focus on. S2 Synchronous collaboration fulfils the requirement of a collaborative working environment with real-time updates for all connected users and should enable team members to work concurrently on the website. S3 Tasks created on the Kanban Board should automatically be shown on the Backlog and the GANTT chart to give the users options on how to visualise their tasks. 5.2. MoSCoW Requirements C1 C1.1 C2 C2.1 27 Calendar Export The website could allow users to export tasks to a CSV file. Login The website could allow users to log in to the website using a shared password Table 5.5: Could-have requirements The could-have requirements are non-essential features or functionalities found on the website, that could improve the user experience, but are less important than must- and should-have requirements. C1 Calendar export is in the could-have category because it would not benefit the user experience on the website directly, but could potentially be a valuable functionality for some users. C2 Login is considered a could-have requirement, as for a project on this scale, the collaborative aspects can be handled without having specific accounts to differentiate the users. Therefore, a master login could be implemented to provide security on the website, so only those who have the master login are able to make changes. 28 W1 Chapter 5. Requirements User accounts W1.1 The website will not require users to create an account or log in to use its features. W1.2 The website will not provide user-specific settings or personalisation features. W2 Chat communication W2.1 The website will not provide a chat or messaging feature for users to communicate with each other. W2.2 The website will not integrate with any external communication platforms. W2.3 The website will not provide any notification or alert features for chat or messaging. W3 Push notifications W3.1 The website will not provide push notifications to users’ devices. W3.2 The website will not provide any email or other types of notifications. Table 5.6: Will-not-have requirements The will-not-have requirements are the features that will not be included in the final iteration of the website but could be taken into account as potential future features. This is due to being out of the scope of the project due to the short time frame. W1 User accounts are in the will-not-have category, due to the time scope for the final implementation of the website, as a full-scale user accounts implementation would require large time and resource investments. Furthermore, the website is primarily intended for small-sized project management in terms of students, hence, it would only focus on one project at a time. Therefore, there is no high importance to implement specific accounts to differentiate the users through settings or personalisation features, as they would still be able to work concurrently on the website. W2 Chat communication will not be a functionality included in the final product as our section 3.2 showcased that students already utilise other software solutions in order to communicate with each other, moreover the addition of a chat would introduce additional functionalities for users to learn. The interviewees expressed concerns about the overwhelming amount of functionalities found in other project 5.3. Summary of requirements 29 management solutions. W3 Push notifications were a requested feature in the conducted interviews. Implementing push notifications in the absence of user accounts would be counterintuitive as there exist no user accounts for specified settings and personalisation features, where one would normally find the push notifications option. Thereby, potentially adding confusion to the users on how to utilise the feature. 5.3 Summary of requirements In conclusion, the MoSCoW prioritisation model has been utilised to set up requirements for the intended project management solution. The importance of the functionalities were constructed on the basis of the functionality matrix seen in table 3.2, with additional important functionalities. The requirements have been placed in the Must, Should, Could, and Will-not-have requirements to ensure that functionalities are developed in terms of their importance to the final product and can be seen in table 5.2. Kanban Board, Time Schedule, Task Details, Logbook, and Navigation of application are all functionalities that must be fulfilled to ensure the website is successful for project management as seen in table 5.3. Chapter 6 Design The chapter delves into the implementation of the project management solution by exploring the overall design of the website. The specific requirements set in chapter 5 form the basis of this exploration, with the aim of creating a design template that will guide future implementation. As part of this process, the psychological concept of nudging, which can be used to subtly influence user behaviour and enhance their experience with the website, is also considered. Furthermore, sketches will be developed to showcase the expected design for the most essential functionalities of the solution. In addition, the expected data objects will be explored, to assist the the coming implementation. 6.1 Visual presentation Visual cues provide direct feedback to the users, so they understand the importance of each task. For instance, certain design elements can influence user behaviour through nudging [23]. Digital nudging involves guiding user behaviour, achieved by using specific colours to indicate the importance level of each task [23]. To highlight the urgency of each task, a status is assigned based on its progress, accompanied by a corresponding colour. This design decision was made in order to guide the users’ attention toward, meaningful and urgent tasks while providing visual cues for the user. 31 32 Chapter 6. Design Figure 6.1: To do, Doing, Done and Overdue As seen in figure 6.1, "To-do" should have a blue colour to suggest calmness and responsibility, in the sense the user’s attention is not yet required, but will be at a later point in the project [14]. In addition, "Doing" should possess an orange colour to embrace its progress in movement [14]. Thereby, suggesting the user should pay attention to this task. "Done" should have a green colour as it possesses calming attributes [14], and as the task is completed this will provide a corresponding visual cue to the user. Lastly, "Over-due" should have a red colour to indicate the importance to complete the task as soon as possible, and also to showcase a danger for the project, if this task isn’t completed [14]. The tasks should be sorted into four groups, To-do, Doing, Done, and Over-due. With these groupings, the Kanban Board would be able to provide a visual representation of the tasks’ importance through their statuses. In addition, the time schedule should likewise possess these attributes, when displaying the tasks through a GANTT diagram. The tasks’ importance should be sorted through their status from the start date. 6.1.1 Website sketches Sketches were created to visually represent the design and functionality of key features on the main pages of the project management application. These sketches depict the desired appearance and serve as a guide for the future implementation of the website, aligning with the requirements outlined in Chapter 5. 33 6.1. Visual presentation Figure 6.2: KanbanBoardSketch As seen in figure 6.2, a sketch has been drawn to illustrate how the Kanban Board is expected to look. Included in the sketch is a navigation bar the user can utilise, which would be identical across all the functionalities. The Kanban Board should utilise the colour theory explained previously in section 6.1. The functionality is expected to have the four different statuses in their own containers, alongside the list of tasks corresponding to the status. If a task exceeds the planned end date, then as seen in the sketch it would be automatically moved to the "Overdue" block. In addition, a task drag ability across containers is desired, where it would change their status, to whichever container it has been dropped in. The "add new task" button enables users to create additional tasks. 34 Chapter 6. Design Figure 6.3: GANTT Sketch The expected design of the GANTT chart is illustrated through the sketch in figure 6.3. The chart is expected only to showcase non-finished tasks. This means that all tasks which do not have the status of ’done’ will be displayed. In addition, all these tasks will be displayed in order of their start and end date, alongside their colour-coded status specified previously in section 6.1. This provides the users with a graphical overview of the tasks which are still to be completed. Furthermore, in the case a user hovers over one of the tasks, tooltips should display the task name, description, and status. When the user first navigates to GANTT, the current date will always be in the middle of the GANTT chart, as seen by the line in the sketch. Lastly, the user is expected to be able to navigate the displayed tasks of the GANTT chart, with the "previous" and "next-month" buttons. In the case the user presses the "previous-month" button, they will navigate 1 month back in the GANTT chart, in contrast, the "next-month" button should navigate 1 month forward in the GANTT chart. Hereupon it should be noted the current date line will not follow, as it is no longer within the date range. 35 6.1. Visual presentation Figure 6.4: Logbook Sketch As seen in figure 6.4, a sketch has been created in order to illustrate how the Logbook page is expected to look. It is expected a container should be shown to the left, which showcases all currently created logbooks. When a user clicks on one of the logbooks, it would open another container displaying the logbook information. In addition, they would be able to add new additional headers and paragraphs. Furthermore, each header has a checkbox which can be checked, if all the tasks which are talked about in the paragraph have been completed. 36 Chapter 6. Design Figure 6.5: Backlog Sketch Figure 6.5 illustrates the expected Backlog design. As seen in the figure, tasks which are not finished should be displayed in a table-like manner. The table will contain important task attributes, as shown in the sketch, these include: "Task Name", "Description", "Status" and "Due date". The tasks displayed in the backlog will be sorted after the deadline and priority. This means the tasks will be sorted by the urgency in terms of the deadline. Giving the users a clear overview of which task to handle first, to avoid tasks becoming overdue. Lastly, each row representing a task should be coloured coded accordingly to their current status, as defined in section 6.1, to further emphasise the urgency of each task. 37 6.2. Data objects 6.2 Data objects Figure 6.6: Expected essential data objects During the initial design phase of a web application, it is crucial to consider the expected data objects that need to be stored. The structure helps define the individual attributes required for each object and can have an impact on the compatibility of frameworks and libraries used for the application’s implementation phases. Figure 6.6 represents the expected object structures for this project. The "Assignee" and "Tasks" objects are expected to follow a structured data format, with the "Tasks" object containing a nested "TaskAttributes" object as seen in the figure. In contrast, the "Logbooks" object is expected to have a semi-structured data format. To further explain, the "Logbook" object is expected to initially consist of an id and date when a logbook entry is created, where after a varying amount of "headers", "paragraphs" and "checkboxes" can be added for each logbook entry as previously explained in section 6.1.1. Structured data follows a defined schema or model, while semi-structured data has some level of organization but not to the extent of a structured database. Clearly defining the data objects provides valuable insights for the implementation phase of the program. Having predefined data objects will help ensure that a compatible database will be chosen which will help avoid potential complications later on. 38 6.3 Chapter 6. Design Summary of design Chapter 6 discusses the implementation of the project management solution by exploring the overall design of the website, based on the requirements set in Chapter 5. The concept of nudging has also been considered, and specific colours are used to indicate the importance of each task and guide user attention. Sketches of the Kanban Board, GANTT, Logbook, and Backlog pages are included as a guideline for future implementation. The Kanban Board is expected to display the four different statuses, while the GANTT chart will display non-finished tasks. Furthermore, the logbook page should include a container for currently existing logbooks, including the ability to add new headers and paragraphs. The Backlog page will showcase ongoing tasks sorted by urgency. Finally, the expected data objects have been outlined. Overall, these design decisions are intended to enhance user experience and provide visual cues for prioritising tasks. Thus, providing a template for the implementation of the base application. Chapter 7 Implementation This chapter explains the technical implementation of the project management website. An overall representation of the server design will be showcased, alongside how routes have been utilised to handle endpoints and responses. The choice of database and its utilisation will be defined. In addition, listings will be utilised to illustrate and explain interesting parts of the code sections, including challenges that were encountered during the implementation. Furthermore, unit testing will be implemented prior to the commencement of the external testing phase. 7.1 7.1.1 Frameworks / Libraries Server design In order to meet the S2 should-have requirement, which required a synchronous collaborative experience for the users, a constant connection between the server and user is required. The book JavaScript: The Definitive Guide by David Flanagan, has been used to investigate possible ways to make it achievable [7]. It was found to ensure a collaborative experience for the user, either server-sent events (SSE) or WebSockets were essential to be implemented in the application. SSEs would allow the server to establish a unidirectional HTTP connection between the server and client, ensuring up-to-date information is being displayed for all users. Meanwhile, WebSockets would allow bi-directional persistent connection between the client and server which in turn uses a larger amount of resources [7]. Thus, allowing the user and server to continuously send and receive information, without the need for multiple repeated requests from the user. SSEs were chosen for this solution because it provides a persistent server-to-client communication stream, allowing for real-time updates. Moreover, WebSockets consume additional resources in comparison to SSEs and are often implemented 39 40 Chapter 7. Implementation when large amounts of data frequently need to be pushed in both directions. 7.1.2 Routes Routing refers to the process of handling client requests and directing clients to appropriate endpoints on web applications. In other words, routing determines how to application responds to client activity, on a web application. Express is a commonly used Node.js framework, which is used for building web applications and contains tools and middleware that simplify the process of handling HTTP requests and responses [8]. In the context of the website application being developed, Express was chosen as the framework of choice for handling server-side logic, over the standard node HTTP library. 1 2 3 4 5 6 7 8 9 10 11 12 const const const const taskRoutes = require('./routes/serverTasks'); logbookRoutes = require('./routes/serverLogbook'); assigneeRoutes = require('./routes/serverAssignee'); app = express(); app.use(cors()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use('/Tasks', taskRoutes); app.use('/Logbook', logbookRoutes); app.use('/Assignee', assigneeRoutes); app.use(express.static(path.join(__dirname, 'scripts'))); app.use(express.static(path.join(__dirname, 'styles'))); Listing 1: routes.js In the code snippet listing 1, Express was used to create route modules/middleware for specifically related functionalities. The routes are set up using the ’app’ object provided by Express, which allows for an imperative approach to defining routes on the server side. The main routes can be seen in lines 8-10 in listing 1, imported from their respective files. By utilising express middleware, the implementation could be broken down into smaller modules/files that can be linked through routes, which improves the maintainability and scalability of the project. Using this modular approach, where each route has its own file made the development process more organized. Splitting the server up into individual routes meant that multiple functionalities could be developed simultaneously, making co-development easier since it prevented potential issues from merging code, which can be complicated if projects are large. 41 7.1. Frameworks / Libraries Lines 11-12 in listing 1 showcases Express’ build in middleware functionality that lets static files be served with HTML files. This feature enables the server to respond with an HTML document with its related CSS and JavaScript dependencies. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 router.post('/SendTask', (req, res) => { console.log("Got POST submitTask request", req.body); const data = req.body; taskDataBase.insert(data, (err, newTask) => { if (err) { res.status(500).send({ error: err }); } else { res.status(200).json({ TaskName: newTask.TaskName, }); } }); }) Listing 2: Post endpoint. The code snippet that can be seen in listing 2 showcases an example of a server endpoint. The code snippet is of the /Tasks/SendTask endpoint in the /Tasks route. The route is used for users of the application to submit tasks to the database. The endpoints receive an HTTP request from the client, with the necessary attributes of a task and are then stored in the taskDataBase as seen in line 4. A full overview of the server endpoints and their functionality can be seen in the table on the following page. 42 Chapter 7. Implementation Method Endpoint Description GET /board Serves the static files for Board (HTML, JS, CSS). GET /gantt Serves the static files for GANTT. GET /backlog Serves the static files for Backlog. GET /logbook Serves the static files for Logbook. GET /Tasks/events Establish server-sent event stream for real-time Kanban Board updates. GET /Logbooks/events Sends the logbook entries list to the logbook page. GET /Logbooks/GetLogbookEntry Sends the logbook entry data given the logbook entry ID. GET /Assignee/events Establishes a server-sent event stream for real-time updates of assignees to relevant pages. PATCH /Tasks/UpdateStatus Updates the status of a task with a given ID on drag and drop. PATCH /Tasks/Edit Edits the attributes of a task with a given ID. PATCH /Logbook/SaveLogbookEntry Edits the attributes of a logbook with a given ID. POST /Tasks/SendTask Adds a new task and task attributes to the task database. POST /Logbook/SendLogbook Adds a new logbook with the date creation to the logbook database. POST /Logbook/UpdatePost Adds headers and descriptions to the selected logbook ID. POST /Assignee/SendAssignee Adds a new assignee to the assignee database. DELETE /Tasks/Delete Deletes a task with a given ID from the task database. DELETE /Logbook/Delete Deletes a logbook with a given ID from the logbook database. DELETE /Assignee/Delete Deletes an assignee with a given ID from the logbook database. Table 7.1: Server endpoints 7.1. Frameworks / Libraries 43 The full list of the application endpoints website can be seen in table 7.1. As previously mentioned the server endpoints are used for the user to be able to interact and receive information from the server. In short, the GET request is used to serve the client with the appropriate HTML documents and their associated styling sheets and script files. In addition, the GET /events should be used to establish a continuously open connection from the server to the client, via server-sent events. Meanwhile, the other three methods would take the data input from the client, whereupon the server handles the data depending on whether it should be posting new data, editing/patching existing data, or deleting existing data on the specified database. The client-side would send the data to the server through a text input or button input. 7.1.3 Databases Databases are organised collections of data, that are used to store, retrieve or otherwise manipulate data. Databases are used as a central storage unit for their users. This means that users receive/manipulate data from the server database, in order to utilise web applications. Databases play an essential role in most applications as they provide the ability to store and retrieve user data, thus, making it possible to maintain synchronized experiences between different users. When clients are accessing web applications at the same time, a database is used to store and update the application’s data in real time, allowing all users to see the same up-to-date information simultaneously. This application will utilise databases, in order to store data. For example, when a user creates a new task or edits an existing task, the database stores this information, the server then registers that the database has been updated and immediately sends the updated data to all clients who are currently using the website. If the database were not used, each user would see non-identical information, which could lead to potential confusion and inconsistencies in the application’s data. Therefore, a database is an essential component of a web application, particularly when multiple users are involved. NoSQL and SQL databases were both considered when choosing what type of database to implement. NoSQL databases are known to be flexible and scaleable, they are suitable for applications that handle large amounts of unstructured or semi-structured data [17]. Meanwhile, SQL databases are known for their ability to ensure predefined schemas, ensuring data consistency and are suitable for applications that use complex relationships between data entities and require strong data consistency [17]. Since some of the data structures were expected to be varying as discussed in section 6.2, a NoSQL solution was chosen. 44 Chapter 7. Implementation NeDB [3], a sub API of MongoDB [16], has been chosen as the database solution. One of the advantages of Nedb is its lightweight NoSQL API, which is written in JavaScript [3]. Additionally, Nedb can store data directly on the server, eliminating the need for an unnecessary link between the client and the data. NeDB is a document-oriented database that stores data in JSON format. JSON (JavaScript Object Notation) is a widely used data interchange format that is humanreadable, lightweight, and supported by JavaScript. This makes it easy to store, retrieve, and manipulate data in NeDB, as the data is stored in a familiar and flexible JSON format. Although NeDB is no longer maintained, the current version should still be able to sufficiently achieve the results for what the application requires [3]. However, in case it is not sufficient, MongoDB itself would be another alternative which could be utilised. 7.2 7.2.1 Website functionalities Kanban Board Figure 7.1: Kanban Board The Kanban board is implemented using JavaScript and HTML, and provides a visual representation of tasks organized into the different lists "To-do", "Doing", "Overdue", and "Done" as seen in figure 7.1. The tasks are colour-coded based on 45 7.2. Website functionalities section 6.1, in order to aid the user, differentiate between task statuses and their importance. Moreover, each list is dynamically updated such that the most urgent tasks are displayed at the top of their respective list. The board is interactive and allows users to drag and drop tasks between lists to update their status. Additionally, the board page also houses the form that creates new tasks. In order to fulfil the requirements of synchronous collaboration seen in table 5.4, newly created tasks also send a request to the server using the previously seen HTTP POST in listing 2 and adds the new task to the database. When the server has successfully added or otherwise manipulated data in the task database, the server sends the updated data to all clients currently using the website, thus resulting in the Kanban board being updated in real time using Server-Sent Events (SSE). 1 2 3 4 5 6 7 8 9 10 11 source.addEventListener("message", function getTasks(event) { const tasks = JSON.parse(event.data); tasks.sort((a, b) => { if (a.TaskAttributes.Priority === b.TaskAttributes.Priority) { // If priority is same, sort by end date return new Date(a.TaskAttributes.EndDate) - new ,→ Date(b.TaskAttributes.EndDate); } else { // Sort by priority return priorityValues[b.TaskAttributes.Priority] ,→ priorityValues[a.TaskAttributes.Priority]; } }); Listing 3: Task Sorting The implementation of the client side can be seen in listing 3. The EventSource object is used to listen for message events from the server, and the received data is parsed as JSON. The tasks are then sorted based on their priority and end date before rendering them on the board. A similar implementation of sorting JSON objects from the database is utilised across multiple functionalities on the web application. 46 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Chapter 7. Implementation function makeDraggable(){ const draggableElements = document.querySelectorAll('[draggable=true]'); const containers = document.querySelectorAll("#TaskList") draggableElements.forEach((element) => { element.addEventListener("dragstart", () => { element.classList.add("dragging") }) element.addEventListener("dragend", () => { element.classList.remove("dragging") }) }) containers.forEach((container) => { container.addEventListener("dragover", (event) => { }) Listing 4: Kanban Board makeDraggable() The Kanban board is designed to be highly interactive and user-friendly, allowing team members to easily rearrange and manipulate tasks using drag-and-drop functionality. The drag-and-drop feature is implemented using the draggable attribute in addition to JavaScript event listeners. The makeDraggable() function is responsible for attaching the necessary event listeners for the drag-and-drop functionality. When a task is dragged, its class is updated to reflect that it is being dragged. When the task is dropped onto a different list, its status is updated and the task is re-rendered in the correct list. Additionally, the updated task data is also sent to the server using a PATCH request to update the task’s status. 47 7.2. Website functionalities 7.2.2 GANTT Figure 7.2: GANTT Chart.js is a commonly used JavaScript library for making interactive and customizable charts and graphs with JavaScript. Chart.js provides a configurable way to display data in various chart types such as line charts and bar charts. Chart.js provides extensive documentation and examples, that have been utilized in the implementation of the task visualization requirements 5.3. Chart.js offers a wide range of chart types to choose from, making it versatile for different use cases. Chart.js with the bar chart configuration has been utilised to give users an overview of tasks with a GANTT diagram as seen in figure 7.2. Chart.js provides many options, allowing for customization of the appearance and the behaviour of charts. Chart.js also supports responsive design, allowing charts to be dynamically updated. 48 1 2 3 4 5 function updateChart(sortedTasks, barColorsTask, borderColorsTask) { const chart = Chart.getChart("myChart"); console.log(chart) chart.config.options.scales.x.min = minCurrentDate chart.config.options.scales.x.max = maxCurrentDate 6 7 8 9 10 11 Chapter 7. Implementation } chart.data.datasets[0].data = sortedTasks; chart.data.datasets[0].backgroundColor = barColorsTask; chart.data.datasets[0].borderColor = borderColorsTask; chart.clear(); chart.update(); Listing 5: GANTT update chart The implementation of updateChart can be seen in listing 5, tasks are firstly sorted in the same manner as in the Kanban board. Additionally, the colors for the task are set for each task, based on their respective status. The previously displayed data is then removed and the chart is updated. However, utilising the library Chart.js to simulate a version of a GANTT chart which worked interactively with the Kanban Board proved challenging. The solution found can be seen in listing 5 on lines 9-10, where the chart is cleared completely and then updated using the data it receives in line 1. The main issues stemmed from when new tasks were being added to the chart and were not being displayed correctly in relation to the previous tasks. Therefore, to ensure all tasks were displayed correctly, this function forced the chart to be redrawn when updates were required. This solved the issue of the chart not updating correctly and displaying the correct tasks when added from the Kanban Board. 7.3 Unit testing Unit testing is where one tests the smallest testable units in a software application. A unit can be a function, a method, a class, or a module [22]. Unit testing is done to improve the quality, maintainability, and reliability of software applications, by ensuring that individual functions work as intended [22]. The testing framework chosen to be used in this project is Jest. The reasoning behind the choice of Jest is that it is a JavaScript testing framework which should be simple to use, and is well-documented [12]. Furthermore, the Jest framework allows for Mock testing. Mock testing allows the developer to imitate data and objects, which is used to isolate the unit test from external dependencies [12]. 49 7.3. Unit testing However, one of the main complications of the implementation of unit testing, was that unit testing was implemented after the base application already had been completed. This meant the unit testing was created after it was concluded the application itself was working through manual testing. This results in difficulties due to having many nested functions, which would be unsuitable for testing. Furthermore, due to the remaining time frame for the project, it was decided against refactoring the code to allow for easier testing. One example of issues arising when trying to test functions using Jest, was that event listeners were called even though they were not a part of the function itself. Therefore, the event listeners were mocked to circumvent this issue as seen in listing 6, even though it was not being used in the function itself. In addition, as the application was confirmed to be working, the focus was only on testing the main functions utilised in the code, to create sufficient code coverage. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 const { sortTasks } = require('../../scripts/board'); global.EventSource = jest.fn(); const mockEventSource = { addEventListener: jest.fn(), }; global.EventSource.mockImplementation(() => mockEventSource); describe("sortTasks function", () => { it("should sort tasks by end date and priority const tasks = [ { TaskAttributes: { EndDate: "2023-04-18", { TaskAttributes: { EndDate: "2023-04-16", { TaskAttributes: { EndDate: "2023-04-17", ]; const expectedTasks = [ { TaskAttributes: { EndDate: "2023-04-16", { TaskAttributes: { EndDate: "2023-04-17", { TaskAttributes: { EndDate: "2023-04-18", ]; correctly", () => { Priority: "high" } }, Priority: "medium" } }, Priority: "low" } }, Priority: "medium" } }, Priority: "low" } }, Priority: "high" } }, const sortedTasks = sortTasks(tasks); expect(sortedTasks).toEqual(expectedTasks); }); }); Listing 6: Board sorting test In this test, listing 6, the getTasks() function is tested to verify that it correctly sorts the given tasks. Three out-of-order mocking tasks are created that contain an end date and a priority. The test file imports the function you want to test and you test it 50 Chapter 7. Implementation by using the expect() function. The expect() function takes the function you want to test as a parameter and gives you a whole suite of ’matches’ that allow you to test the output of the tested function. In this example, the toEqual() matches is used and it expects that the sortedTasks are equal to the expectedTasks. If the sortedTasks are indeed equal to the expectedTasks the test will pass. Figure 7.3: Code Coverage As seen in figure 7.3, it showcases the code coverage of the application. As aforementioned it was only the most important functions which have been tested. The justification for not testing everything in the code is that white box testing has been utilised to manually test the application before the unit testing was implemented. The main way the application has been tested is that the functionalities were manually tested throughout the implementation to ensure correctness. Thereby, allowing one to understand if the code was working as intended, and would be sufficient for external testing. Furthermore, the overall structure of the application was not created with the expectation of unit testing, which complicated the process of testing compared to a more component-based application. In addition, this meant that all event listeners and event sources have been manually tested. Furthermore, there were issues with importing the global variables for testing, and it was decided against changing the global variables directly into the functions they utilised. It was attempted to figure out how to properly test it, however, due to the time constraint it was decided the manual testing done prior was sufficient, as the code coverage covered 47.64% lines of the code as seen in figure 7.3. 7.4. Conclusion 7.4 51 Conclusion Throughout this chapter, it was discovered that Server-Sent Events needed to be implemented in order to achieve a synchronous collaborative experience for all users. Moreover, in order to make the server-side implementation easier, the framework Express was chosen, for its ability to easily set up routes. Furthermore, table 7.1 gives a detailed overview of the available endpoints. NeDB a NoSQL database library was chosen to be implemented as the data structures were expected to vary. In addition to allowing for local server storage, and eliminating an additional link between the client and the data, it also makes the data handling easier by storing it in JSON format. Lastly, unit testing was done using the framework Jest, which was utilised to test selected important units of the application where 47.64% of the code lines have been tested. Thereby, ensuring the application is ready for external testing. Chapter 8 Testing The following chapter will be dedicated to user story testing in the context of the project management tool introduced by this report. This chapter will briefly describe what user stories are and will delve lightly into the importance of user stories and how they will be utilized in this project. This chapter will also study the results of the following tests to consider the overall success of the application. 8.1 User stories User stories are a core programming component as they help provide a user-focused framework for daily work. Implementing user stories drives user-oriented testing and introduces an overall better end product. A user story is a small unit of work in an agile framework. A user story is not a feature but rather an end goal that has been expressed from the software user’s perspective. The purpose of a user story is to express how a part of the work will provide a particular response in return. More specifically user stories are a few simple sentences that outline a desired outcome [21]. The reasoning behind the inclusion of user stories is to determine if the introduced software application can be seen as a success or not. User stories also include the key benefit of being able to acquire additional feedback from the testers. The feedback and subsequent changes that could follow, will however not be implemented but could be something looked upon in the future. This section will present a series of tests which has been created based upon the previously defined MoSCoW Requirements from chapter 5 and the completion of said tests are crucial in determining whether this software application can be seen as a success or not. The success of the application is reliant on whether or not the problem definition from chapter 4 has been answered. 53 54 Chapter 8. Testing User stories Req Test 1 On the Kanban Board, you want to create five unique new tasks. M1 Test 2 On the Kanban Board, you want to delete one of the tasks. M1 Test 3 On the Kanban Board, you want to change the assignee, status, and deadline using the edit button. M1 Test 4 On the Kanban Board, you want to click on one of the tasks and drag them to another status. M1 Test 5 On the GANTT you want to make sure that tasks from the Kanban board, with the statuses: "To-do", "Doing" and "Overdue" are displayed on the GANTT diagram. M2 | S3 Test 6 On the GANTT page you want to check if the tasks are sorted correctly after their start date. M2 Test 7 On the Kanban Board you want to read the task details of two different tasks. M3 Test 8 On the Kanban Board you want to edit the description of a task. M3 Test 9 On the Logbook page, you want to create two new logbook entries. M4 Test 10 On the Logbook page, you want to delete a logbook entry. M4 Test 11 On the Logbook page, you want to open a logbook entry create and then delete a header and paragraph. M4 Test 12 On the Logbook page you want to edit a header and paragraph save the information. M4 Test 13 On the Backlog page you to make sure that tasks from the Kanban board, with the statuses: "To-do", "Doing" and "Overdue" are displayed sorted by end date. M5 |S1 Test Table 8.1: User stories for Must-Have requirements As seen in table 8.1, 13 user stories have been created in order to test the project management website. These tests have been modified accordingly to ensure all the must-have requirements from table 5.3 will be tested. Test 1 ensures the first half of M1.1 is being fulfilled while test 2, would test the second half the M1.1. This is done to accurately figure out whether the must-have requirement was successful. The same method has been utilised through the creation of all the user story tests. They 8.1. User stories 55 have been created hierarchically alongside the must-have requirements. This means user story test 3, would now correspond to the M1.2, as the previous two tested M1.1. Some of the should-have requirements, as seen in table 5.4, have been added to the tests, as seen in test 5. Test 5 is mainly corresponding to M2.1 regarding the GANTT chart, however, the test is created so it also tests the S3.1, as it makes the user compare the Kanban Board to the GANTT chart. Thus, if this user story test is successful, then both of the requirements can be marked as a success. This is also seen with test 13, which specifies the utilisation of the navigation bar towards the backlog page, which means that the tester has been on every page of the website, thus, fulfilling M5.1 regarding navigation. In addition, test 13 itself is regarding the backlog which would fulfil S1.1. 8.1.1 External testing To ensure the project management website is a success, external testers have been asked to test the website accordingly to the created user story tests. A total of three test participants between the age of 22-24 years old in varying stages of their university studies were chosen. The way the tests were conducted, was the external testers received one user story test at a time in chronological order from table 8.1, whereupon no further input was given. This means, the external tester opens the application for the first time, and immediately receives test 1 in written form to complete. Hereafter, the external tester will move on to test 2 and so forth. In addition, the think-aloud method was utilised in order for the external testers to express their thought process throughout the testing of the user stories [18]. Hereafter it was then noted down whether or not they managed to successfully complete the user story, alongside useful remarks they provided throughout the testing. 56 Chapter 8. Testing Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 Test 10 Test 11 Test 12 Test 13 Tester 1 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ Tester 2 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ Tester 3 ✓ ✓ ✓ ✓ ✓ ✓ × ✓ ✓ ✓ × ✓ ✓ Requirement M1 M1 M1 M1 M2 | S3 M2 M3 M3 M4 M4 M4 M4 M5 | S1 Table 8.2: Results of user story tests As seen in table 8.2, all the user stories were successfully completed by the external testers, except for two, and the thought processes of the external users while testing can be found in the appendix 12.4. As previously mentioned the test results define whether the program can be defined as successful or unsuccessful. The results of the conducted user story tests imply that the application can be defined as a success, as the external testers managed to successfully complete the must-have requirements previously specified in table 5.3 from chapter 5. The two testing cases which failed did so on a technicality, and not for lack of ability. The tests that failed did so due to miss clicks from the tester and upon repeating the tests, the tester managed to complete them . Additionally, the feedback obtained from these tests helps identify pitfall areas of the application, according to the external testers. 8.1.2 Feedback Functionality Feedback All three external testers encountered issues while testing the functionalities of the application. Mads had trouble with the "Create task" function in Test 1, where he mistakenly clicked on the wrong button and had to repeat the process several times. He also found that the "drag and drop" function did not work under the "Overdue" status list in Test 4, without realising that this was an intended design decision... Additionally, in Test 5, Mads discovered that tasks with the same name, assignee, and start/end date were not differentiated on the GANTT chart, which made it difficult to distinguish between them. 8.1. User stories 57 Lucas experienced issues with the application when using Firefox in the beginning, but the issues were resolved when he switched to using Chrome. He encountered some confusion with the "add assignee" function and wanted to manually input the dates but found it difficult to do so. Jesse encountered some issues with the application during the tests. In Test 2, Jesse suggested that the "Edit" and "Delete" functions could be flipped in order to evade unintentional task deletions. In Test 3, Jesse attempted to change the status of a task to "overdue" without changing the deadline, which was not possible, as the overdue list is designed to contain tasks, which have not been completed before their deadline. In Test 4, Jesse was unable to drag a task into the "overdue" list as the end date had not passed, which Jesse found frustrating, and wished that the overdue list wasn’t hard-coded, such that users could utilise the application however they wanted. Jesse also encountered a browser-specific error in Test 5 when a task was double-clicked, which highlighted the word "Logbook" in the navigation bar, which in turn blocked the ability to change the displayed month. In Test 7, Jesse clicked on the "Edit" button and found it difficult to exit without either clicking on "Save changes" or hitting the "ESC" button. Overall, all three external testers found that the majority of the functions worked as expected, but there were some issues that could be improved upon to enhance the user experience. Visual Impressions / Layout Mads and Lucas commented on the overall layout and design of the application. Mads found that the pages were designed in a simple and intuitive manner that provided a good project and task overview. Lucas thought that the design was clean and minimalist but felt that the application could benefit from more visual cues to guide the user, especially when it comes to differentiating between different tasks. Jesse did not provide any specific feedback on the color scheme or the typography used in the application but did however experience some difficulties utilising the application’s functionalities, which potentially could have been improved with stronger visual cues as Lucas expressed. General Feedback As for general feedback, Mads, Lucas, and Jesse all provided valuable feedback on the application. In general, the external testers found the application to be relatively intuitive to navigate, the testers were found to be able to understand and utilise the implemented functionalities. However, all the testers encountered some issues during their tests. The application was found to be lacking in terms of sufficiently 58 Chapter 8. Testing guiding the user through the application and its features. Especially the Overdue list caused confusion among all test subjects, which could have been circumvented with supplementary visual cues providing additional guidance to the user, on their first experience using the application. It should be noted, the general feedback and results from these tests will form the basis of the discussion and future work chapters. 8.1.3 Conclusion The external testers passed nearly all the user story tests successfully, as seen in table 8.2, which means the project management website can be called near successful. The overall feedback was the website was designed in a simple and relatively intuitive manner, however, the external testers wished for more information to be displayed for first-time users. Chapter 9 Discussion This chapter will investigate the fulfilment of all the MoSCoW requirements created in chapter 5, and compare them to the test results from chapter 8. Thereby, granting insights into whether or not specific MoSCoW requirements have been fulfilled. In addition, the understanding of potential improvements to the application based on the feedback will be discussed. Furthermore, a discussion of what extent the problem definition created in chapter 4 has been successfully fulfilled or not, will be done throughout the chapter. Thus, determining if the problem statement has been successfully answered. 59 60 9.1 Chapter 9. Discussion Fulfillment of requirements The following tables illustrate whether the requirement has been deemed fulfilled or not, with a ✓ for success, and a × for non-success. Whether or not the requirements have been successfully fulfilled has been based on the results of chapter 8. ✓/× M Must-have requirements M1 Kanban Board ✓ M2 Time Schedule ✓ M3 Task details ✓ M4 Logbook ✓ M5 Navigation between functionalities ✓ Table 9.1: Fulfillment of MoSCoW Must-have requirements The fulfilment of the Must-have requirements, which include the Kanban Board, Time Schedule, Task Details, Logbook, and Navigation functionalities, were deemed essential for the project management solution to be a success. These requirements are considered essential because they form the core functionalities of the project management website, providing the basic functionality necessary for managing tasks between teams, time scheduling, and project planning resulting in a greater overview. Overall the testing results of the must-have requirements were successful. Showcasing the required functionalities for a successful application was found to be correctly implemented and working. However, the application was found to have some pitfall areas, which complicated the user experience for first-time users. The only requirement that was not universally successful was Tests 7 and 11 which were both failed by the same external tester 8.1.1. Hence, the application was found to be slightly insufficient in terms of guiding first-time users successfully through the application. Therefore, additional guiding functionalities would have improved the overall user experience and caused less confusion for the end user. Overall the testing of the Must have requirements was deemed successful which indicates that the solution meets the basis of the intended objectives from the problem definition in chapter 4. 61 9.1. Fulfillment of requirements ✓/× S Should-have requirements S1 Backlog ✓ S2 Synchronous collaboration ✓ S3 Synchronisation from Kanban Board to GANTT & Backlog ✓ Table 9.2: Fulfillment of MoSCoW Should-have requirements The fulfilment of the Should-have requirements, which include the Backlog, Synchronous collaboration, and Synchronisation from Kanban Board to GANTT & Backlog, was not deemed essential for the project management solution to be a success. However, would improve the overall application significantly if they were implemented. These features would improve the efficiency of the project management process by enabling teams to work together in real-time, alongside seamless synchronisation between the functionalities. In addition, the backlog enables the end users an additional way to view their tasks in an organised table, giving a clear overview of ongoing tasks which are sorted after their urgency. Backlog was successfully implemented, and this provides the end-user with a clear structured deadline tracking which helps ensure teams identify and focus on the most important unfinished tasks at hand. Allowing teams to understand which tasks to focus on, and which members are accountable for potentially exceeded deadlines, and progress of the project. Furthermore, to help the end-users to collaborate effectively, synchronous collaboration enables multiple users to simultaneously use the application, with real-time updates for all users. In addition, the synchronisation of tasks extends from related functionalities as seen in S3. Overall the testing of the Should have requirements were deemed successful which indicates that the solution has improved beyond the fundamental requirements of the application, specified in the must-have requirements. Thereby, further incorporating features beyond the fundamental requirements found in the problem definition in chapter 4. 62 Chapter 9. Discussion C Could-have requirements ✓/× C1 GANTT Calendar Export × C2 Login × Table 9.3: Fulfillment of MoSCoW Could-have requirements The fulfilment of the Could-have requirements, which include the GANTT calendar export, and Login, was not deemed essential for the project management solution to be a success. However, would be desirable if it was possible to implement them. These features would allow users to easily export the GANTT on the website to their own desired calendar. Meanwhile, login would add security to the website, ensuring only team members with the login can make changes to the application. However, due to the time frame of the project, these features have not been implemented in the final version of the application. Hence, these features would be in consideration for future works regarding the application ✓/× W Will-not-have requirements W1 User accounts × W2 Chat communication × W3 Push notifications × Table 9.4: Fulfillment of MoSCoW Will not have requirements Finally, the Will-not-have requirements, which include User accounts, Chat communication, and Push notifications functionalities, were intentionally excluded from the project scope. These features were considered non-essential to the project management system’s core functionality and were, therefore, not included in the project’s development. The user accounts would have allowed the end-users to create their own individual accounts, instead of having to utilise the assignee option which was implemented instead. However, with the implemented features of functionalities, the option of being able to specify the assignee manually was deemed sufficient for this project. In addition, user accounts would have allowed for more user-specific features to be implemented in the future. Furthermore, the chat communication was not deemed essential, as the main focus was to make a simple project management tool, and therefore, the focus was on the aforementioned must-have requirements. The push notification feature would allow end-users to receive updates and reminders, how- 9.2. Conclusion 63 ever, the feature of a backlog was deemed to handle this sufficiently in terms of the clear overview it provides. Therefore, these features would be in consideration for future works regarding the application. Overall the application has been deemed a success. However, the application could have benefited from better planning before the commencement of implementation. Better planning would have allowed the presented application to avoid having numerous nested functions, which resulted in difficulties in testing and would prove potential challenges in the case of scalability. 9.1.1 Fulfillment of problem definition In chapter 4 using the problem definition which was based on the problem analysis in chapter 3, the following problem statement was created: How can a web-based project management tool be created, in order to ensure accountability, and time management for student group projects? As seen in table 9.1, all the must-have requirements have been successfully fulfilled, therefore, the application can be classified as a success. Additionally, all of the should-have requirements seen in table 9.2 have also been deemed successful and improved upon the base program with additional functionality that is non-essential for the end product. The could-have requirements were not deemed successful, as they were not implemented in the end product due to the scope and time frame of the project. The same reasoning can be found for the will-not-have requirements, which were intentionally left out from the start, but would still improve upon the overall functionality of the application. It should be noted the application fulfils all the must-haves and therefore can be classified as having successfully answered the problem statement. In addition, all the should-have requirements being fulfilled resulted in an overall improvement to the end product. 9.2 Conclusion In conclusion, this chapter discussed the successful fulfilment of the problem definition created in chapter 4 by comparing the MoSCoW requirements made in chapter 5 to the test results from chapter 8. The fulfilment of must- and should-have requirements have all been successfully fulfilled as seen in table 9.1 and 9.2 respectively. Meanwhile, none of the "could" or "will-not" have been fulfilled successfully. The fulfilment of the should-have requirements has resulted in an overall better end 64 Chapter 9. Discussion product. Overall the must-have requirements have been successfully fulfilled, hence, the solution meets the objective of the problem statement. Chapter 10 Conclusion Managing group projects can be challenging for students, especially when it comes to coordinating tasks, keeping track of deadlines, and ensuring that everyone contributes sufficiently. Therefore, the aim of this project is to answer the following problem statement to assist students with this issue: How can a web-based project management tool be created, in order to ensure accountability, and time management for student group projects? To develop a solution which could be considered to answer the problem statement successfully, MoSCoW requirements were created. In addition, it was also taken into consideration how to make the solution simple and intuitive to use. Therefore, the delimitation of functionalities to be implemented was hierarchically structured after importance, and those fitting the time frame and scope of the project have been successfully implemented in the application. All the must-have requirements have been fulfilled to ensure the solution can be considered successful. These consisted of a Kanban board, time schedule, task details, logbook, and navigation between functionalities. Furthermore, Server-Sent Events have been implemented in order to achieve a synchronous collaborative experience for all users. In addition, a backlog and synchronisation from Kanban Board to GANTT and Backlog has successfully been implemented which further improves the solution beyond the must-have requirements. Although the application has been considered successful, better planning would have led to an overall improved product for users, and an easier time implementing and testing the program. User story tests showed that external testers found the solution to be designed in a simple and intuitive manner, however, expressed a wish for a more guided experience for first-time users. 65 Chapter 11 Future works This chapter contains the improvements which could be implemented to the solution in the future. Although the solution was successful, it would benefit from fine-tuning and additions of functionalities. Feedback from the external testers through interviews and user story tests, provided valuable information about the functionalities students found important for a project management solution. The results of the user story tests revealed that the solution was successful based on the requirements. However, the user experience could benefit from additional features. For instance, the external testers wished for more information to be displayed for first-time users. This could be achieved through additional information boxes being displayed, and confirmation messages regarding important decisions such as deleting or exiting without saving. A tutorial-like experience was also wished for by one of the testers. It should be noted that it’s difficult to balance finding the right amount of information to display to the users, in order to sufficiently guide them through the features, without being too much. In addition, the could- and will-not have features which were not implemented due to the time frame and scope of the project, could provide a significant improvement to the overall application. It should be noted that additional functionalities, outside the scope of the MoSCoW requirements, could potentially also have improved the quality of the application. 67 Bibliography [1] Judith Ainsworth. “Student-Led Project Teams: Significance of Regulation Strategies in High- and Low-Performing Teams”. eng. In: Journal of Management Education 40.4 (2016), pp. 453–477. issn: 1052-5629. [2] Atlassian. Jira Software. Available at https://www.atlassian.com/software/ jira (Accessed 02.09.2023). [3] louis chatriot. NeDB. Available at https://github.com/louischatriot/nedb (Accessed 06.04.2023). [4] Nadja Damij and Talib Damij. “An Approach to Optimizing Kanban Board Workflow and Shortening the Project Management Plan”. In: IEEE Transactions on Engineering Management (2021). [5] Cambridge Dictionary. Backlog definition. Available at https://dictionary. cambridge.org/dictionary/english/backlog (Accessed on 09.03.2023). [6] Ana-Maria Dinu. “Project Risk Management - Reasons Why Projects Fail”. eng. In: Calitatea 17.S3 (2016), pp. 208–208. issn: 1582-2559. [7] David Flanagan. JavaScript: The Definitive Guide. Seventh Edition. (section 15.11). O’Reilly Media, Inc., 2020. [8] OpenJS Foundation. Express Fast, unopinionated, minimalist web framework for Node.js. Available at https://expressjs.com/ (Accessed 08.04.2023). [9] GANTT. What is a Gantt chart? Available at https://www.gantt.com/ (Accessed 20.12.2022. [10] Jette Egelund Holgaard et al. Problembaseret læring og projektarbejde ved de videregående uddannelser. 2021. [11] Doist Inc. Organize your work and life, finally. Available at https://todoist.com (Accessed 02.09.2023). [12] Jestjs.io. Jest. Available at https://jestjs.io/ (Accessed 20.04.2023). [13] Swapnil Kangralkar. Types of Biases in Data. Available at https://towardsdatascience. com/types-of-biases-in-data-cafc4f2634fb(Accessed 12.03.2023). 2021. 69 70 Bibliography [14] Andrew Maier. Psychology of web design. 1st edition. Smashing Media GmbH, 2012. [15] John Mitchell and Hugo Slim. The bias of interviews. Available at https:// www.iied.org/sites/default/files/pdfs/migrate/G01370.pdf(Accessed 12.03.2023). 1991. [16] MongoDB. MongoDB Developer Center. Available at https://www.mongodb. com/developer/ (Accessed 06.04.2023). [17] MongoDB. NoSQL vs. SQL Databases. Available at https://www.mongodb.com/ nosql-explained/nosql-vs-sql (Accessed 16.04.2023). [18] J. Nielsen. Thinking Aloud: The #1 Usability Tool. Available at https://www. nngroup.com/articles/thinking-aloud-the-1-usability-tool/ Accessed 20.04.2023. [19] nTask. nTask - Best Project Management Software for Modern Teams. Available at https://www.ntaskmanager.com/ (Accessed 02.09.2023). [20] ProductPlan. MoSCoW Prioritization. Available at https://www.productplan. com/glossary/moscow-prioritization/ (Accessed 17.11.2022). [21] Max Rehkopf. User stories with examples and a template. Available at https: //www.atlassian.com/agile/project-management/user-stories Accessed 20.04.2023. [22] Techtarget.com. UnitT esting. Available at https : / / www . techtarget . com / searchsoftwarequality/definition/unit-testing (Accessed 24.04.2023). [23] Markus Weinmann, Christoph Schneider, and Jan Brocke. Digital Nudging. Available at https://doi.org/10.1007/s12599-016-0453-1. pages: 433-436. (2016). Chapter 12 Appendix 12.1 Analysis of existing solutions 12.1.1 Jira Kanban Board Figure 12.1: Jira - Kanban Board Kanban boards are in this case the overview of created tasks. As seen in figure 12.1, these are found within a subsection of the tiled interface. Through tasks, assignees can be attached, along with file attachments, child issues, and link issues. Jira allows for the incorporation of app extensions, more on that later, which can further interact with issues through this board menu. Time Schedule 71 72 Chapter 12. Appendix Figure 12.2: Jira - Time Schedule Roadmaps, as the program calls them, are the overview of tasks with respect to time. A time management tool if you will. Start and end dates for the completion of tasks are mutable, as well as the ability to link issues throughout each. Filtration of visible tasks, overlaying either daily, weekly, monthly, or quarterly overview of scheduled issues to handle. Backlog Figure 12.3: Jira - Backlog Finding the issues which require immediate attention is something which is possible through the backlog tab. From this functionality, each remaining issue is visible, but importantly, the backlog of issues is separated into its own category. Task Details 12.1. Analysis of existing solutions 73 Figure 12.4: Jira - Task Details Task details provides detailed information of a task as seen, in figure 12.9. The details include a heading and the current category the task is under, and a task description. It allows for the addition of attachments, links to the issue and the creation of child issues if needed to further detail the task. In addition, the task details provide a comment section, so members have a way to communicate with one another regarding the task. Jira also allows for the task to be assigned to a member(s), which is displayed in the task details. Project Settings Figure 12.5: Jira - Project Settings Jira possess many various project settings as seen in figure 12.5. It is possible to name and categorise a specific project under the details tab. The access tab under this project settings makes it possible to edit the accessibility of members by adjusting their roles, while also being able to invite additional members. Jira makes it possible to enable automatic notifications through e-mails when certain tasks are completed or updates on tasks are made such as for example comments. Through the project settings, it is also possible to enable or disable certain features, 74 Chapter 12. Appendix such as the roadmap or backlog. It is also possible to customise the board from project settings. In addition, this would also be where you could adjust the apps connected to the project. Figure 12.6: Jira - Push notifications Jira’s notification system is highly customizable and offers a wide range of tools for team members to receive updates on the status of their tasks and projects. In addition, to push notifications and emails, Jira also offers the option to receive notifications via SMS, HipChat, Slack, and other popular communication tools. Team members can choose to receive notifications for specific events, such as when a task is assigned to them when a deadline is approaching, when a task’s status is changed, or when a comment is added to a task. 75 12.1. Analysis of existing solutions Jira Assignments ✓ Time schedule ✓ Kanban Board ✓ Backlog ✓ Task details ✓ Logbook × Project settings ✓ Push notifications ✓ Projects overview ✓ Table 12.1: Functionality Matrix - Jira Project Overview Figure 12.7: nTask - Project Overview The main page, after signing in, is a project overview as seen in figure 12.7. There is a view of unstarted, ongoing, and finished projects or the ability to create new ones. There is also a basic view of how many sub-projects, tasks, issues and members there are connected to each project. Board 76 Chapter 12. Appendix Figure 12.8: nTask - Kanban Board As seen in figure 12.8, there is an overview of all tasks and labels containing information about them. The are some basic labels on the page, which show the progress, priority, status, title, ID and planned ending of the tasks. There is the ability to add many more labels and the ability to colour code each task. Another feature on this page is the ability to search tasks using either a search function or by applying filters. The search function searches for the ID and title of tasks, whereas the filter option allows for a multitude of filters that sort by the labels of tasks. It is also possible to use these two options in conjunction. Task Details Figure 12.9: nTask - Task Details The task details page, in figure 12.9, contains all of the information pertaining to the individual task. It allows for the detailed viewing and setting of a vast amount of options such as time schedule, member assignments, log times, meetings, priority, and issues, plus the ability to add additional custom options. It also contains a chat function, and the ability to add documents and adding to-do list items. 12.1. Analysis of existing solutions 77 78 Chapter 12. Appendix Project Settings Figure 12.10: nTask - Project Settings Further functionalities on nTask include the ability to change project settings, as seen in figure 12.10. Immediately upon entering the settings function, one will notice that the general information tap has very little to offer besides the option to upload a photo. Supplementary features include the roles and permissions tap, in which the team owner is able to change team roles and their respective permissions. Finally, users are also able to direct themselves towards the task status tap, where team members can see the current status of assigned tasks. nTask Assignments ✓ Time schedule ✓ Kanban Board ✓ Backlog × Task details ✓ Logbook × Project settings ✓ Push notifications × Table 12.2: Functionality Matrix for nTask 12.1. Analysis of existing solutions 12.1.2 79 Todoist This subsection will feature an analysis of the functionalities available in the existing project management tool [11], the analysis is done on 02/09/2023, and the web and software application may have been updated since then. This analysis will be based on the functionalities found in the free version of Todoist the scope is limited to the functionalities relevant to project management. Todoist is a software application and web page that aids individuals and teams to become more organised, in their personal life or in the workplace. Project overview Figure 12.11: Todoist - Project overview When initially signing in to Todoist the user is presented with the project’s overview that can be seen in figure 12.11. Projects which the user is a part of show up in this tab, giving the user a brief overview of the current projects that are being worked on. The user is able to create additional projects from this screen, in addition, the user can invite members to be a part of their current projects, delete projects and click on one of their current projects and be presented with the board of that project. Kanban Board 80 Chapter 12. Appendix Figure 12.12: Todoist - Board The board seen in figure 12.12 can be seen as a notice board. The board includes an issues/tasks manager, which lets the user create different relevant lists, that contains user-created tasks. The issues can be assigned to specific project members, in addition, tasks can be set to different priorities, letting team members know which tasks are the most important in hand, priorities are shown with colour or by showing issue details. More options are available when setting up issues. The user is able to set specific start and end dates for each issue, while also being able to enter the actual end date for issues. Time Schedule Figure 12.13: Todoist - Time Schedule Todoist also features a time schedule, which can be seen in figure 12.13. The time schedule is much like the notice board, showing issues related to a user’s projects. The time schedule shows the specific dates that issues are due to and their priority. The user is also able to add additional tasks to the specific dates for themselves or a project that they are a part of. The user is also able to apply filters, for which issues 12.1. Analysis of existing solutions 81 they want to be shown. The filters let the user be presented with issues related to a specific project, the task’s priority or issues that are set to be completed by a specific member of the project. Assignment Figure 12.14: Todoist - Assignment Assignments can be viewed individually giving the user more options, as seen in figure 12.14. Assignments can as previously mentioned be set to be completed by a specific team member. Each task can also be given a specific label so that it is easier to sort tasks. From this analysis it can be concluded that Todoist is a project management tool, with many features related to project management. The tool lets project members organise their workplace and gain an overview of their workflow with smart functionalities, like assignments and a notice board. An extract of the functionalities found in Todoist can be seen in table 12.3. A full list of the analysed software application features can be found in the functionality matrix(table) 3.2. 82 Chapter 12. Appendix Todoist Assignments ✓ Time schedule ✓ Kanban Board ✓ Backlog × Task details ✓ Logbook Push notifications × × × Projects overview ✓ Project settings Table 12.3: Functionality Matrix - Todoist 12.2 Interview 12.2.1 Interview Questions 1. Personal Information for Credibility • 1. Name • 2. Age • 3. Academic status (major/semester/study) 2. Collaboration Tools and Software • 1. What collaboration tools do you use for group projects? • 2. Have you ever encountered any challenges or limitations with these? • 3. What software solutions/functionalities do you wish existed, which could help during your group projects? 3. Group Project Management • 1. How do you typically divide tasks and responsibilities among group members? • 2. What methods do you use to track progress and manage deadlines? 4. Group Dynamics and Success Factors • 1. What steps do you take to ensure that everyone in the group is contributing equally and effectively to the project? 12.2. Interview 83 • 2. What do you think are the key factors that contribute to a successful group project? • 3. Have you ever experienced difficulties during a group project, and if so, which tools do you believe could have helped with it? 5. Personal Experiences and Reflection • 1. Have you experienced any personal difficulties or challenges during group projects, such as time management or communication issues? • 2. How do you reflect on your group project experiences and what have you learned from them? – Do you believe a logbook helps with reflecting on group projects? 6. Open question • 1. In relation to tools for group projects, is there anything you would wish to add? 12.2.2 Elisa Interview Simon (interviewer): If you could state your name, age and field of study. Elisa (participant): My name is Elisa, I am 21 years old and I’m currently on my 6th semester on my bachelor’s in economics and business administration. Simon (interviewer): Thank you. What collaboration tools do you use for group projects? Elisa (participant): Usually, we use google drive or word has a collaboration kind of thing that we use as well, we use overleaf and then in general we also use stuff like GANTT charts to keep the overview of projects. Simon (interviewer): Have you ever encountered any challenges or limitations with these? Elisa (participant): Google drive has a lot of limitations when it comes to the math side of stuff, like the equations you don’t really have the most evolved equation mechanism in google docs and stuff. The same with word, they have a lot of issues with WordMat when you’re collaborating in a document, if another person has created a math field you can’t go and edit in it, like change stuff or delete stuff in the math field, it’s only the person who created it who can actually go and change stuff, which is very annoying. And then overleaf usually has a very steep learning curve and not everyone is dedicated to learn how to use the program very 84 Chapter 12. Appendix sufficiently so it takes a lot of time and effort to get to the level where you can actually collaborate in it sufficiently and if you’re not really into the coding stuff people usually just give up and use docs or drive or whatever instead. Simon (interviewer): So are there any software solutions that you wished existed which could help you during your projects? Elisa (participant): Like I was thinking about like a three in one solution that both has a calendar to do list with a GANTT chart with the deadlines and then a disposition overview, like the skeleton of the project that gets ticked off every time a point is done which is synced to each other and can also be loaded into google calendar or outlook or whatever you use so you can personally plan around the project as well. It would also be great if you could assign people or yourself through the program so others in the group easily could see what you’re working on currently without having to send a message and check up on: “Hey what are you doing right now?”. So that would be pretty cool if you could have like a three in one solution. Simon (interviewer): How do you typically divide your tasks and responsibility amongst group members? Elisa (participant): Usually based on skill and interest mostly, also availability of course depending on the deadline because if one member can’t work on the project for a few days due to something it maybe isn’t good that they’re assigned to a task that has a deadline inside the timeframe they can’t really work on it, so they will then be assigned to other work that fits their schedule more but usually it’s based on skill and people are very good at saying “Hey I’m very good at this stuff so therefore maybe I should contribute a lot to this point of the project” and people are also very good at just letting people do what they’re good at and just giving people space “So okay you’re good at this, would you deal with it and then we can later look at it together?”. Simon (interviewer): How do you track the progress made these assignments? Elisa (participant): Usually with the GANTT chart and the disposition or to do list overview mostly. I personally use calendar a lot, for me it’s very important to be able to actually visible see that the time assigned to the task is also doable, to compare to how much time we have to work on it, which is mostly how I structure through calendar. It’s also a lot easier to get an overview of how to push things around and change the priorities of stuff and still be able to visible see that we can actually hit our deadlines. So I usually use the calendar and the GANTT chart for that. Simon (interviewer): What steps do you take to ensure that everyone in the group is contributing equally and effectively to the project? Elisa (participant): 12.2. Interview 85 Sometimes we write on each section title who is contributing to what and sometimes we only just make a title at the end of the paper or the project for example stating who is the main author of what chapter and who contributed to that chapter besides the main author and then these get updated as we go through the project and it also makes it a lot easier to assign tasks to people whose name is not really on the list that often. So in google docs commenting is also a very useful tool that we use, as you highlight what you want others to focus on when they’re reading through your work or correcting your work and others can question and suggest however they feel fit without actually changing the work directly, and then that way we can also see through the comments who actually read through what they were supposed to read through and like, correct and stuff and then we just all go through the comments together and discuss them before making any changes and marking them as done. Simon (interviewer): What do you think are key factors that contribute to a successful group project? Elisa (participant): Communication, 100% communication and also trusting each other. Usually I have found that a lot of people don’t trust that others can do certain work to a certain, like, level of expectations. So you have to be able to trust each other that the work that is being done is actually good work and up to what we talked about and up to the expectations that we have, and therefore the need of overlooking what everyone else is doing all the time also gets taken way. This also minimizes the time spent correcting at the end and lets people also see their own, like, marks on the work when writing. This results in less interruptions as well if you’re in the zone when you’re working, so people don’t all the time say “wait what do you mean by that?”. So just trust each other, and communicate when something is wrong or ask for help and stuff is very, very important. Simon (interviewer): How do you build good trust with people? Elisa (participant): How you build good trust with people? Well, that’sSimon (interviewer): Yeah, I know that’s not on the questions in the document, but I thoughtElisa (participant): Yeah that’s a good question because, that’s a very personal question. Its very depended on who you are as a person, some people just trust that whoever they’re working with are doing a good job and then depending on how the outcome of that is, they can like tend to be like: “oh I can actually trust that.. I can physically see that and read that what you’re doing is good and the feedback we have gotten is good on your job so I have now experienced you’re doing a good job”, and other people need more of the.. you have to earn the trust before you get my trust, so that is a little bit harder if you’re new to a project with new people, to just go in blind and be like “okay I can just let off control and just let people do their own thing”. So, its really depended on what kind of a person you are. But it’s a work in progress all the time the trust part and people can also break your trust in projects if they don’t do deadlines 86 Chapter 12. Appendix correctly and stuff. That’s going to, like, affect your professional relationship with them and your trust with them. Simon (interviewer): Have you experienced difficulties during group projects? And if so which tools, do you believe would help resolve those issues? Elisa (participant): Yeah, of course I’ve experienced difficulties during group projects. We actually had one recently where we did everything we could to a certain group member actually contribute to the project, so showing our professor who contributed in the contribution section at the end of the project was how we had to do it because it was more, of like, personal difficulties and I don’t really think there was any tools that could be used to help with it if it was going to happen again, to be honest. Simon (interviewer): So my next question was going to be: have you ever experienced any personal difficulties? You sort of touched on that there. Have you ever felt time issues or communication issues? Elisa (participant): Yeah, that was exactly the issue, like, a person who was living rather far away from the university was not showing up when we all agreed to meet. Also if we said ”lets meet on zoom instead because you have a long way of travelling to get here, lets just meet on zoom and do the work on zoom so you can actually be apart of it” The person would just completely ignore our messages. The always confirmed that okay we can do it at this time, but when the time came they never showed up or never, like, read our messages or responded or anything so yeah, it was a lot of issues with that. Simon (interviewer): How do you reflect on your group project experiences and what have you learned from them? Elisa (participant): Well you learn a lot about how people, like work, their work types and how you like have to work around their work types. Usually personally I haven’t been in-. I usually work with the same people so it’s not like I-. I have slowly learned how the other people in the group, like work so I take mental notes so that later or on other projects I know how a certain person likes to do their work and then we can take that into account when planning and structuring the next project. For example if someone is not very good at working during the day but likes to sit at night and do their work, then we can trust that because we’ve seen before that they will get their work done that they’re assigned, they will just do it in their own time at night, we can structure around that and make sure that everything still get done till deadlines and stuff. You also very quickly learn who you work well with and how to, like, who to professionally avoid, if you have the choice to avoid them of course. Simon (interviewer): Do you believe keeping track with a daily logbook would help reflect on your group projects? Elisa (participant): We actually use it right now for our bachelors because it was something that we wanted to do ourselves because it keeps us on top of our game-ish, you can say, because everything 12.2. Interview 87 is documented from day to day. It’s also very fun to look back on the process you’ve been through and read all of the changes and decisions and stuff that you had to make to get your project to what it ended up being. It also helps a lot with the questions like “what would you have done differently?” that you usually get or have to answer and stuff after the project. It’s a lot easier to remember “okay what were we actually going through at these different points when we were writing the different sections and stuff and doing the different work on the project. It also keeps people up on their word and their promises from one day to another so you can write them down in the logbook that tomorrow we have all agreed this is going to be done and were going to do this and maybe someone has something they need to prepare for tomorrow, then you can keep each other up on that. So I really believe in logbooks, because its also fun, in the end, to look back on the process. Simon (interviewer): And finally: in relation to tools for group projects, is there anything you would wish to add? Elisa (participant): I don’t think so, to be honest. Simon (interviewer): Okay. Thank you 12.2.3 Jesse Interview Maria (interviewer): So, what is your name? Jesse (participant): Jesse Maria (interviewer): Your age? Jesse (participant): 24 Maria (interviewer): And your academic status? Jesse (participant): I have a bachelor in English. Maria (interviewer): Which semester is that? Jesse (participant): I have a different structure than the normal one. So, I’m doing a bachelor in English and media studies, right now. Maria (interviewer): What collaborate tools do you use for group projects? Jesse (participant): I mean at the moment we are forced to use Microsoft Teams, which I’m new to, but its fine. 88 Chapter 12. Appendix Otherwise, I see people mostly using Google Drive. Maria (interviewer): So, you mentioned Teams and Drive. Do you have any challenges or limitations with these? Jesse (participant): I mean, I like supplementing with Trello or other tools. I mean, we also have to use a lot of different tools, but its fine, just using Facebook Messenger to communicate, and then collecting everything in a Drive folder. That kinda the norm. Maria (interviewer): So, its Trello, Drive and Messenger for communication. Are there others, or are that strictly it? Jesse (participant): I mean, for what I have seen, that’s the norm. And we used Zoom in English for the first semester. Maria (interviewer): What software solutions or functionalities do you wish existed, which would help during group projects? Jesse (participant): I mean, I like when everybody has a proper overview of what happening, and I do think that kinda lacking, with the go to sites that people use. I like using Drive, I use it all the time to keep my text in order, but when you’re during a group project, it’s kind discussions that you want an overview of. And I think Trello is kinda fine, but again people have a hard time getting introduced to new platforms, so they have to look really simple to use. I remember in primary school, we used Prezi, which were great and so much better than Powerpoint, but now we are using Powerpoint, which kinda sucks. Maria (interviewer): How to you typically divide tasks and responsibilities amongst group members? Jesse (participant): I mean, of course that depends on the project and we do talk about like the different roles there needs to be, but its always just like a feeling, like people just do what they wanna do, and they leave so responsibility to one person in the group or a couple of people, so I don’t really know if you can say that we keep the roles. Maria (interviewer): So voiceless democracy? Jesse (participant): I mean, its different from person to person, how seriously they take it and whether they wanna have a talk about different roles or whether they just wanna do their part and then do all of the roles at the same time. But I prefer organising stuff and during the secretary, director, writer work or editing. Anything that has influence. Maria (interviewer): What methods do you use to track progress and manage deadlines? Jesse (participant): 12.2. Interview 89 I mean, from what I have experienced that the projects here is just talk and then we write it in our calendar. The most planning I have seen is just a person making a Docs document, where I set up a Trello to do a bit more structured or simple overview, because I thought that the Docs document was a bit long and confusing, so I wanted to divide it up. Maria (interviewer): You wanted overview? Jesse (participant): Yes, but they did just write up all of the dates, where people could meet, and then we mostly talked about it, we didn’t really go that much back to the document and correct it. Maria (interviewer): So, it is upkeeping that’s a problem as well? Jesse (participant): I mean, it can easily be fixed, but its also just so individual people like to do or want they can manage to do. Maria (interviewer): What steps do you take to ensure that everyone in the group is contributing equally and effectively to the project? Jesse (participant): I mean, that is what I always tries to do. I think its difficult, again depends on whether people want to communicate or like what people expecting from the project. I always try to open up conversations, which is difficult sometimes, but is important. Sometimes people just have a hard time getting to a place in the project where they can form ideas, and I like to provide them with things like, a frame, suggestions or anything that get them in a place where they are thinking about it. Maria (interviewer): What do you think are the key factors, that could contribute to a successful group project? Jesse (participant): You can do different work and different amount of time and energy into it, and still contribute in a meaningful way, but this requires communication. Maria (interviewer): If you could think of a tool or functionality or something else to help with a better project? Jesse (participant): Again, that’s super individual what people need to get motivation. Maria (interviewer): What do you need? Jesse (participant): I have always known to do the stuff I need to do and keep myself motivated and have an overview of things. Maria (interviewer): So self-regulation is not a problem for you? Jesse (participant): I’m over self-regulated. I do a lot of work to do less work. I constantly manage everything. Maria (interviewer): 90 Chapter 12. Appendix Have you ever experienced any personal difficulties or challenges during group projects, such as time management or communication issues? Jesse (participant): Of course, time management was a problem, in the first project I was in, and also communication, because every time there was a problem, communication is the foundational problem behind it, and it was also like that at that time. It was communication one way but not the other way. The project got postponed because of that and we had to do a lot of work in the end. So yes definitely. Maria (interviewer): Reflecting on that, what have you learn from that? Jesse (participant): I have learned that, when I have a good feeling that somebody isn’t able to actually do what they need to do, or like able to write something that can be put in the paper, for example you should just accept it and do the extra work, it doesn’t help trying to help the other person, that suck because I wanted to be like that, but its just extra work, when you could just do it by yourself. And that sucks to learn that, but that is the education you’re during, self-study, there is no help. If you’re in a group, it can be an advantage or a disadvantage. Maria (interviewer): Following that again, do you believe that keeping a logbook could help reflecting on these group projects? Jesse (participant): Yes of course. This is a part of the communication and keeping track of what you’re doing, assignment and all of that. Maria (interviewer): In relation to tools in group projects, is there anything you wish to add? Other than overview, time management and assigning things? Jesse (participant): I mentioned Trello, if I could introduce people to that, I think that it might help us. Maria (interviewer): Definitely, so easy overview and ease of capability, that is important to you? Like visually its easy to understand what is happening? Jesse (participant): I mean yes of course but if its just for me and I don’t have to think about how easy it is to understand for others, then I like that I can tweak everything. Like for example Adobe Premier Pro I can adjust all the sizes, I can adjust how the screen looks, and how I want it. Maria (interviewer): So, mutability is high? Jesse (participant): Yes Maria (interviewer): I would like to thank you for participating in this interview. 12.2. Interview 12.2.4 91 Rasmus Interview Maria (interviewer): Now, let’s start of with your name? Rasmus (participant): My name is Rasmus Maria (interviewer): And you are how many years old? Rasmus (participant): 23, at this time Maria (interviewer): And your academic status? Rasmus (participant): Currently a student in second semester. Maria (interviewer): What collaborate tools do you use for group projects? Rasmus (participant): Well, collaboration tools is sort of a wide subject, but the classically considered tools would be Trello, but for communication we just use Discord. Maria (interviewer): Have you encountered any challenges or limitations with the use of these? Rasmus (participant): I mean getting to know them of course, but not really no. Maria (interviewer): So, what software functionalities or solutions do you wish existed which could help during group crisis, for instance? Rasmus (participant): Group crisis. . . probably easier access to notification. I don’t check my mail that often. And if all notifications happen over mail I think it presents a problem to some degree. Maria (interviewer): So notifications or something to inform you of what’s happening and what’s needed? Rasmus (participant): I mean, if you’re doing daily sessions it’s nice to get daily notifications of deadlines or new additions to the time plan or something like that. Maria (interviewer): How to you typically divide tasks and responsibilities amongst your group members? Rasmus (participant): Sort of randomly. We just say, we need this done, who wants to do it? Maria (interviewer): 92 Chapter 12. Appendix And you think this is fair? This functions adequately? Rasmus (participant): Well, absolutely not, because you know. . . some people take more responsibility than others. Maria (interviewer): So what do you use to track progress amongst members? Rasmus (participant): Oh, we don’t really have a progression tracker, but on Trello you can see who is signed to what task, and furthermore on GitHub you can see who submits code at what point. Maria (interviewer): What steps do you take to ensure that everyone in the group is contributing equally and effectively to the project? Rasmus (participant): No steps. According to our group contracts we personally just give our all to the project. So we assume that is enough to get people motivated. Maria (interviewer): Has that ever failed? Rasmus (participant): Yes, because not everybody is equally motivated, so the contribution to the project is of course always of free volition, but not everybody is willing to do the same amount of work. Maria (interviewer): What do you think are the key factors, that could contribute to a successful group project? Rasmus (participant): Motivation definitely. I think task distribution is of course another good one, but if you get distributed a task which you don’t really want to do you’re not going to perform as well, so I think in the end efficient distribution matters less than the motivation. Maria (interviewer): How do you ensure efficient distribution? Rasmus (participant): I mean, more or less equal distribution is essentially. . . or especially when it comes to the code part because everybody is collaborating in the code and we also usually run through the code together. Maria (interviewer): Have you ever experienced difficulties during a group project, and if so what tools do you believe would help with that? Rasmus (participant): Well I think previously we’ve been a bit loose on deadlines, so it would be advantageous to have them easily accessible. Maria (interviewer): Mutable perhaps? Rasmus (participant): Yeah 12.2. Interview 93 Maria (interviewer): So a like a overview, or like a roadmap if you will, that would be something you think would help? Rasmus (participant): Yes definetily. Maria (interviewer): Have you ever experienced any personal difficulties or challenges during group projects. Such as time management and poor communication issues. Rasmus (participant): I suppose I’ve already answered that question. Maria (interviewer): A little bit yeah. If you have anything more to add though, that be. . . Rasmus (participant): No, not really I think. Maria (interviewer): How do you reflect on your group project experiences and what have you learned from them? Rasmus (participant): Usually I’m very critical of the experience, cause I believe the things that are done well, you know, there’s no reason to analyse those because they came naturally. Maria (interviewer): How do you know they’re done well though, is that personal or. . . ? Rasmus (participant): Well in part, but also through the response we get from exams Maria (interviewer): So outcome based? Rasmus (participant): Yeah more or less, but you can also tell like during the process if you get bottlenecked at some point it’s probably due to bad management. Maria (interviewer): Do you believe that logbooks would help, like with the reflection? Rasmus (participant): Yeah probably. So we also, you know, in our group look back on previous projects, not only on P1 but also P0, and throughout our high school time as well to sort of reflect on our experiences. Maria (interviewer): And now for the final question. It’s an open one. In relation to tools for group projects is there anything that you wish to add? Rasmus (participant): Like functions to a tool? Maria (interviewer): Anything that you would think would help in group management or project leadership. . . any of that sort, any of that region? Rasmus (participant): 94 Chapter 12. Appendix Well perhaps, instead of having a bunch of different tools, like a note tool for the SCRUM meetings and a timeline tool like Trello and a communication app like Discord, like sort of gathered up. Maria (interviewer): So you want an amalgamation of tools, one program for all of it? Rasmus (participant): Yeah, I suppose most communication could be handled in a different app, but like sort of the timeline, deadlines, the task assignments in one app, which is easily accessible also regarding notifications. Maria (interviewer): Alright. . . well thank you, thanks for your time. Rasmus (participant): No problem. 12.3 Other Figure 12.15: GANTT 12.4. Testing 12.4 Testing 12.4.1 External tester 1 95 External tester 1: Mads is a second semester student at Aalborg studying something (FIX) (FIX). Test 1: Mads looks around the website and notices the blue button labeled "create task" and clicks on it. Then he randomly fills out the form and tries to add the task, but mistakenly clicks on the green button labeled "+" because he thought it would add a task due to the name and color. After nothing happened, he realized there was a smaller blue button labeled "Add task" and clicked on it. He repeated the correct process 4 more times. (Maybe the function could automatically close after input, not sure, just feels natural) Test 2: Here he first closes the "create task" function and then hovers the mouse over one of the tasks, where he immediately notices the red button labeled "delete" and clicks on it. (Maybe have a security question like: "Are you sure you want to delete?") Test 3: In this test, he already knew where the "edit" button was as he had seen it during task 2. Then he fills out the form according to the task’s conditions. Test 4: He follows the task instructions and drags one of the tasks across all the statuses, where he realizes that the function does not work under the "overdue" status. Test 5: Here he starts by going to the Gantt chart, where he only sees one task being displayed, although there should be 4. Then he goes back to the board and checks the tasks to see if they all have the same date, which they did. Then he goes back to Gantt where he can see all the squares clearly. (Make it clear how to differentiate tasks with the same date inside Gantt) Test 6: Here he first goes to the board to check the dates on the different tasks, and then goes to Gantt to verify that everything matches, which it did. Test 7: Here he goes to the board and clicks on "edit" to see the description. After doing this for 2 of the tasks, he realizes that he hasn’t tried just clicking on the task to see if it also provides information. When he tries this, he sees the description for the remaining 2 tasks. Test 8: In this task, he goes directly to the board, where he immediately clicks 96 Chapter 12. Appendix on "edit" under a task, changes the description, and finally clicks "save changes". Test 9: He looks up at the top of the website and sees the title "logbook" and clicks on it. Then he selects "new logbook" and creates a new one. After creating it, he goes into it and fills out the "header" and "paragraph" and then clicks "add entry" and finally "save logbook". After this, he tries to go back to the main page under "logbook" but instead of clicking on "close logbook", he chooses to click on the title "logbook" at the top of the website. He repeats this process one more time. Test 10: Here he clicked on the title "logbook" at the top of the website and clicked "delete" on the top logbook. (Maybe have a security question like: "Are you sure you want to delete?") Test 11: He goes to "logbook" and opens the only one that is there. Then he creates a "header" and a "paragraph" which he saves and then deletes. Test 12: Here he went to logbook and selected the top logbook, then he selected "header" in the top entry and changed both the header and the "paragraph" and finally clicked on "save changes". Test 13: He started by going to the board to check the end dates on all the tasks he had in "To-do", "Doing", and "overdue". Then he went to the backlog and saw that everything matched as it After Mads had conducted the test, we had a discussion about general thoughts on the application. Overall, Mads found that the pages were designed in a simple and relatively intuitive manner, while still providing the user with a good overview. Many functions worked as expected, but Mads encountered issues during test 5 where a problem was discovered. Tasks with the same name, assignee, and start/end date were not differentiated on the GANTT chart. General thoughts that Mads had during the tests can be found in parentheses under the tests. We discussed that the page could potentially include more information for users when they first use the page, so that they can better understand the program. 12.4.2 External tester 2 External tester 2: Lucas is a fourth semester computer science student at Copenhagen University. At the beginning Lucas was using Firefox, and this caused issues with the website regarding its functionalities. He swapped over to chrome and the issues were no longer there. Test 1 On the Kanban Board, you want to create five new tasks. 12.4. Testing 97 Lucas looks around and clicks the create task button. He looks at the form, which he then fills out from top to bottom. He created the clicks on the add task and then begins to write a new one and with this one he clicked add task four additional times. Resulting in four identical tasks being created. Add assignee is a bit confusing. Make the remaining with new task names and descriptions. When selecting dates he wanted to write it manually, but this was a bit difficult and caused incorrect dates to be written. Could be an idea to enforce the popup of dates when the box is clicked rather than just the icon. Test 2 On the Kanban Board you want to delete one of the tasks. He looks at the Kanban Board and started deleting several tasks this was not an issue. Test 3 On the Kanban Board, you want to change the assignee, status, and deadline using the edit button. He looks around the Kanban Board and then decides to choose one of the tasks in overdue. He clicks on the task and then clicks the edit button,he systematically changes each box. However, although he didn’t change the date sufficiently to be before the current date, which resulted in it still being in overdue. This confused him, and he tried to edit it again and selected done, which had no issues. The he tried a task in to-do into doing, which also had no issues. Overdue seems a bit difficult to comprehend at the beginning. A little information box top right of the overdue task list explaining why it is there might be needed. Test 4 On the Kanban Board you want to click on one of the tasks and drag them to another status. He drags the tasks, but also puts them into overdue as well, and had to figure out you had to change status manually to move around again. He wanted to keep moving them around, but when he dragged one of tasks into overdue, he wasn’t able to drag it anymore. He edited the task to move it again, just like in test 3. Test 5 On the GANTT you want to make sure that tasks from the Kanban board, with the statuses: "To-do", "Doing" and "Overdue" are displayed on the GANTT diagram. He clicks the navigation to the GANTT. Clicks around with previous month and next month, and tries to understand how many days it shows. He compares the two and checks if they align. He opens every task up and checks systemically from to-do to doing and overdue. Confused as he thought some tasks were missing when the tasks have the same name, but then he hovered over and realised they were 98 Chapter 12. Appendix stacked together. Test 6 On the GANTT page you want to check if the tasks are sorted correctly after their start-date. He looked at the first task being displayed on the GANTT chart, and compared it systematically looking at the start-date. He wanted to have the start and end date, show when you hover over the tasks. Especially since it displays with two days at the top, so some information directly could be nice. He also wondered why if they were in the same category and if they had the same start date, they should be sorted after length. Furthermore, he wondered if it was possible to sort by category and then the date. But said it was more of a personal preference and it could maybe be a filter. Test 7 On the Kanban Board you want to read the task details of two different tasks. Clicks on the Board, and chooses two random tasks and reads the task details, he accidently deleted one by mistake. He wants a trash bin where he has to move them into or something else to ensure he doesn’t accidentally delete a task, but said this was more of a personal preference. Test 8 On the Kanban Board you want to edit the description of a task. He clicks a task on the Kanban Board, and in the previous tests he wanted to have description to also have a label when task details was displayed. Therefore, he clicked the edit button and changed the description where he wrote: Description: New description. Thereby, he added the description label himself, but he noted this was more of a personal preference. Test 9 On the Logbook page, you want to create two new logbook entries. He uses clicks on Logbook in the navigation bar. He then opens one of the logbooks and then clicks on the logbook navbar again to go back, then he looks around and then clicks to create a new logbook. Test 10 On the Logbook page, you want to delete a logbook entry. He keeps clicking on the navbar to return to the main logbook page, he doesn’t click the close logbook. He then deletes the newest created logbook entry. Test 11 On the Logbook page, you want to open a logbook entry create and then delete a header and description. He opened one of the logbook entries and then created multiple different headers and entries, and deleted a few of them. He thought that checking all the head+p would be a mass delete. He then clicks the save logbook, but was unsure if it 12.4. Testing 99 actually saved and said it would be nice if there was a popup to say the logbook had been saved. Test 12 On the Logbook page you want to edit a header and paragraph save them He open one of the logbook entries and edits them, and then changes them and saves the logbook. He accidentally deleted the logbook, and couldn’t check if it saved. He did it again. And it saved. Test 13 On the Backlog you want to make sure that tasks from the Kanban board, with the statuses: "To-do", "Doing" and "Overdue" are displayed sorted after end date. He navigates correctly to backlog, and compares the dates to see if the align. However, he wondered why it was in year-month-day rather than the usual layout as seen in the previous functionalities on the website. 12.4.3 External tester 3 The testee, Jesse, is a sixth-semester English student at Aalborg University and was of those originally interviewed in 12.2.3. The testee was given a URL to enter and they were then handed the first testing parameters. Test 1 Upon reading the instructions, the testee began by immediately opening the "Create task" form. Filling out the yet-to-be-created tasks’ name and description, stopping briefly at the assignee selection, picking the testing supervisor’s name, and then proceeding to fill out the rest of the form. The remaining four testing tasks were quickly completed. Later, when asked about the brief pause during the assignee selection, the testee replied with a lack of wanting to change the existing parameters. Meaning the existing examples confused, rather than helped. Test 2 This was no issue, the user did however exclaim the want for the buttons to be "edit" and "delete" functions to be flipped. Test 3 This test was done equally without issue. However, upon retrying this, the user attempted to change the status to Overdue, without changing the deadline. As the user attempted to change the status to overdue, however, they were unable to. After think for a moment, they realised overdue was related to the deadline of the task. Test 4 The task moved was the newly user-created task "Task 1". As the user had created this with a set end date of later than the date, they were unable to drag the task into the "Overdue" box. Once other boxes had been attempted, the user 100 Chapter 12. Appendix proclaimed that this inability to interact with the Overdue box, without the end date having been passed, although understandable, was "stupid". Test 5 Because the task creation form expands the vertical size of the website, the navigation bar was not initially visible during this test. The testee quickly sussed this out and clicked the correct field. Once again, the existing example created some confusion in that they do not have set periods in which they should be performed. The user then revealed an unintended browser-specific error. When a task is double-clicked, the cursor highlights the word Logbook in the navigation bar. When using Edge, highlighted words often reveal a definition at the bottom of the browser window. Blocking the ability to change the displayed month. Test 6 The only one looked at was the previously mentioned "Task 1" task, as the task had an end, and start date, known to the user. The dates matched, and the testee then asked whether it was possible to filter out the various statuses. As it is not, the testing continued onwards. Test 7 The navigation was quick, but upon attempting to view task details, the user clicked on the edit button. This prompts the edit modal to be displayed, and cannot, much to the dismay of the tester, be exited without either clicking on "save changes" or by hitting the "ESC" button. The description being visible during the editing procedure, meant that the test user did not intuitively understand that clicking the task itself expands it. Test 8 Due to the prior test, the user was familiar with this functionality and fulfilled its requirements dutifully. Test 9 Navigation is become second nature and is quickly over and done with. On the logbook page, the testee proceeded to create two new logbooks and considered the test to be done. Never once actually creating a new entry within the created logbooks. Test 10 asks for the deletion of a logbook entry. This was done immediately and without qualms or hardships. 12.4. Testing 101 Test 11 The operation was navigated successfully, however, the testee did not click on the "save logbook" button and did not initially complete the test. Test 12 During this attempt at testing, the user discovered their mistake in the prior test and corrected for it. Then went on to edit the header and description of the same task without issue. When prompted, the user described confusion about the requirement of saving, seeing the ability as something which should be automatic. Test 13 Once navigated and assessed correctly, the user, expecting a follow-up interview, then asked the attending supervisor what the difference is between the functions found on this board and the ones on the Kanban board. Further asking why this functionality exists, and what its use is.