Exploring Factors Influencing the Satisfaction of Adult Software Engineering Students with Teamwork in Distance Education

Using team-based software development assignments is a prevalent instructional strategy in software engineering (SE) education. Students utilize these development assignments as a vehicle to (co-)learn SE concepts, practice problem-solving, and develop soft skills. The satisfaction of SE students with their teamwork experience in team-based assignments is an important educational and motivational factor that contributes to increased participation in future team-based projects. There is a scarcity of research on the satisfaction of SE students with teamwork in distance and online education specifically for adult learners. This study reports on a case study conducted to identify factors influencing the satisfaction of adult SE graduate students with their teamwork experiences in team-based software design and development assignments at the Open University of the Netherlands (OUNL), a distance education university for adult learners. The self-reflection reports of 29 adult SE students, aged between 25 and 35 years, documented and self-evaluated their experiences with a team-based design and development assignment within a master SE course were analyzed using an open thematic analysis approach. The analysis of the reports revealed six categories of factors that influenced the adult online SE students’ satisfaction with their team-working experience, namely, the attitude of team members, communication, collaboration, team characteristics, tooling and technology, and learning. Additionally, we conducted a literature review to identify any similarities and differences between the results obtained from the literature and those derived from our study on this topic.


INTRODUCTION
In software engineering courses in higher education, developing team-based projects is a prevalent instructional strategy [6].These group projects are meant to encourage students to (co-)learn about software engineering concepts by applying them into practice and also to gain and practice problem-solving skills using these projects as a vehicle for their learning.Further, working in a team can help individual students tackle the open-ended, complex, and abstract nature of software engineering projects, collaboratively.Teamwork and collaborating with other team members can therefore be seen as a social learning environment providing ample opportunities to learn about programming and software engineering concepts and practice and deepen problem-solving, project management, critical-, technical-, and creative skills [14].
The importance of teamwork and teamwork satisfaction in the success of (software) product development is recognized broadly by the literature [3,12,14,20].The term 'team' refers to a group of people working on a common goal (e.g., the development of a software product).Hamlyn-Harris et al. proposed a set of characteristics for a team, in particular for student teams bound by an assessable task, including working towards a common goal, knowing each other and each other's abilities and tasks, cooperating to obtain the team's common goal and sharing resources [12].Teamwork satisfaction relates to the personal success of team members and their personal and professional growth.Satisfaction with teamwork might motivate and increase team members' participation in future projects [14].
To be effective and motivating, a learning activity should be satisfying for students [12].According to the arcs's model of Keller [16], students' motivation to learn is increased when four aspects of attention (A), relevance (R), confidence (C), and satisfaction (S) are addressed within the learning activity.Factors such as scheduling, positive outcomes, avoiding negative influences, unexpected rewards, and natural consequences contribute to students' satisfaction with their learning [16].
Research on the human aspects of online Software engineering (SE) education such as teamwork satisfaction is scarce [2].The necessity of conducting such research in the context of online students and distance education has been highlighted by other researchers to help instructors fully understand the benefits and limitations of this context (e.g., [13]).Achieving students' satisfaction with teamwork even faces extra challenges when it comes to online SE education for adult learners, given their different learning requirements compared to students in traditional universities, such as needing more autonomy and appreciating content and activities related to their professional career, and circumstances (e.g., studying part-time next to their professions) [22,24].
This paper reports on a case study conducted with the goal of identifying factors that influence online SE adult students' satisfaction with their group-based design and development assignments.The study was conducted in a master software engineering course aiming at teaching students how to design and develop future-proof and flexible software using domain-driven design and design patterns.The overall context of this study is the Open University of the Netherlands (OUNL), an online university that specializes in distance education for adult learners.Following an open thematic analysis approach, we analyzed the self-reflection reports of 29 students grouped in 13 student-selected teams of 2 or 3 persons, aged between 25 and 35 years.It is noteworthy that having smaller teams of 2 or 3 students, as opposed to the usual team size of 4 or more in face-to-face education, was intended to mitigate teamworking and communicating challenges in a pure online setting.The reports were collected from students who enrolled at 3 consecutive runs of this course from September 2019 until November 2020.Furthermore, considering the self-directed learning model at OUNL tailored to adult learners' characteristics, we followed a less strict, teacher-driven team progress monitoring approach.Teams' submissions grading was performed by the teachers using an extended rubric.
Further, we conducted a literature review study to find and summarize known factors influencing students' satisfaction with teamworking within three contexts, namely, software development industry, traditional SE education, and online SE education.Then, we compared our findings with factors derived from the literature to highlight the similarities and differences and argue about them.It is noteworthy that the main phase of this study occurred during the Covid-19 pandemic with an unprecedented impact and pressure on students' personal, educational, and professional lives.Arguably, this specific circumstance caused by Covid-19 pandemic may amplify the significance of certain factors concerning students' satisfaction with teamwork or introduce new ones.Thus, we opted to follow an open thematic analysis approach based on students' self-reflection reports in our study.
This study seeks to contribute to Software engineering education by identifying the factors contributing to the satisfaction of software engineering students with their teamwork experiences in a specific context: purely online collaboration and learning setting with adult learners.While the majority of research on students' satisfaction with teamwork is done in traditional, face-to-face education with non-adult-learners, the results of this study can contribute to the theory on students' satisfaction in this specific context, which thanks to Covid-19, has become a common setting for delivering education, worldwide.Moreover, the results of this study were used to derive a set of practical guidelines to help SE teachers in higher education improve their instruction regarding group projects to address factors influencing students' satisfaction with their team working.

RELATED WORK
The characteristics of our students enrolled at master software engineering courses are unique in the sense that they are adult students and at the same time working professionals in IT disciplines.This fact has led us to explore the literature on teamwork satisfaction factors in both higher education (face-to-face and online education) and the software development industry.

Teamwork satisfaction in software development industry
Several studies have investigated the features and quality of teamwork and their effect on project success and team members' satisfaction [3,14,20].Hoegl and Gemuenden, based on an exploration and understanding of interaction in teams, reviewing the relevant literature and conducting various exploratory empirical case studies, conceptualized the teamwork quality construct (twq) consisting of six concepts: Communication (i.e., the existence of sufficiently frequent, informal, direct, and open communication), Coordination (i.e., the structure and synchronization of individual efforts within the team), Balance of Member Contributions (i.e., the ability of team members to bring in their expertise to their full potential), Mutual Support (i.e., assisting and supporting each other in carrying out their tasks), Effort (i.e., exerting all efforts to team's tasks), and Cohesion (i.e., the existence of team spirit and team members' motivation to maintain the team) [14].Utilizing the twq constructs, Lindsjørn et al. conducted a survey-based comparative study to investigate the effect of teamwork quality on team performance, learning and teamwork satisfaction in agile and traditional software development teams.They found a positive effect of teamwork quality on team performance.Also, they reported a strong positive effect of teamwork quality on team members' learning and work satisfaction from the perspective of the team members; not from the product owners.Finally, this study found no significant evidence of higher teamwork quality in agile than in traditional teams [20].
To identify the drivers for teamwork satisfaction of New Product Development (npd) teams, Barczak and Wilemon conducted indepth interviews with 71 members of npd teams in 18 diverse technology-based companies in a variety of industries, including software development.They identified these drivers for teamwork satisfaction: team characteristics, clear project goals, clarity about evaluation and rewards, effective leadership, management support, and manageable levels of conflict and stress [3].

Teamwork satisfaction in face-to-face software engineering education
The format of education (e.g.online or face-to-face) might influence students' satisfaction with their collaboration and teamwork.Several studies explored the factors that contribute to teamwork satisfaction of IT and software engineering students in traditional face-to-face higher education [12,13,18,25].
Hamlyn-Harris et al. examined four potential predictors of satisfaction with the teamwork of it students involved in compulsory teamwork tasks, namely, previous experience with teamwork, perceived usefulness of teamwork training, working with previous team members, and gender mix [12].They tested a set of hypotheses by surveying two cohorts of students (270 students following a Database course worked in teams of 3-4 students on a 5-week project, and 100 students worked on Software Engineering Projects for 8 months in the final stages of their degree) where they were asked to reflect on their current teamwork experience and rate their level of agreement with statements relating to global satisfaction (e.g., Group members interact well with each other) and global dissatisfaction (e.g., My group isn't very efficient).They found little, non-significant influence of self-reported previous teamwork experience on satisfaction for either group.Also, the hypothesis of working with friends would influence satisfaction was not supported by the results.Further, no correlation between the perceived usefulness of the teamwork training and teamwork satisfaction was observed for the Database cohort, while a small significant correlation was observed for the software engineering students, seemingly due to the different nature of the received training.Finally, it was found that working in mixed-gender teams was more satisfying for students working on long assignments (i.e., Software Engineering cohort with 8-months project duration) than for students working on shorter projects (i.e., Database cohort, 5-week projects) [12].
The composition of student teams may influence students' satisfaction with their teamwork.In this regard, Dzvonyar et al. proposed a set of criteria for composing software development teams for undergraduate software engineering students [9].The introduced criteria are practical constraints (e.g., team size, development & test devices, schedule flexibility), skill distribution (e.g., balanced software engineering experience, project requirements in terms of the required skills), motivational factors (e.g., course motivation, project priority) and personal criteria (e.g., gender distribution, language skills).They conducted a case study in the context of an app development project by administrating a questionnaire to collect and examine students' opinions about project satisfaction, team synergy, and encountered problems in their teams.They reported the problems of lack of motivation, interpersonal relationships and communication in less satisfied, problematic teams.Based on the results, the authors highlighted the importance of considering the participants' priorities in order to improve their motivations and satisfaction (in particular, at the beginning of the course) to prevent their dropping out.
The adequacy of the developed software products by students is another factor which can possibly influence students' satisfaction with their teamwork.Following extensive deductive and inductive analyses, Licorish et al. surveyed undergraduate students across four universities (in New Zealand and Cyprus) to understand their software development projects in terms of effort, performance, satisfaction, skills and their relation to the adequacy of developed products.They found that students were more satisfied with their team's collaboration performance than with technical contributions.Also, junior students seem to struggle more with teamwork.Further, the developed software products by students were of higher quality if they had worked in project teams previously, had stronger technical skills and were involved in timely meetings.Based on the results, mechanisms were signalled out for informing good estimation of effort, mentoring technical competencies and suitable coaching for enhancing project success and students'satisfaction [19].

Teamwork satisfaction in online (software engineering) education
In the context of online education, Tseng et al. investigated the relationship between online collaboration factors and teamwork satisfaction by surveying 46 graduate students [25].The examined online collaboration factors were facilitators' support, acquaintance with teammates, clear communication, trust among teammates, and organization practices.These factors jointly accounted for 63% of the variance in students' online collaboration satisfaction.Two factors, namely Trust among teammates and Organization practices, were effective in explaining the online collaboration satisfaction of students [25].In a similar study, Ku et al. surveyed 197 graduate students across three consecutive academic years to examine the influence of online collaboration factors on their teamwork satisfaction.They found a moderate to a high degree of correlation between three online collaboration factors (namely, team dynamics, team acquaintance, and instructor support) and teamwork satisfaction, accounting for 53% of the variance in online teamwork satisfaction [18].Team cohesion relates positively to team satisfaction [4].Team cohesion is defined as a dynamic process reflected in the tendency of a group to stick together and remain united in the pursuit of its goals and objectives [5] (p.124).In a comparative study, Hansen examined whether online student project teams are more cohesive than traditional teams by administrating questionnaires to test some hypotheses between positive communication, participation, conflict handling, and satisfaction [13].This study reported that online team members communicated more positively and participated more in team activities, both of which suggest a higher level of team cohesion.Online teams were more satisfied with their team experience and performed compared to the traditional teams [13].
Another possible driver for teamwork satisfaction is teamwork competency.Teamwork competency is a concept close to the teamwork quality construct (twq) [14] and includes characteristics related to team members' knowledge, skills, and abilities to contribute more productively and effectively to the achievement of the team's goals.Five discerned core teamwork competencies are conflict resolution, collaborative problem-solving, communication, goal-setting and performance management, and planning and task coordination [2].To examine the relationship between students' teamwork competency and their teamwork satisfaction, Awuor et al. collected data from 75 college engineering students (19 teams) in a 12-week synchronous online group-, project-based course through a questionnaire.Hypothesis testing using Multi-level hierarchical linear modelling revealed a significant positive relationship between teamwork competency and satisfaction.This finding led the authors to provide some practical implications and interventions for teachers to enhance collective efficacy and boost students' satisfaction in synchronous collaborative online learning settings [2].
Table 1 provides an overview of the literature findings on factors that influence teamwork satisfaction in the context of software development industry, face-to-face and online software engineering education in higher education, along with their respective sources.[19] Technical contributions [19] Online higher education Facilitator's support [18] Acquaintance with teammates [18] Communication and team dynamics [18] Trust among teammates [25] Organization practices [25] Team cohesion [13] Teamwork competency [2] 3 RESEARCH

Research objectives and context
This study seeks to explore and identify the factors contributing to graduate Software engineering students' satisfaction with their team working.The overall context of this study is the Open University of the Netherlands (OUNL), a distance education university for adult learners.In this university, an educational approach based on self-study supported by online lectures, individual or team-based assignments, discussion and feedback sessions is followed.
The specific context where this study was conducted is the Design for Change course with 7.5 ects offered as the first course in the Master program of Software Engineering at OUNL.The focus of the course is on learning the design patterns [11] and how to apply them to a practical software project, called JabberPoint (a simplified version of Microsoft Powerpoint) to make it more future-proof to accommodate new changes in functionality with less amount of adjustments in the design of the software and code.The course follows a domain-driven approach (e.g., defining ubiquitous language and developing a domain and design model) [10] to designing, developing, and re-factoring JabberPoint.The course is offered in a 10-week period twice per year.
During this course, students first develop a ubiquitous language and domain model for the design part individually while collaborating and sharing their findings with the whole class via GitLab.Then, they form teams of 2 (sometimes 3) to revise and optimize their ubiquitous language, domain model and design, and implement the revised version of Jabberpoint, according to SOLID (i.e., Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) principles.Then, each team receives an extra feature to be added to JabberPoint, for instance, adding annotation possibilities to slides, automatically creating the table of the content slide and inserting it into any place in the presentation, or implementing interactivity in the presentation.In the end, students write a team report to explain their design and implementation and justify their design choices.Further, they write an individual self-reflection report at the end of the course to answer questions about their teamwork and collaboration experiences, the faced challenges and difficulties with their teamwork and the project, and the process of adding the new feature to Jabberpoint.Within these questions, the structure of this self-report is open with no specific criteria about what should be included in the report.
For the purposes of this study, we analyzed students' selfreflection reports [7] by following an open thematic analysis approach [26] to identifying and capturing factors contributing to students' satisfaction with their teamwork.Although the direct intention of introducing this self-reflection was not only to express the students' satisfaction with their teamwork, we believe that the openly-expressed spontaneous reactions of students to their team working experience may provide us with an insightful, non-biased, realistic picture of factors affecting their satisfaction with their team working experience.The self-reflection report consisted of the following questions: (1) How do you reflect on the whole process of this project?(this question was intentionally formulated as an open question without focusing on a specific aspect to not steer students' reflection and allow them to express their observations openly), (2) How do you evaluate sharing your ideas about the ubiquitous language and domain model with all students via GitLab?Have you learned from it?and how? (3) How satisfied are you with your team-working, and why? (4) How do you judge your design concerning accommodating the extra feature?
In total, we collected 29 self-reflection reports from 13 teams that participated in the course during one of the three consecutive runs from September 2019 to November 2020.Each reflection report had a length of 2-3 pages.Students enrolled to this course already had a bachelor's degree in Software engineering or related disciplines.All students were adult learners and the age of most of them falls into the range of 25 to 35 years.Further, most of the students had a working background in software engineering and IT and they followed a part-time study, next to their work and personal life.

Research question and data collection and analysis process
The following research question directed this study: What factors do influence graduate SE students' satisfaction with their team-working in software development projects in online education?
We followed a bottom-up and open thematic approach to collecting and analyzing data in order to capture all possible factors contributing to students' satisfaction with their team working during project development, mentioned by students in their self-reflection reports.Following this approach, instead of a top-down approach, allowed us to capture all factors students experienced during their projects concerning their team working.Furthermore, it provided us with the opportunity to extend the current literature on this topic by comparing our results with the literature to identify new and emerging factors related to this very specific context (i.e., pure distance educational settings for adult learners and open-ended software engineering projects).Given the global increase in attention towards and prevalence of online education during the COVID-19 pandemic, the findings from this study can be of interest not only to other educational settings but also to business institutions.
The analysis process consisted of the following steps: importing students' answers into a shared Excel sheet (giving its convenience and low learning curve for the research team) and adding satisfaction factors and dissatisfaction factors columns to it.Then, we went, iteratively, together through all students' answers and for each quote asked ourselves whether it indicates a satisfaction or dissatisfaction factor.After identifying all factors, we started to group them into related categories.The first two authors did the analysis and interpretation and the 3rd researcher reviewed the process and results.The analysis to find factors for satisfaction and dissatisfaction went through an iterative process of coding, re-coding, and grouping students' answers; assigning these codes to satisfaction/dissatisfaction aspects; defining categories of factors, re-grouping them, and confirming by all researchers.To preserve students' privacy, we anonymized the findings, students' quotes, and teams, ensuring that no identifying information can be inferred from them.
It is worth noting that the two primary authors of this paper possess distinct research and practical backgrounds, including expertise in computer science, computer science education, and project management.These diverse perspectives have influenced the discussions between them and have ultimately shaped the results.It can be argued that researchers with alternative backgrounds may reach different findings and conclusions.

RESULTS
We discerned the following six categories of factors influencing graduate Software engineering students' satisfaction with their team working, as follows.For some categories, we distinguished several factors.For other categories, we use the category as a whole.

Attitude of team members
This category includes various factors related to motivation, willingness to communicate and collaborate in an active way, willingness to make a transparent working process and showing commitment to the team's shared objectives.We identified three factors within this category: Reliability, Willingness to have active communication and exchange feedback, and Willingness to understand each others' situations.Students used keywords including motivation, responsibility, willingness, and eagerness in their quotes which led us to identify these factors.
Reliability We observed that the reliability of team members plays a key role in their satisfaction with the team working.
Below is a quote showing this point: The following quote reflects these points: ... and both of us were understanding if the other had any issues [with regard to the understanding of the concepts].We were also flexible towards each other since we both had quite a busy schedule.

Communication
Effective communication with teammates emerged as another influential aspect affecting students' satisfaction with their team working.We discerned the following factors within this category: Regular meetings Planning and following regular meetings turns out to be very important to prevent or solve various difficulties related to scheduling, understanding content and concepts, and making design decisions.Further, it helped teammates track the progress of the whole team.The following quotes are reflecting these points: -... he and I have called at least five times to make sure we were on the right track.
-... overall the co-operation was considered good by both team members.We had meetings twice per week via Skype, which helped a lot in keeping track of progress and clearing out any problems that arose, and it ensured that communication went smoothly.
-In hindsight, I would have preferred more intermediate communication about code changes, but this is partly my own fault for not asking.
-Our communication for this assignment was on multiple occasions very strained.Due to several miscommunications and misunderstanding we both felt frustrated with the whole process.We probably waited too long to really talk about it and only at the end of the assignment reached an understanding.Information overload This factor stemmed from the specific context and communication between students in the first weeks of the course (see Section 3) around developing and sharing their domain models, consisting of concepts, the definition of concepts, and the relationship between concepts in the problem domain.This information overload is caused by the fact that each student posts their domain models into a wiki on Gitlab and all other students are asked to keep an eye on the posts and to review and give feedback in the role of domain experts.Given the relatively large number of students (around 30 students), it creates a lot of discussions and comments on domain models (in an extreme case it can result in 30*29 comments on all domain models just for one round) which is difficult for students to follow all.Most students expressed their satisfaction with this active discussion and exchange of feedback.However, some students were unhappy due to exchanging a lot of information and the difficulty of keeping up with the rapid information flow.Time availability As described earlier in Section 3, the students of this course were special in terms of studying parttime next to their job and family and being adults.Moreover, the participants of this study were also experiencing the issues and limitations imposed by Covid-19 which made the planning and scheduling for communicating with each other more complicated.The following quotes reflect these issues: -The communication was sometimes hard because our schedules are really different.It also got harder when we had a new team member joining, and we were trying to get him up to speed with our progress so far.
-In my opinion we worked fantastically together, but the problem was the time limitation for communication.

Effective communication In addition to the frequency of communication, the quality of communication between teammates was mentioned as an influential factor in their teamwork satisfaction, as echoed below:
-There were good and effective communication between us... but after a lot of messaging and video calling....

Collaboration
The quality of students' collaboration and co-working around their assignments was another discerned factor for their satisfaction.One repeating pattern related to students' collaboration was about the roles they undertook during their collaboration.We identified two repeating roles from students' quotes, namely, the leading and reviewer roles.The leading role, according to one student, refers to a team member who comes up with some ideas to make the initial design and leads the design process, as reflected below: -He led our collaboration with some great ideas to make the initial design... On the other hand, the reviewer (or checker) role refers to a team member who mainly participates in reviewing the idea, concept design, code, and report.The following quotes relate to this role: -We complemented each other well...I played the role of reviewer of the design [for] noticing flaws in design report ...
-We both did not really take a leading role at first and both became the checker and coordinator -Although we both agreed to divide the responsibilities between maintaining the report and maintaining the code, I think I missed someone to review and evaluate the coding with.
The above roles of leader and reviewer are more classical taskoriented roles known by the literature.Interestingly, some students mentioned new roles based on their Software engineering knowledge or experience background, mainly as theoretical roles (e.g., a person with knowledge mainly about non-coding aspects of the assignment such as concepts, problem-solving and design) or practical roles (e.g., a person with more tendency or experience with the coding aspects of the assignment), as reflected below: -We had a good and supplementing collaboration: my teammate had a theoretical role and for me, it was more practical [and technical].
One interesting observation is about the importance of complementing roles and being active within a team as influential factors in team members' satisfaction.It seems that to have a productive discussion, team members should play an active role in the discussion and avoid playing a dominant role in the team, otherwise, it runs to the passive roles of other members in a negative sense.The following quotes highlight this point: -I'm used to having overweight while working in a team, but I chose to be more humble talking to my partner in crime.We had a lot of different views around the subject

Team characteristics
We discerned the following factors related to this category.
Team forming Students highlighted some issues related to forming their teams as echoed by the following quotes: -The period of forming our team and working together was quite short to have it perfect, but the result is good I would suppose.
What can be inferred from the above quote is the fact that forming and establishing a team costs time.Some people need more time to get used to the atmosphere of a team and have a quality collaboration and it cannot be expected that all teams would function very well in the same (short) time period.It is noteworthy that in this course the team-forming process is postponed to week 4 after the start of the course.Also, students had the freedom to choose their teammates by exchanging their requests for teammates in the discussion forum and providing a brief introduction of themselves, their time availability, expectations.and also by highlighting their strengths (e.g., high technical or design knowledge).Commonalities of team members Some students highlighted the need to have specific commonalities within the team to have a satisfactory collaboration.These commonalities are perceived as important to easily understand each other's ideas, views and design decisions and also to help with the practical aspects (e.g., working with git or writing the program or report), as reflected by the following quotes: -Working with my teammate went very well.We both come from the same study and both completed the same pre-master subjects.We both had the same mindset and took the work seriously.
-Both of us have a Software Engineering background so using git to share code was not a big deal and went smoothly.Diversity of team members Interestingly, while some students highlighted the satisfaction derived from commonalities among team members, the diversity within teams (e.g., familiarity with different programming languages and design techniques or different educational background) was also seen as a positive and satisfactory aspect, as echoed below: -Our different backgrounds (X: teacher, Y: .netdeveloper, Z: C++ developer) allowed us to look at the problem from different angles.
From the above quote, it can be inferred that a specific level of diversity in the team can help team members to supplement each other.Team size Most teams consisted of two students.For some specific cases, there were teams with only 1 and also teams with 3 members.The following quotes by students from 3members teams seem to be useful to provide insights about the influence of having one extra member.
-Coming to a design with which all [three] team members agree, took more time in our team, but thanks to our fruitful team dynamic in the end we could come up with something with which all of us could agree.
-Our situation was a bit special because we had a team of three instead of two.This was an extra mind to come up with good ideas, but also a different opinion to take into account.This made communication slower and harder.So though both my teammates were fine, I do not think the extra capacity outweighed the overhead of working with three people.These observations suggest that, within the context of this assignment, having a larger team can offer additional capacity in terms of introducing new ideas or perspectives.However, it can also introduce challenges in terms of time and communication costs.

Tooling and technology
Due to the social distance requirements posed by the Covid-19 pandemic and also the distance education nature at our university, the use of digital tools to communicate among the team members was inevitable.It is noteworthy that the majority of students enrolling to this course come from an IT background which means that they already have sufficient familiarity and experience with digital tools for communication.Students were free to choose their set of technological tools to communicate, in addition to Gitlab.They reported utilizing various tools, including Overleaf (for writing their reports), Trello (to support project management aspects of their work), Whatsapp (to support asynchronous communication and messaging), and Skype (for synchronous video communication).

Following comments highlight their use of various communication and collaboration tools:
-Sharing code was easy [via Gitlab] and Overleaf really helped with working together in LaTeX documents.This way we could look at examples from each other and we could work on the same document quite easily.
-We've used tools such as Trello, WhatsApp and Skype for communication...If we needed each other's input, we could also easily reach one another [via these tools].

Learning
The complex, open-ended and ill-defined characteristics of the design and development assignments of the course made the students explore the assignments from various perspectives, provided great opportunities to come up with various concepts and try to make them more well-defined, discuss alternative design decisions, and finally make an agreement about their design definitions and decisions.This collaboration around the design assignments and the resulting learning was well-received by several students, as quoted below: -But, I learned the most from the sharing within my project group.Creating a design and ubiquitous language and having to agree on it together really makes you think hard about the meaning of different concepts.
-My teammates helped me spot errors [in design] and gave their views on correcting them.This has helped me a great deal in learning about various concepts and seeing design from different perspectives.
Further, the eagerness to learn from their teammates and their team working experience was another important factor in this category, echoed in the following quote: -We were eager to learn more and we also learned a lot from each other and ourselves.

A quick review of the findings
We identified six categories of factors that contributed to the undergraduate Software engineering students' satisfaction with their team-working.These categories are the attitude of team members, communication, collaboration, team characteristics, tooling and technology, and learning.With respect to the attitude of team members, the discerned factors are reliability, the willingness of teammates to actively communicate and exchange feedback, and the willingness to understand each other situations.Factors within the category of communication are: having regular meetings, information overload, time availability, and effective communication.For team characteristics, the identified factors are team forming, Commonalities of team members, diversity of team members' backgrounds and pre-knowledge, and team size.
It is noteworthy that due to the Covid-19 outbreak and the combined personal and professional life of the students, they experienced an unprecedented amount of pressure in terms of lack of time, health concerns, and making time and space for their study.Thus, the attitude of team members and their understanding of each other situations turn out to play an important role in their satisfaction of their teamwork experience.Even in the post-Covid era, this factor can play a key role in adult students' satisfaction with their team working, given the fact that adult students face several challenges in making a balance between education, work, and other responsibilities [21].
Another interesting observation regarding student communication, which can provide practical guidelines for teachers, is the factor of information overload.As noted previously in Section 3, in this course students are asked to post their design model to a wiki page on GitLab and comment on each other domain models.Their domain models consist of various concepts, sub-concepts, definitions and associations, and responsibilities in terms of what each concept (class) knows and does.The combination of these aspects can make their domain model very complex, often with many implicit assumptions.Since this activity is conducted at the class level, involving all students in the course, it leads to the exchange of numerous comments and feedback among students.While many students perceive it as a valuable learning opportunity, others consider it to be a challenge.To overcome these challenges, it is suggested to introduce proper teacher support, such as training, exercises, or structural interventions, as highlighted by previous studies [25].While the information overload factor primarily pertains to classlevel student communication, it still arguably influences students' satisfaction with their team work, as the collective outputs of the class-wide activity (e.g., the initial ubiquitous language and design model) serve as input for team activities.
Another interesting observation concerns the effective composition of the team.We noted some students appreciated the commonalities between their teams to ease their development practices, for example, coming from the same educational background, being familiar with the same concepts (e.g., the design patterns) and how to apply them, or having experience with the same programming languages.On the other hand, some teams appreciated the diversity of their teams and reported it as an advantageous and satisfying factor that allowed them to learn more and look at the assignment from a different perspective.This observation suggests introducing both commonalities as well as diversity in teams which calls for more research.Our results concur with and add to the findings from the literature on the benefits and challenges of diverse or heterogeneous group composition in students' perception of group working [1].

Confronting our findings with the literature
Figure 1 shows the differences and similarities between our findings and the findings in the literature (e.g., Table 1) in the form of a Venn diagram.
As shown by Figure 1, several factors for teamwork satisfaction are observed both in our results and in the literature (e.g., communication, collaboration, motivation).Four factors are highlighted in the literature but are absent in our results, namely, technical contributions (i.e., the adequacy/quality of the product developed by teams), team acquaintance, teamwork training, and project management.We can argue about reasons why these factors do not play a role in our students' satisfaction with team-working: first, our students are professional software developers and the development project in this course was not about building a whole system from scratch, but about restructuring and optimizing the design of an existing software to be more future-proof to accommodate future changes in the software easily.The absence of team acquaintance and teamwork training factors in our results can be explained by the fact that our students in this study are professionals with several years of teamwork experience in IT team-based projects where new people often join the project teams.Three factors are identified in our results but were either missing or only implicit in the literature, being, tooling and technology for communication, learning, and team formation process.The influence of tools and technology factor on our students' satisfaction with their teamwork stems from the absence of face-to-face contact in general, as a result of the distance education format at our university, next to the Covid-19 pandemic social distance limitations.Regarding appearing learning as a satisfaction factor expressed by our students, we can refer to the fact that our students are adult learners who are generally considered as self-motivated learners who want deep learning and seek relevance and meaning in their learning activities [24].This can arguably explain why learning has become a more important satisfying factor for our students than the development of software products or technical contributions as derived from the literature.With regard to appearing the team formation process as an influential factor on students' satisfaction, there are several reasons, including the completely self-initiating and open way of team forming by students in this course, purely online and distant communication and lack of face-to-face contact between students which together can challenge the team forming and community building process.Furthermore, for some students, there was uncertainty about whether to continue or discontinue the course and their participation in the team due to their yetunknown results by that time in the pre-master program, which added additional stress to other teammates at the beginning.

Learning versus product development
Sometimes, important points that you were not looking for come to the surface during research.In our case, this is the possible tension between learning and producing an end product that is as good as possible.
The tension between learning and product development is a known challenge with design-based education [17,23].Often, the quality of the final (working) product generated by students is used to assess their performance and learning of the underpinning concepts, while the quality of their collaboration and real learning process taking place during the development process most often remains unassessed or implicitly evaluated based on the features of their products.It is assumed that if the collaboration and learning went well, then it might result in a good product and vice versa.Here, we see a conflict between 'learning' and 'making a good product' and its influence on students' satisfaction with their teamwork.This might be true for individual assignments as well: students, instead of taking time to think, experiment, deepen their conceptual understanding, make mistakes and learn from their mistakes, mainly focus on the end product.In teams, the danger is even bigger, since in a team students in general are tempted to do just the part that they are already good at (e.g., making the design or writing the code).That implies sacrificing important learning benefits and missing opportunities for improving their weaknesses in exchange for a better end product.Some students in our study explicitly mentioned this point: Due to differences in coding experience, most of the code was written by one of the group members.The contribution of the other group member on the coding part was minimal, but this was compensated by the contributions to the design and report.
It seems that students in such projects, by sticking to what they already know and can do, just deepen their current knowledge, and do not tend to learn what they lack.Note that this challenge cannot be addressed by easily having students assess each other to evaluate their collaboration and learning process: it is likely that they will give high marks to students who were able to contribute to the end product more; and might not consider what they and their teammates learned.
This tension between learning and product development and its possible influence on students' satisfaction with teamwork is also reflected (implicitly) in the students' quotes about their team composition, in particular, the commonalities between and diversity of team members (see section 4): the general message one receives from the quotes about the benefits of having commonalities in team (e.g., both knowing git or the same programming language, or working with the same development environment) concerns the ease of the development process.On the other hand, the quotes about the team members' diversities (e.g., coming from different background or having different expertise) acknowledge and appreciate the provided learning opportunities due to these diversities (e.g., looking at the problem from different perspectives).
In general, people tend to have either a performance orientation towards tasks (which results in being less inclined to do difficult tasks or learn from feedback) or a learner orientation towards tasks (willing to learn from feedback and to try more difficult tasks) [8].Unfortunately, we often stimulate performance orientation through the way we evaluate students.

Guidelines for teachers
Based on our results, we can derive the following guidelines to help teachers improve Software engineering students' satisfaction with their teamwork activities: 5.4.1 Facilitating the team formation process.It turns out that the initial phases in the team-forming process (e.g., finding teammates and establishing the spirit of the team) as an essential element to grant the success of collaborative learning costs time and can be challenging for some students, in particular, where there is no faceto-face communication between students.This might be the case for some of our students with no or less team-working experience.
Accordingly, it remains important for teachers to explore how to facilitate the team-forming process and lower its costs.One solution seems to change the existing individual assignments at the beginning of the course to group assignments to facilitate and accelerate the community-building process.Also, introducing some common team-forming and team-working issues and how to tackle them might be useful.Furthermore, having the first lesson face-toface, if possible, can help mitigate this issue.

Prioritizing learning over making.
As the cornerstone of project-based learning and design-based education, the development of a product is used as a vehicle to encourage students to learn something [17,23].However, there is a risk of sacrificing 'learning' for 'making a product' in such project-based learning so that the development of the final (working) products receives more priority and weight by students and teachers than the learning aspects.This risk can be even amplified by the increasing prevalence of Generative AI tools (e.g., ChatGPT) that can write code and develop software products.Further, we observed that many students opted to participate in activities that they are already knowledgeable and good at, to help have a good working product in the end (e.g., having programming, design, or writing expertise) (see above).
There are possible instructional solutions to tackle this issue, including having a kind of pre-and post-experience assessment (e.g., individual written or oral exam) of their learning to check whether they have acquired the essential concepts and skills, and considering the process of development and learning into account (e.g., design/learning as a process vs product) by introducing some formative assessment elements into the development/learning process.Further, introducing proper amount of diversity to teams can provide some learning opportunities for team members, as explained above.

5.4.3
Facilitating the whole class discussion and exchange of ideas on GitLab.We observed that although the whole-class sharing of ideas and commenting on these ideas by fellow students can be useful for learning about different points of view on the ubiquitous language and design, it can be overwhelming for many students to keep pace with the generated ideas, in particular given the asynchronous and fragmented discussions over several topics, which can lead to an information overload.Providing a more structured way, such as Think-Pair-Share [15] (i.e., think individually about an idea, discuss it with your team, and share your team's output with other teams) can be a suitable alternative.

5.4.4
Technological support for effective communication and collaboration.In a face-to-face collaboration, students can use traditional communication means such as chatting and a whiteboard to draw and communicate their ideas and designs.However, when it comes to a pure online collaboration setting such as our course, the role of technology becomes vital and students need to know about appropriate tools and technology to support their communication and collaboration around their design and development activities.
There are plenty of different tools available for such purposes and instructors can select and introduce a number of appropriate tools to support collaborative working (e.g., Google Docs for creating their design, overleaf for co-writing their report, draw.io for drawing the diagrams, or some collaborative tools for creating uml diagrams) and adapt the (group-based team-forming facilitating) assignments at the beginning of the course to use these tools.This approach would help students learn about working with these tools and how to work and collaborate and share ideas in a pure online context.

Limitations
There are some limitations to this study that need to be considered before generalizing the results.First, the students who participated in this study are adult learners, who already completed their bachelor, and often are working professionals in the IT industry.Further, this course is offered in an online and distance education university.Moreover, this study was conducted during the Covid-19 pandemic when many people around the world, including the students who participated in this course, experienced unprecedented situations and limitations, such as intertwined personal, professional, and educational duties.Given this specific context, comparing and transferring the results to a face-to-face setting needs extra research and considerations.Also, we utilized students' self-report as the main data source for this research.A more triangulated data collection strategy (e.g., including interviews, focus groups, and questionnaires) could provide more data on different aspects of students' satisfaction with their team working experience.
Finally, given the bottom-up, open, and qualitative research approach of this research, the presented results are inevitably influenced by the interpretations of the first two authors of this study.We tried to mitigate the subjective interpretation of the results by reviewing them with the third author.

Future work
There are several lines for future research in the context of this study: first, investigating and analyzing the students' experience on GitLab for sharing, discussing, and building their ubiquitous language and domain models and then developing technical or pedagogical solutions for preventing information overloading, helping them to make sense of the information, and facilitating their collaboration and learning seems a promising line of research.Such research is important because co-working around complex problems and co-creating complex products using collaborative technologies (e.g., GitLab and wikis) is a common activity in Software engineering in both educational and industrial contexts.
Another line of research is to investigate how to align conceptual learning and product development in the context of project-based Software engineering education by utilizing formative assessment approaches where not only the final working product is assessed but also the learning and development processes around it (i.e., seeing learning/design as a process instead of only a final product).This line of research seems necessary for two reasons: first, the students tend to sacrifice the learning process in favour of the final product to get a higher mark, and secondly, nowadays students can simply use emerging technologies such as ChatGPT to ask for and get a (basic) working software product and solution from these technologies.
Another interesting line for future research is to compare the factors contributing to teamwork satisfaction in the context of the Software development industry and Software Engineering education to cross-fertilize these two settings by improving SE education with practical insights from the industry and preparing students to become more satisfied and collaborative future professionals.

Figure 1 :
Figure 1: Venn diagram of confronting findings from the literature and this study

Table 1 :
Factors influencing teamwork satisfaction derived from the literature found it comforting to learn that my teammate did what he said he would do.Willingness to have active communication, collaboration and exchange feedback Being willing to have active and constructive communication and collaboration and to exchange feedback was another influential important factor in team working satisfaction, as echoed by the following negative and positive quotes by several students: -My teammate didn't want to share ideas and work together until he had finished all of the design [by himself].[He] didn't want to change the design in the report once certain difficulties arose during coding.-He was already the person in Gitlab that gave the most feedback and was interacting very actively.-We could exchange feedback very fast, always with respect for the other person with good insights (without being inflexible).Willingness to understand each other's situations This factor proves to be crucial in establishing a supportive and stimulating learning and working environment by fostering an understanding of teammates' unique situations or challenges, such as dealing with difficult scheduling due to Covid-19-related issues, and facilitating mutual supplementation in learning and understanding of concepts.