Cultivating the Ideal Teamwork through Real Software Development Project Experience

Article History: Received: 10 November 2020; Revised: 12 January 2021; Accepted: 27 January 2021; Published online: 05 April 2021 Abstract: It is proven by many studies that software project failures are driven by not just from a single reason but multiple factors, combined and somehow closely related to each other. Basically, failure in projects is when the software developed is not delivered within time, within stipulated budget and of poor quality. All these rooted from poor project management and certainly in agreement with findings reported in the literature. Realizing the importance of this aspect in ensuring software project success, this paper presents our efforts in preparing future software practitioners to become readily equipped especially with teamwork essence through gaining real project work experience with the industry. Emphasizing the application of Teamwork Quality (TWQ) constructs, we invited several software houses to be part of our teaching plan and assigned our students in 12 teams from SSE4301 course to the projects initiated by each company. 14 weeks duration of coursework were given to these students to carry out their projects and at week 15 they delivered a presentation of their product in front of the industrial supervisors, lecturers and the rest of the class for assessment. Our premise is ideal teamwork influences the success of a software project. We believe this small effort capable to instill and cultivate ideal teamwork among the students when dealing with real clients and different set of expectations. Apart from that, we hope the implementation of our teaching plan that incorporated the industry involvement directly would be able to transform and elevate the landscape of teaching and learning we have been practicing for all these years.


Introduction
Many studies have been researching about why software project failed, and at the same time,introducing various ways to avoid the failure from happened. Looking at the causes of failures, study by Lawrence (2008) learnt that the problems encountered by most software projects are not technical in nature but relate instead to management. A more recent study by Marques et al. (2017) found that there are more failures in management activities than failures in Requirements Engineering and Software Testing. Both findings generally imply that poor project management practice could be the de facto to the failure of most software projects to date. Fully aware of this situation and knowing that the number of software project failures kept on increasing each year despite all the efforts put forth, we are more interested to direct our efforts into cultivating and educating the students with the essence of effective teamwork. Our premise is ideal teamwork influences software project success. This is also agreed by Noorihanet. al (2018) where according to them, to develop a successful information system, students must be taught on how to build teamwork. When each of the team member able to play their role well, able to adapt with the different set of skills and personalities, able to communicate and respect each other, that is when an effective teamwork is revealed. A good teamwork ensures that the project is well estimated, requirements and scope are carefully defined, risks are adequately assessed, and project progress is consistently monitored.
Software development project is a very knowledge-intensive and complex process which requires consistent teamwork deliverables and intense communication from the beginning to the end of the project duration. It is always about team activity, collective efforts, and cooperative aspect that determine the execution of the processes involved in the development project. We always believe that successful outcome derives from effective teamwork. If the deliverables are not as anticipated, it could be reflected that there was problem within the teamwork (S.V. Manikanthan et al, 2020).
Teamwork has been used as a common trend for learning in higher learning institutions as well as in other educational levels. In the context of higher learning institutions such as university, establishing well-composed teams is the de factor in gaining learning experience (Lingard and Berry, 2002). In order to become skilled in their future career, students need to apply their theoretical foundation in practical projects/coursework (Victor, 1996;Ghezzi and Mandriolli, 2006). When assigned to teach Software Engineering Team Project, with the course code of SSE4301 during last semester, we thought this was really a timely opportunity. Corresponds to teamwork as the highlight, we managed to come up with an adjusted course outline/teaching plan that incorporates the industrial involvement from the start. The remainder of this paper is organized as follows: Section 2 describes the importance of ideal teamwork in software engineering project. Section 3 explains the methodology of this study. Section 4 presents the results and discussions of our findings and finally Section 5 concludes the paper.

Ideal Teamwork in Software Project
Teamwork can be simply defined as cooperative and collective efforts from team members duringthe task completion. For software development, having effective teamwork is crucial to ensure softwareproject success especially for medium to large scale project. The complexity of the teamwork is evenmore pronounced when the teams are geographically dispersed. Nevertheless, there are considerably largeamount of works that have Rooting from the industrial expectation for the universities to provide future software engineers withability to work in team effectively (Marques and Ochoa, 2014), our interest in this study is on the idealperspective of teamwork. Note that there is a different between team and teamwork whereby teamrepresents the people per se while teamwork refers to the coordination, communication and otherconstructs stated in Teamwork Quality (TWQ).
The term ideal is satisfying one's conception of what is perfect or most likely suitable. For ourcase, students are assigned to different projects by different clients, limited resources and the time theyhad was only throughout the 14 weeks lecture, equivalent to one full semester. Therefore, from ourposition, ideal teamwork is when the team members can coordinate and communicate well with eachother as a team, provide mutual support to each other as necessary, contribute equally as a team, put forthample efforts and also demonstrate team cohesiveness, despite the types of software process model used,lack of resources as well as the very limited time given to accomplish their project.

3.Teamwork Quality(Twq)
Our study refers to the Teamwork Quality (TWQ) constructs proposed by Hoegl and Gemuenden(2001). There are six constructs which we believe are utmost important to reflect the team'scapabilityinfulfillingeveryaspectrequiredtoestablishqualityteamworkTheconstructare described in Table 1below. The tendency for a group to stick together in order to achieve its goals and objective

4.Theimplementation
Forsemester22018/2019,57studentsfromBachelorofSoftwareEngineeringprogrammehad registered for our course, Software Engineering Team Project, SSE4301. The credit hour for this course is 3 (2+1). There are 3 learning outcomes for this course including students will be able to1) organize appropriate software engineering team based on different types of software project, 2) develop a large and complex software project, and 3) discuss with stakeholders about the software projectrequirement.
Sixcompaniesfromthesoftware industry inKlangValleywereinvitedtobepartinourcourse planwhichwedesignedtoaccommodatethelearningbydoingconcept.Thecompaniesarenamedas clientA,B,C,D,E,andF.Eachcompanywasinitiallycontactedthroughphonecallsandemailsand once they gave verbal agreement, we issued an official invitation letter along with the group project outline and important dates that they need tofollow.
All clients are expected to: i. Produce an idea for a project title and its scoping (taking into consideration on the project timeframe).
ii. Communicating with students to describe the expectations/requirements for the project implementation.
iii. Give feedback on project implementation andprogress. iv. Attending the project presentation andevaluation. Table 2 depicts the implementation and scheduling set for the industry supervisors for their group project.

Activities Tasks Duration
Revision and forming a project team  Revision on the software project management topics especially on planning & scheduling, staffing, and assigning tasks, riskmanagement.  Find potential PM tool/software that can be used throughout the project development  Check out the processes involved to carry out such activities in 12-13 weeks'time  Study thoroughly the potential methodology; TIPS: time is aconstraint.  Draftoutwhatkindofinformationisneededfortheprojectdevelopmentandfrom whom, when it is needed and how will it betransferred. Week 9 -12 The preparation for project completion Complete the project and prepare a software project presentation Student: Perform the project based on the project plan. Company: Notify their availability for the project presentation.
For group project, it comprises of three deliverables and a presentation. The deliverablesaccumulate25%fromthetotalof35%leavingtheremaining10%forgroup presentation. Deliverable 1 is the software project planning, deliverable 2 is thesoftware requirement specification and deliverable 3 consisted of software design document, software testing record and a brief demo of the software implementation.
Among the assessmentcriteriawere:1)FollowedIEEtemplate,2)Completeness(contentsthatmust-have) and 3) Clarity of modelling diagrams, and correct use of notation. As for the presentation, it will be assessed by each of the groups' clients based on their overall execution as a team together with theirend-product.

A. Coordination
With a total of 57 students, we divided them into 7 groups whereby the minimum size of every group was 5 members and at most 10 members. This batch had been together for the past threeyearstherefore,groupswereformedbythestudentsthemselvesbasedoncertaincriteriasuch as their previous working experience, their familiarity towards each other's personality and the skills that each other possessed.
Each Coordination has been closely associated to managing dependencies between processes in softwaredevelopmentproject.Inthiscase,projectteamsmanagedtodemonstratetheirabilitiesto coordinatethedeliverablesbetweenphasesintheirproject.Theywerefullyawarethattheoutcome ofonephasewouldbetheinputofsubsequentphases.Wewereabletoensurethisbythecomplete deliverable's submission at the end of eachphase.
About the resources required by project team to carry out their works, students had no problemsgettingaccesstohardwareorsoftwareforthedevelopmentbutsomeissuesconcerning difficulty to reach the right person, in this case the experts from industry had been reported. However, this was considered part of the learning process and when explained, they understood and figured out other ways to help them solve their problems. Again, in this particular aspect, coordinationisimportanttoenableeasyaccesstotheexpertsforfuturereferenceandexchanging ofinformation.

B. Communication
ThesestudentshadtakenSoftwareProjectManagementcoursebefore,whichexplainedtheir solid understanding about the essential of planned and systematic communication for a project team. Since they were assigned to real clients, they had to have schedules and review meetings well set. Once they were assigned with the projects, they began communicating with their respectiveclientsforrequirementsgatheringprocess.Thecompanieswerealsoverycommittedto attend the students and treated them well as real project developers. Communication was done both formallyandinformally.Besideswrittenreports,projectteamsalsoutilizedotheremeansfor facilitatingcommunicationwiththeirclientsandteammatesincludingtheuseofinstantmessages, email as well as direct phone calls. Every communication activity was recorded accordingly by each project team for easyreference.
During the course, students were explained about how to manage and communicate with projectteammemberswithdifferentpersonalities.Forexample,somestudentsweretaskoriented, whileothersweremorepeopleoriented.Ontheotherhand,somestudentswereintrovertwhileothers were extrovert.
Throughout the duration of development, we often asked for feedback from the clients regarding their team's progress. And they would tell us that their team worked progressively and alsocommunicatedverywell,andtosomeextentexhibitedcouragebyconvincingtheclientswith brilliant and innovative ideas. Such feedbacks signified the high potential the projects have to be successful. It has been proven in the literature that nothing comes out good of a project without effective communication amongst teammembers.

C. Contribution
Exploring and embracing the differences are very important in ensuring successful team outcome. It is typical to have members in project team who possess different skills and abilities fromoneanother.Onemightbeverygoodinprogramming;onemightbejustmoderatelygoodin programming but exceptionally good at designing. These differences had been adjusted and managed adequately by the students. Those who might not have the skills for certain tasks were not neglected but were given other tasks that were more suitable with their abilities. At the end, everybody took part and played their roles as much as they could and contributed equally as a team to produce a collective outcomesuccessfully.

D. Support
For interdependent tasks such as software development, cooperation or mutual support amongst team members is critical. According to Cooke and Szumal (1994), both quality and acceptance of ideas generated by members of the team increase when members cooperate. Every teammemberisresponsibletounderstandeachother'sroleandwillingtoaidasnecessary.Mutual support,therefore,isanimportantcomponentofteamwork andrequired tobeabletoreachteam goals. The better team members support each other, the more effective and efficient these goals can be reached. Along the process, we have observed such a good bonding between members of the project teams especially when they were doing their works in the lab and they showed full support to each other in many occasions in regard to this courseactivity.

E. Effort
Sincethiscourseis3(2+1)credithours,threehoursperweek wereallocatedforlabsession. Intentionally, this session was allocated for the project teams to carry out their project works including team discussion, development, and document preparation and even took this time to attendreviewmeetingsattheclient'soffice.Someteamsevendisplayedtheirextracommitments byextendingtheirtimespentontheprojectoutsidethecourselectureandlabhoursandsubmitted their deliverables on time.

F. Cohesion
Acharacteristiccommonlyseeninhigh-performanceteamsiscohesiveness.Teamcohesion is commonly defined as "a dynamic process that is reflected in the tendency for a group to stick together and remain united in the pursuit of its goals and objectives" (Mudrack, 1989). In other words,teammembersmusthaveasenseofbelongingasa teamwhichthenwillmotivatethemto worktogethertoachievetheirgoals.AccordingtoMullenandCopper(1994),therearethreefacets ofteamcohesionincluding:(1)obligationtotheteamtasks,(2)interpersonalmagnetismofteam members, and (3) team spirit and pride. The students displayed their team cohesiveness through severaloccasions.Oneofthemwasduringthepresentationoftheirsoftwareprojectwherebyevery one of the team members had a role although not everyone presented. Even during the Q&A session after the presentation, everyone seemed to be supporting each other's answers and participatedequally.

6.Conclusion
Many degree programs provide students with a solid grounding in the theoretical basis of computing, but it is difficult in a university environment to provide training in the types of softwareEngineeringtechniquesandpracticesthatareusedinindustrial development projects (Chatley,2016). This paper describes about the approach we practiced cultivating the ideal teamwork through participation from the industry. High commitment and superb supervision from the industrial supervisors had been demonstrated from the beginning towards the end. We could see how each project's characteristics and its differences had shaped each team to become more accountable of theirteamwork.Realchallenges werefacedand confrontedwithoutmostdiligenceby eachteamand most importantly, at the end of the day, their teamwork effort paysoff.