Workspace Environment for Collaboration in Small Software ...

5 downloads 187264 Views 209KB Size Report
factors to achieve success in agile software development projects. ..... Highsmith, J.: Messy, Exciting, and Anxiety-Ridden: Adaptive Software Development. Amer ...
Workspace Environment for Collaboration in Small Software Development Organization Deepti Mishra and Alok Mishra Department of Computer Engineering, Atilim University, Incek, 06836, Ankara, Turkey [email protected], [email protected]

Abstract. Effective collaboration and communication are important contributing factors to achieve success in agile software development projects. The significance of workplace environment and tools are immense in effective communication, collaboration and coordination between people performing software development. In this paper, we have illustrated how workplace environment, collaboration, improved communication, and coordination facilitated towards excellent productivity in a small-scale software development organization. Keywords: Communication, collaboration, workspace, agile methods, software development, small software development organization.

1 Introduction Effective communication, collaboration and coordination are main contributing factors for success in agile methods. Communication is defined as imparting or interchanging thoughts, opinions, or information by speech, writing, or signs. Collaboration is defined as working together to accomplish a task and discussing with each other to solve difficult problems. Effective collaboration includes both individual focused tasks and interactive group work. Coordination is defined as the harmonious adjustment or interaction of different people or things to achieve a goal or effect. In software development, effective coordination requires that different people working on a project agree on a common definition of their goals as well as share information and coordinate their activities [20]. Learning is critical in agile software development [16]. Learning is not possible without communication [21] as communication is a prime factor for learning. Without information exchange, employees cannot learn from other experts and the process of knowledge acquisition and sharing would be inhibited [24]. There are various channels of communication but face-to-face communication is found to be the most effective as it provides the instant feedback and multiple cues like expression, emotions, personal focus etc.. But the knowledge acquired through face-to-face communication can be retained for limited time then it starts diminishing gradually. So, some tools like papers, whiteboards etc. may be used to store information intended for future use. Small teams are more effective in coordination, communication and collaboration than large teams [8]. Small teams with 2 to 10 people are known to perform better Y. Luo (Ed.): CDVE 2008, LNCS 5220, pp. 196–203, 2008. © Springer-Verlag Berlin Heidelberg 2008

Workspace Environment for Collaboration

197

than same individuals working alone especially while dealing with complex problems. This view is also supported by Cockburn [8]. The physical design of the workspace also plays an important role in effective communication, coordination, and collaboration. People working in same team should be close to each other so that they can communicate and collaborate effectively as and when required to eliminate ambiguity. Geographic distance has an impact on all forms of cooperation within a team: communication, collaboration and coordination [7]. According to Heerwagen et al. [15], collaborative work environment requires spaces, furnishings and technologies that support both individual focus and group interaction, while also facilitating transitions between these activities. The main contribution of the paper is that how workspace environment facilitates towards excellent collaboration in small software development organization. The remainder of this

paper is organized as follows: The following section summarizes related work in this area. Section 3 illustrates physical settings (environment) of a small scale software development organization working on a large, complex project for supply chain management domain in which they had no previous experience. In this section, we examined how different people (developers, business experts, customers etc.) working on this project communicated and collaborated effectively without disrupting individual focused tasks for the successful completion of the project. Later, lessons learned from this real life project are discussed. Finally, the paper concludes with directions for future research in this area.

2 Literature Survey In complex situations, communication effectiveness is particularly critical to project success where multiple and integrated stakeholders teams are involved and where ‘time to market’ and project efficiency are key drivers [12]. Focusing on skills, communication, and community allows the project to be more effective and more agile than focusing on processes. According to Heerwagen et al. [15], knowledge work is both highly cognitive and highly social. Workers need time alone to think and develop ideas, drawing on their own memory, insight and analytical skills. Yet, in order for ideas and concepts to become useful to an organization, they must be available to others for scrutiny and further development [15]. Face-to-face is the richest form of communication since it is able to transmit multiple cues (e.g. voice inflection, body language) and to facilitate shared meaning with rapid mutual feedback and personal focus, feelings and emotions infusing the conversation [11]. Based on the existing literature, Kraut and Streeter [20] found that formal communication (e.g. structured meetings, specifications, inspections) is useful for routine coordination while informal communication (e.g. hallway conversation, telephone calls, workshops) is needed in the face of uncertainty and unanticipated problems, which are typical of software development. But face-to-face communication is not free from any pitfalls. Overhearing people talk especially in a shared context, triggers an involuntary reflexive response that switches attention from the task to the talking individuals [22]. According to Finsterwalder [13], verbal communication is not always well thought-out and the contents of the conversation can be forgotten during time. So, it is effective to use face-to-face communication for acquiring knowledge and clarifying

198

D. Mishra and A. Mishra

issues related to our current task. But if the information we gathered now is going to be used in future, it should be stored somewhere and that is where artifacts and tools like whiteboards, electronic display, flipcharts etc can be used. Also, when numbers of people are working in a team and/or many teams concurrently working on the different parts of a product, they must have continual access to the latest information related with the project for effective coordination. Traditionally handwritten whiteboards [25], electronics displays and other such tools play a significant role in inter and intra group communication and coordination. Important information can be made visible or available to everyone with the help of these tools. Agile software development approaches tend to rely on effective personal communication and collaboration between the project participants [1, 9]. Collaboration among participants has two major forms: one is concrete working together to accomplish a task, the other is discussing with each other to solve some difficult problems [26]. Agile methods work with volatile requirements and embrace personal communication between the participants [1]. Since the level of ambiguity can be considered high in the form of unstable requirements, it seems that personal communication is a natural choice for agile development [19]. Ambler [3] considers agile quality to be a result of many practices including effective collaborative work, and effective communication techniques. A quality product also results when the application knowledge is spread across the team and with smaller teams, it is easier to propagate this knowledge [17]. Deliberate movement to engage someone in conversation drops off dramatically after 30 meters [15]. Separation by more than 30 meters is equivalent to being in different buildings, if not in different geographical locations [2]. Beck [4] described the ideal work space for XP is to have one big room with little cubbies around the outside and powerful machines on tables in the middle. He also stressed that different teams should be separated from each other. Cubicles walls should be of half heights or eliminated entirely [4]. A common workplace solution to enhance collaboration is the provision of informal group spaces adjacent to or interspersed among personal workstations. The intent of the space is to support spontaneous meetings and informal work [15].

3 Case Study Working environment is a key point in agile methods in order to increase communication and interactions. There were two teams simultaneously working on the project to launch in the market. As it was a market driven software development, there were no real customers; there were just some prospective customers. A development team member, who had previous experience in this domain, played the role of business expert. There were three rooms on the same floor. Two of the rooms were used by developers who were working in two teams, Lets call them Team A and Team B. So, these two teams were separated by each other. Beck [4] also supports the separation of different teams. But they were close enough in adjacent rooms to communicate easily whenever required. Third room was the meeting room. In first room, the team A of technical developers was sitting on the half-cubicle desks grouped by two people. In the second room, business expert, other team of developers and other nontechnical engineers were available. These two rooms were next-door of the other so

Workspace Environment for Collaboration

199

all the people in those rooms can communicate face-to-face within couple of seconds whenever they wish. The third room was used for organizing workshops, critical release, iteration and other meetings. This is the room of the product owners and at the same time the meeting room. Another important thing which was used in this project is information radiators such as project status boards, current iteration status board, and whiteboards containing other important notes etc. An information radiator displays information in a place where passers by can see it. With information radiators, passers by need not ask any question; the information simply hits them as they pass [8].

Fig. 1. Room 1 Layout

In the first room as shown in figure 1, near the entrance was the communal area which was used for standup meetings by the team. At the far end after the communal area, each couple of developers was sitting on the desks that were separated just by a half height glass barrier. This arrangement increases team members awareness of what is going on around them without using focused attention. Visual and aural accessibility are key environmental contributors to workspace awareness [14]. According to Gutwin and Greenberg [14], although overhearing conversations can be distracting but they maybe most valuable when work is highly interdependent and when the collocated people are working on the same or similar projects. Key problems of highawareness environments include loss of privacy, loss of confidentiality, distractions and interruptions [6]. However there is some indication that a highly open environment might lead to reduced interruptions and distractions due to greater availability of non-verbal and behavioral cues that modulate interaction [5]. When people are focused on an individual task, their posture, eye gaze and demeanor indicate that they are not available for conversation. However, if they look up, make eye contact or walk around, others are more likely to perceive them as available for interaction [15]. So, with this physical arrangement of workspace, Team A members can communicate

200

D. Mishra and A. Mishra

with each other whenever the need arise but they also had their private space where they can concentrate on their individual task without interruption. Each one can see whether other person is busy or free before interrupting. The availability of individual workspaces that aid focused attention and reduce distractions and interruption has numerous benefits [15], including increased time on individual tasks [23], reduced stress [18], improved performance on mental tasks [27], and the ability to maintain one’s line of thought and cognitive flow [10]. Every cubicle was occupied by two members according to their roles and responsibility in the project (i.e. those couples were working on the same part of the product or they were pair programmers for some critical modules). The furniture was arranged in such a way that developer team A can make stand up meeting or discussions whenever they want on a white board and use the walls efficiently to put the diagrams, notes, module specifications, working plans and any other documents that should be seen by other team members. In the communal area, one white board, one more board showing the status of work which the first team was doing plus one extra board for sticking other important notes needed by the first team were fixed. White board was for discussion or elaborating any story which can be rubbed. Other board as shown in Figure 2, showing the status of the current iteration had 4 sections.

Status of stories Team is currently working on 25% 50% 75%

Stories to be covered in current iteration

S

f

Stories dropped from current iteration

100%

Finished Stories

f

Fig. 2. Status of current iteration of a team

On the upper part, there was a range from 0% to 100%. Stories, this team was currently working, were struck on this part according to percent of work done so far on them. The left down corner had an area displaying stories that needs to be included in this iteration but team had not yet started working on them. The right down corner contains stories that were already completed in current iteration. Middle down area exhibits stories that were scheduled to be included in the current iteration but excluded due to time constraint because some other urgent feature has come up from user’s side. Other team in the second room also had these three boards and anyone can know the status of the work these two teams are doing without disturbing anyone.

Workspace Environment for Collaboration

201

In the second room, near the entrance was the communal area. The business expert was sitting near the communal area at the entrance of the second room. On the far end, second development team was located in the same physical sitting arrangement almost like the first one. This way Team A members can talk to business expert without disturbing Team B members. In the communal area, the same three boards (one white board, one board showing the status of work of second team and one extra board for sticking other important notes) were located on one wall. Team B can also use the communal area in this room for standup meetings using the whiteboard. The meeting room was used for the critical release, iteration and other meetings. This was the room of the product owners and at the same time the meeting room. Here both teams’ members, business expert and other stakeholders meet before each iteration or release or whenever a demo version is shown to prospective customers. This room was also used when both teams along with business expert wants to discuss something important altogether. In this meeting room, we have whiteboard for brainstorming and another big board showing the complete information about the status of the whole project. This board was divided into three parts – one part containing stories stuck row-wise, each row representing subsequent iterations. Second part contained stories completed so far along with iteration number they were implemented in. There is one section of emergent or unscheduled stories or nice ideas which are needed to be handled urgently.

4 Lessons Learned Some lessons learned from the above agile software development project in small organization are: •







All the team members working in one team were placed in the single room with the minimum required barrier between them to protect their ability to concentrate on their work, if required. The seating place had half height glass barrier between team members. This half height glass barrier helped team members to do their individual work requiring concentration. At the same time, it did not put any limitations to communicate, coordinate and collaborate with each other that are necessary for any creative work. Every team, working on different parts of the same software, was put in a separate room. Separating two teams from each other, but still at considerable small distance to each other, helped in reducing disturbance that might have caused if they would be placed in the same room. If these teams were put in the same room and if one team wanted to have standup meeting to discuss some issues related with their part, it would have caused disturbance for other team members. But teams must communicate; collaborate with each other whenever necessary. This was carried out in the third room which was also used as meeting room for all stakeholders (management, developers, customer, people from sales etc.). Additionally, this room was used to conduct workshops initially. This room also contained information such as status regarding the project. There was a small space for standup meetings in each room. This space contained whiteboards also so that they can clarify their ideas by writing and making diagrams which is sometimes needed in addition to verbal communication.

202



D. Mishra and A. Mishra

This space also had boards showing information, such as status of the work, in each team room. Anyone can get this information just by looking at them without disturbing team members.

5 Conclusion Communication, Collaboration and Coordination (3Cs) are significant component of software development in general and specifically to agile methodology of software development which is becoming popular now-a-days. It has already proven that these 3Cs not only facilitate software development process but also ensures quality and productivity. In this paper, we have presented the comprehensive literature survey along with its observation while developing complex software using agile methods. Based on our study, we strongly believe that physical environment and the effective use of tools like whiteboards, statusboards etc. played an important role in successful completion of this project. Seperate cubicle areas helped in doing tasks which requires considerable focus and attention while half heighted glass barriers between these cubicles made their occupants visible and reachable to each other. A communal area displaying the status of the team work and other important details, facilitated productive discussion among team members as and when required. Close proximity of business expert and seperate but adjacent rooms for two different teams working on the same project also helped in inter and intra team communication, collaboration and coordination. This study will help as a guideline for small and medium software development organizations towards improving quality, productivity and timely delivery of software to their customers. Further empirical studies and its comparison in terms of quality, productivity and delivery time in different settings (environments) will be areas of further research in this direction.

References 1. Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J.: Agile Software Development Methods: Review and Analysis. Espoo: VTT Publications, p. 107 (2002) 2. Allen, T.J.: Communications networks in R&D laboratories. R&D Management 1(1), 14– 21 (1971) 3. Ambler, S.: Quality in an Agile World. Software Quality Professional, 7(4), 34–40 (2005) 4. Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Upper Saddle River (2000) 5. Becker, F., Sims, W.: Offices That Work: Balancing Communication, Flexibility, and Cost. International Workplace Studies Program. Cornell University, Ithaca (2001), http://iwsp.human.cornell.edu 6. Brill, M., Weidemann, S.: BOSTI Associates: Disproving Widespread Myths About Workplace Design. Kimball International, Jasper, IN (2001) 7. Chaffey, D.: Groupware, workflow and intranets. Digital Press, Boston (1998) 8. Cockburn, A.: Agile Software Development. Addison-Wesley, Reading (2000) 9. Cockburn, A.: Agile Software Development. Addison-Wesley, Indianapolis (2002)

Workspace Environment for Collaboration

203

10. Csikszentmihalyi, M.: Flow: The Psychology of Optimal Experience. Harper & Row, New York (1990) 11. Daft, R.L., Lengel, R., Trevino, L.K.: Message Equivocality, Media Selection, and Manager Performance: Implications for Information Support Systems. MIS Quarterly 11, 355– 366 (1987) 12. Elliott, J.J.: Design of a product-focused customer-oriented process. Information and Software Technology 42(14), 973–981 (2000) 13. Finsterwalder, M.: Does XP need a professional customer. XP2001 workshop on customer involvement, in XP2001, Cagliari, Italy (2001) 14. Gutwin, C., Greenberg, S.: A Descriptive Framework of Workspace Awareness for Real Time Groupware. In: CSCW 2001. Kluwer, Dordrecht (2001) 15. Heerwagen, J.H., Kampschroer, K., Powell, K.M., Loftness, V.: Collaborative knowledge work environments. Building Research & Information 32(6), 510–528 (2004) 16. Highsmith, J.: Messy, Exciting, and Anxiety-Ridden: Adaptive Software Development. Amer.Programmer 10(1) (1997) 17. Jain, A.K., Ting, P.D.: Software Quality Via Rapid Prototyping. In: Global Telecommunications Conference, 1989, and Exhibition Communications Technology for the 1990s and Beyond. GLOBECOM 1989, vol. 1, pp. 642–646. IEEE, Los Alamitos (1989) 18. Kaplan, R.: Urban forestry and the workplace. In: P.H. Gobster (ed.): Managing Urban and High-use Recreation Settings. General Technical Report NC-163. North Central Forest Experiment Station, USDA Forest Service, Chicago (1992) 19. Korkala, M., Abrahamsson, P., Kyllonen, P.: A case study on the impact of customer communication on defects in agile software development. In: Agile Conference, 23-28 July 2006, pp. 76–88 (2006) 20. Kraut, R.E., Streeter, L.A.: Coordination in Software Development. Communications of the ACM 38, 69–81 (1995) 21. Lei, D., Slocum, J.W., Pitts, R.A.: Designing organizations for competitive advantage: the power of unlearning and learning. Organizational Dynamics 27, 24–38 (1999) 22. Pashler, H., Johnson, J.C., Ruthruff, E.: Attention and performance. Annual Review of Psychology 52, 629–651 (2001) 23. Perlow, L.A.: The time famine: Toward sociology of work time. Administrative Science Quarterly 44, 57–81 (1999) 24. Ribbens, B.A.: Organizational learning styles: categorizing strategic predispositions from learning. Int. J. Organ Anal. 1997 5, 59–73 (1997) 25. Wears, R., Perry, S., Wilson, S., Galliers, J., Fone, J.: Status boards: user-evolved artefacts for inter- and intra-group coordination. Cognition Technology & Work 9(3), 163–170 (2007) 26. Wu, L., Sahraoui, H.: Accommodating Software Development Collaboration. In: Proceedings of the 12th Asia-Pacific Software Engineering Conference (Apsec 2005), December 15 - 17, 2005, vol. 00, pp. 33–42. IEEE Computer Society, Washington (2005) 27. Wyon, D.P.: Indoor environmental effects on productivity. In: Proceedings of IAQ 1996, Paths to Better Building Environments, Baltimore, MD, USA, 6–8 October (1996)