Global Journal of Flexible Systems Management (March 2016) 17(1):29–40 DOI 10.1007/s40171-015-0118-9
ORIGINAL ARTICLE
A Flexible Management Approach for Globally Distributed Software Projects Vanita Yadav1
Received: 18 June 2015 / Accepted: 28 November 2015 / Published online: 30 December 2015 Global Institute of Flexible Systems Management 2015
Abstract Management of globally distributed software projects is one of the biggest challenges of the IT industry worldwide. Distributed software development involves teams working in different geographic locations and even in different countries. These distributed projects may involve teams from the same organization or have collaborative teams from different organizations that work together on a specific project. The dimension of distribution greatly enhances the complexity of managing these projects in globalized work environments. Therefore, there is a need to explore novel solutions to address this growing challenge. Research and practice have accentuated the need to embrace flexibility in management practices. This can potentially offer novel insights in unraveling the distributed work complexity. This paper is conceptual in nature and its objective is to propose a flexible management approach for globally distributed software projects. It also presents an in-depth review of literature and makes a case for embracing flexibility in management practices to address the challenges of distribution in today’s global work environments. Keywords Agile software development Distributed work Flexibility Flexible project management Offshoring Software globalization
& Vanita Yadav
[email protected] 1
Institute of Rural Management Anand (IRMA), Post Box No. 60, Anand, Gujarat 388001, India
Introduction Gone are the days when a software project manager could manage by walking around… If you are a software engineer, then in the reality of today’s business world, the chances are very good that you will be collaborating with colleagues in other countries. It is best to get ready (Sangwan et al. 2007, pp. 230). Globalization of the IT industry has witnessed software development work being spread to developing nations (Edwards and Sridhar 2005; Yadav et al. 2009). The offshoring model of software development is increasingly being replaced by the traditional co-located model, which is commonly called on-site development (Edwards and Sridhar 2006). Offshoring involves globally distributed virtual teams, which collaborate across national boundaries (Carmel 1999). It has created a global network of software activities, which is somewhat similar to the Internet’s network structure. The phenomenon of offshoring has also created a ‘‘global supply chain’’ of software producers where each producer potentially adds value to each phase of the software development process and the software gets transformed as it passes from one phase to the next (Carmel and Tjia 2005). One of the biggest challenges of IT industry worldwide is the development and management of globally distributed software projects (Sangwan et al. 2007). Barry Boehm, the founding father of software engineering, says …distributed development is not new. What is new is the radical speed up of communications and computing. This enables the distributed software teams to capitalize on labor cost differentials, multiple time zones, and local knowledge to adapt to rapid changes
123
30
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
in the marketplace, in the competition, in the IT infrastructure, and in technology more quickly and cost effectively than their competitors (Agerfalk and Fitzgerald 2006, pp. 30). Many researchers have reported different dimensions of distribution. For example, Gumm (2006) has argued that in software projects there are four basic distribution dimensions—geographic, organizational, temporal, and among stakeholders. Globally distributed software development, often called global software development (GSD), is defined as development of software using teams from different geographic locations within a country or across different countries (Sangwan et al. 2007; Yadav et al. 2007). These teams could be from the same organization or collaborative teams between different organizations. Carmel and Agarwal (2001) define this as ‘‘offshore sourcing’’, which includes outsourcing to an offshore third-party service provider or vendor. Offshore sourcing also includes insourcing work within a global corporation, for instance a globally distributed firm can insource some of its work to its own division/department situated in an offshore location. The dimension of distribution greatly enhances complexity of managing globally distributed projects. Therefore, there is an eminent need to explore fresh perspectives to address challenges of globally distributed workplaces. Researchers as well as practitioners have emphasized that there is a need to embrace flexibility in management at the theoretical level and practical level (Sushil 1997, 2015). There exists heterogeneity in literature on the definition of flexibility based on its application in different situations. The concept of flexibility could mean ‘‘openness in thinking, adaptiveness to the environment, responsiveness to change, versatility of action, contingency, non-rigidity, variability of parameters and specifications, multiplicity of process setting, freedom, liberalization, informal attitude, adjustment, compromise, autonomy of function, agility in action, resilience in systems, elasticity, looseness, customized or tailor-made solutions, and broadening of mind’’ (Sushil 1997, pp. 264). Adopting Sushil’s (1997) definition of flexibility, this paper examines flexibility in the context of managing globally distributed software projects and uses the concept broadly to include adaptiveness to the dynamic environment, responsiveness to change, non-rigidity in processes, variability of parameters and specifications, informal practices that allow for adjustment, autonomy of function, agility in action, customized solutions, and responding to changing customer requirements. This paper is conceptual in nature and it also presents a review of emerging literature. The main objective is to propose a flexible management approach for globally
123
distributed software projects. The paper is organized as follows. First, an overview of software globalization and the challenges of distributed software work are presented. Next, the advent of agile development approaches to meet the software crises is discussed. Then, an in-depth review of literature on the applicability of flexible/agile methods in distributed software projects is presented. Finally, the paper posits a flexible management approach and discusses its characteristics. The paper contributes towards building conceptual foundations and makes a case for embracing flexibility for successfully managing globally distributed work environments.
Globalization of Software and its Challenges Forces Behind Software Globalization Carmel and Tjia (2005) suggest that there is no one factor or force that brought about this globally distributed IT Offshoring phenomenon, but rather, six (see Fig. 1). The first factor is the globalization of trade in services that amounts to US$2 trillion annually (Carmel and Tjia 2005). The second factor is a business friendly climate. Many nations across the globe are offering added tax incentives and easing governmental regulations to make it easier to do business. The third factor is decreased communication costs. This can enable effortless communication and enhance work possibilities with an individual/firm located across the globe or across a nearby town. Fourth factor is the large number of trained manpower, specifically engineers, who graduate every year from technical schools and universities in India, China, and other emerging countries. As a result, many leading high technology firms employ this talented offshore labor pool irrespective of their geographic location. Next, with the
Trade Globalization
Software Commoditization
Decreased Telecommunication Costs
Business Friendly Climate
Wage Differential between nations
Offshore Labor Pool
Fig. 1 Forces behind offshoring and software globalization. Source Adapted from Carmel and Tjia (2005, pp. 5)
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
standardization of software development tools and practices, a substantial amount of software tasks has been ‘‘commoditized’’. In other words, many sub-tasks have become routinized and automated. Lastly, there is wage differential between the low wage and high wage nations, which is positioned as the central force behind offshoring. Benefits of Software Globalization Past research has greatly emphasized the potential benefits of globally distributed software development (Carmel 1999; Herbsleb and Moitra 2001; Herbsleb and Mockus 2003; Agerfalk and Fitzgerald 2006; Sangwan et al. 2007). One of the key benefits is the reduction in development costs and project cycle time as distributed teams adopt follow-the-sun approach of software development. Followthe-sun approach involves distributed teams working across different time zones. For example, one team is located in the US and it works on a project during the day (USA time). In the evening (USA time), the US team hands over the work to the Indian team using virtual communication technologies like cloud computing or file transfer. Due to time zone difference between USA and India, the handing over time is effectively morning time for the team located in India. The Indian team then works on the project during the Indian daytime when it is night in the US. Similarly, the Indian team hands over work to the USA team in the evening (India time), which is effectively morning in the US. As a result, the work never stops rather get handed over from a team in one time zone to another team in a different time zone. Other benefits include availability of a large and skilled labor pool, sharing innovative ideas and best practices across sites, and increased ability to modularize development work across-sites. The US is considered as the largest market for offshoring (Carmel and Tjia 2005). Many large corporations like IBM, Microsoft, Google, Cadence, and Oracle have offshore development activities in major offshoring destinations, such as, India, China, and Russia. Offshoring trends in Europe have relatively been slower than the US. Britain, being the exception, has gained leadership position in Europe. Literature reports many successful cases of globally distributed software development projects. For instance, Ebert and Neve (2001) narrated Alcatel’s experience and synthesized their good practices involving 5000 engineers. Battin et al. (2001) reported experiences of Motorola’s successful 3G Trial Systems project that spanned six countries. Carmel (2006) highlighted how Infosys in India successfully manages time zone differences with its global delivery model. NASSCOM’s (2007) strategic review reports that India offers and delivers the best ‘bundle’ of benefits sought from global sourcing and has eighty of the
31
world’s 117 SEI CMM Level-5 companies (Cusumano 2006). Software Globalization Challenges Even though many benefits of GSD have been reported, distributed work has many pros and cons. If globally distributed software projects are not managed carefully, then they are likely to turn any firm into a loss making enterprise (Yadav et al. 2007). Literature reports that geographic distance is likely to bring about a host of problems associated with communication, coordination, and control (Agerfalk and Fitzgerald 2006). Increased geographic distance is likely to increase temporal and sociocultural distance. Individuals located in different geographic locations are more likely to rely on asynchronous modes of communication (like email) or even adopt synchronous modes of communication (like video chat, teleconferencing or videoconferencing). Individuals in globally distributed projects are more likely to work in different time zones, which can potentially lead to temporal distance. Moreover, globally distributed projects involve collaborations between individuals/teams from different nationalities that have different cultural and societal backgrounds. This is likely to result in sociocultural distance. Table 1 summarizes the potential opportunities and threats of communication, coordination and control in globally distributed work environments. These opportunities and threats primarily arise due to distribution challenges resulting from temporal, geographical and sociocultural distances.
Software Crisis and the Advent of Agile Approaches Despite more than 50 years of software project management know-how, the perception of ‘‘software crisis’’ still exists. There are continued occurrences of software projects having exceeded budgets, exceeded schedules and increased evidences of poor quality levels (Agerfalk and Fitzgerald 2006). Practice-led agile methods are anticipated as a possible answer to this crisis, which encourage flexibility, communication, innovation, and teamwork (Augustine et al. 2005; Agerfalk and Fitzgerald 2006). Agile development methodologies acknowledge the reality that requirements will change and equip organizations with capabilities of rapidly evolving Information Systems (IS) solution (Highsmith 2002; Meso and Jain 2006). There is continued dissatisfaction in the developer community with the traditional methodologies, which are primarily plan-driven and heavyweight in nature. As a result, there is increased popularity of lightweight agile methods like Scrum, eXtreme programming (XP), Crystal
123
32
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
Table 1 Potential opportunities (?) and threats (-) in globally distributed software work
Temporal distance
Communication
Coordination
Control
(?) There is improved record of communications due to temporal distance
(?) Need for coordination is minimized
(?) Time zone differences can be exploited using follow-the-sun approach (efficient 24 9 7 work).
(-) There is reduced opportunity for synchronous communication due to time zone differences Geographical distance
(?) Nearness to markets (?) There is access to offshore/ remotely located skilled workforce (-) In person face-to-face meetings are difficult due to geographic distance
Sociocultural distance
(-) Costs for coordination related activities are usually high due to time zone differences
(-) Project management and deliverables deadlines can be subject to delays due to work being spread over different time zones.
(?) Coordination planning is more flexible (?) It is possible to maintain an audit trail of the communication channels across geographic locations (-) It is challenging to communicate a (-) There is less informal coherent vision and strategy across contact/coordination. This can decrease critical task awareness and further delay geographies response (-) Training of offshore low-cost potential rivals can be a threat
(?) Some cultures show inherent (?) There are greater learning (?) It is possible to share proactiveness, which can improve project opportunities innovation and best practices control due to increased documentation (-) Inconsistency in work practices across different cultures can hamper effective (-) Different cultures perceive authority/ (-) There are increased instances coordination of sociocultural hierarchy differently, which can harm team misunderstandings morale (-) There are increased instances of misunderstanding, which can lead to (-) Managers must adapt to local rules and reduced cooperation. regulations based on sociocultural differences
Source Adapted from Agerfalk and Fitzgerald (2006, pp. 28)
and others. (Lindstrom and Jeffries 2004; Fruhling and Vreede 2006). Agile software development approach promotes frequent as well as regular software version releases (Hunt 2006). Agile software development involves production of working software (IS solution) in conjunction with changing user requirements. The difference between the traditional and agile methods lies in the focus on ‘changing user requirements’. The approach of traditional methods, like waterfall, is to develop a working IS solution that is based upon the assumption that requirements can be fully specified and are largely stable (Nerur et al. 2005; Fruhling and Vreede 2006). Instead, the agile approach focuses on producing faster deliverables, having dynamic requirements management (iterative gathering and analysis of customer requirements), and faster product iterations producing incremental working solutions (Fruhling and Vreede 2006).
Can Agile Approaches be Used in a Globally Distributed Context? There are a growing number of exploratory research studies that examine the applications of agile methods, like XP, in globally distributed software projects (Krischer et al. 2001; Boehm and Turner 2004; Estler et al. 2014). Holmstrom et al. (2006) reason that we need to understand more about the application of agile approaches in global
123
software development. The common outlook is that agile development methods are not appropriate for globally distributed software projects. This is primarily because all the principles of the agile method cannot be applied fully in a globally distributed context. In other words, a ‘true agile’ approach in distributed software projects is not feasible. For example, the agile principle advocates communication and coordination to be informal, face-to-face and synchronous. This is not possible in a distributed context as team members are located in different geographies and cannot be face-to-face in person for project communication and coordination. Further, agile practices like pair-programming, shared code ownership and onsite customer are also difficult to implement in the context of globally distributed projects (Smite et al. 2010). However, it is still possible to tailor and adapt some of the agile principles for distributed environments. With continuous and rapid advancement of communication technologies it is possible to use rich synchronous communication media like web conferencing for online project meetings. Social media can also enable informal communication and project wikis can help in coordination across distributed geographic locations. Lee et al. (2006a) define agility in distributed software development as a collective capability of globally distributed teams, which enables the global teams to quickly develop IS systems using globally distributed IT assets, resources and expertise. It also enables them to quickly respond to emerging business opportunities at dispersed geographic locations. There are a
Author(s)
Holmstrom et al. (2006)
Agerfalk and Fitzgerald (2006)
Ramesh et al. (2006)
Wagstrom and Herbsleb (2006)
Lee et al. (2006b)
Lee et al. (2006a)
Bose (2008)
Yadav et al. (2009)
No
1.
2.
3.
4.
5.
6.
7.
8.
Flexible global software development: antecedents of success in the requirements analysis
Lessons learned from distributed agile software projects: a casebased analysis
Aligning IT components to achieve agility in globally distributed system development
Ambidextrous coping strategies in globally distributed software development projects
Dependency forecasting in the distributed agile organization
Can distributed software development be agile?
Flexible and distributed software processes: old petunias in new bowls?
Agile practices reduce distance in global software development
Article
Journal of Global Information Management
Communications of the AIS
Communications of the ACM
Communications of the ACM
Communications of the ACM
Communications of the ACM
Communications of the ACM
Information Systems Management
Journal
Table 2 Research Papers on usage of Flexibility/Agility in Globally Distributed Software work
Using two academic quasi-experiments between India and USA studied the impact of factors like requirements change, facilitation by vendor and client site-coordinators, control and computer-mediated communication on success of requirements analysis projects in a ‘‘flexible’’ offshore setting. Results suggest that formal modes of control, presence of client and vendor site coordinators positively impacts requirements analysis success
From their exploratory study of Skandia, an insurance company and their technology partner Tata Consultancy Services (TCS) proposed that agile IT strategy, infrastructure, and project management are key components for achieving agility in globally distributed software projects Synthesized lessons learnt from 12 case studies of successful implementation of distributed agile software projects. Applicability of agile principles in globally distributed teams is challenging because such teams face many difficulties like communication issues, working in different time zones, difficulty in personnel selection, lack of trust in building relationships and work-culture, and issues in knowledge management
Studied 22 globally distributed software development projects and proposed ambidextrous strategies for enhancing flexibility and rigor
Proposed a network view for coordination, or the management of dependencies among tasks
From their study of three organizations having software development centers in India, reported careful application of agility is essential in addressing challenges related to communication, control and trust across globally distributed teams
Reported short commentaries from a number of domain experts through a virtual panel debate on the application of agility in globally distributed software projects
On the basis of two case studies reported that agile practices (Scrum and XP) were useful in reducing communication, coordination and control problems in globally distributed software projects
Key findings
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40 33
123
Author(s)
Sarker and Sarker (2009)
Prikladnicki et al. (2010)
Batra et al. (2010)
Yadav (2011)
Ramesh et al. (2012)
No
9.
10.
11.
12.
13.
Table 2 continued
123 Ambidexterity in agile distributed development: an empirical investigation
Research review: globally distributed requirements engineering and agility
Balancing agile and structured development approaches to successfully manage large distributed software projects: a case study from the cruise line industry
Patterns in effective distributed software development
Exploring agility in distributed information systems development teams: an interpretive study in an offshoring context
Article
Information Systems Research
International Journal of Innovation in the Digital Economy
Communications of the Association for Information Systems
IEEE Software
Information Systems Research
Journal
Use of agile methods in distributed software development projects poses conflicting demands of alignment and adaptability in the process. Report findings from a multisite case study of three projects to examine contextual ambidexterity in these organizations. They define contextual ambidexterity as the ability to simultaneously pursue conflicting demands of alignment and adaptability in agile distributed development
This paper reviews the literature on globally distributed requirements engineering and highlights paucity of literature in this area. This study also examines the applicability of agile approach in globally distributed requirements engineering
Report findings from a cruise line industry case study covering a large and distributed project having unanticipated changes. Results suggest a balance between agile and traditional plan based methods is not only feasible but also needed. Control along with agility is required for meeting the challenging and dynamic goals of a distributed project. Agile without any structure can lead to chaos, specifically in large and complex distributed projects that require formal planning, control and coordination. They advocate usage of structure with agility for learning, discovery and project changes
Suggest that development of software must be adapted for teams that are distributed geographically. Report many factors that contribute to the rise in distributed software development like leveraging skilled resources wherever they can be found and reducing costs by working in different labor markets
Report that distributed teams are often unable to act with agility in changing situations. They attempt to provide an understanding of agility using case study of a firm called TECHCOM. Propose agility as a multidimensional concept having three dimensions—(1) Resource agility—the distributed team’s access to required resources (human and technological), (2) Process agility—evolves in the team’s systems development method, environmental scanning, and sense-making routines to anticipate issues and work processes for collaboration across time zones, (3) Linkage agility—the nature of relationships (cultural and communicative) within the distributed team and relevant project stakeholders
Key findings
34 Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
Author(s)
Persson et al. (2012)
Korkala and Maurer (2014)
Estler et al. (2014)
Paasivaara and Lassenius (2014)
No
14.
15.
16.
17.
Table 2 continued
Communities of practice in a large distributed agile software development organization–case Ericsson
Agile vs. structured distributed software development: a case study
Waste identification as the means for improving communication in globally distributed agile software development
Agile distributed software development: enacting control through media and context
Article
Information and Software Technology
Empirical Software Engineering
Journal of Systems and Software
Information Systems Journal
Journal
Examine Ericsson’s case study involving 400 persons in 40 Scrum teams located at three distributed sites. Ericsson used Communities-of-Practice as part of its move from a traditional plan-driven organization to a lean and agile organization. Results highlight that Communities-of-Practice became instrumental in the success of Ericsson’s large-scale agile implementation
Compare and contrast agile processes (Scrum, XP) with structured processes (RUP, waterfall) and examine whether the choice of a process impacts factors like success and economic gains, team motivation, and communication requirements during distributed development. Results from the study of 66 projects spanning Europe, Asia and the Americas reveal no significant difference between the outcomes of projects adopting agile processes versus the projects adopting structured processes
Examine a case study of a globally distributed agile project using ‘waste as a lens’ for finding non-value adding communication elements Identify five communication wastes and propose potential solutions to mitigate these wastes
Applying agile principles in a distributed context poses control related challenges of maintaining a balance between fixed versus evolving requirements and people versus processbased collaborations. Using case study of a successful agile distributed software project from Russian and Danish firms they examine Kirsch’s control framework elements. They analyze how control was enacted through project context and mediated communication. Communication technologies can support distributed agile processes through formal as well as informal modes of control
Key findings
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40 35
123
36 Fig. 2 Flexible management approach for globally distributed software projects. Source Adapted from Yadav et al. (2009, pp. 4)
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40 Traditional Approach
(Rigid)
growing number of studies, which provide evidences of successful adaptations of agile principles for distributed environments. Holmstrom et al. (2006) through case studies uncovered how agile practices can help overcome challenges associated with distance in globally distributed projects. They highlighted the need to examine how agile approaches can be used in practice in order to reduce negative effects of distance. Conboy and Fitzgerald (2004) emphasized that there is a need to better understand characteristics of the agile methodologies for their adoption in different contexts.
Literature Review: Application of Flexile Approaches in Globally Distributed Software Projects To assess the state of research on use of flexible/agile methods in globally distributed software development, a review of journal papers was carried out. A combination of keywords– ‘‘flexible/agile’’ and ‘‘distributed/offshore software development’’ was used to search in e-databases of EBSCO, Proquest, and Google Scholar. The search was limited to papers published in peer-reviewed journals till 2014. Table 2 presents the review results and highlights that there is a need for research on the application of flexibility in globally distributed software development. As evident in Table 2, there are 17 papers available in peerreviewed journals exploring adaptations of agile/flexible perspectives in a globally distributed context. The online search also revealed that the number of papers being presented in research conferences is much higher and growing. The review of literature clearly highlights that applying agile principles in globally distributed projects poses complex challenges of balancing fixed versus evolving requirements and process versus people-based collaborations. Most of the studies report that adoptions of agile practices helped reduce problems related to communication, coordination and control in globally distributed software projects. However, there is one study that reports no significant difference between the outcomes of projects adopting agile processes versus the outcomes of projects adopting structured processes in distributed software development. On the whole, most of the studies suggested a need for using flexibility along with rigor for meeting challenges of distribution.
123
Flexible Management Approach
(Hybrid)
Agile Approach
(Pure Agile)
Literature indicates that globally distributed software development can benefit from the flexibility offered by agile principles. Some researchers propose that firms having ambidextrous capabilities can be a potential solution to meet the challenges of globally distributed projects (Lee et al. 2006b). Such ambidextrous capabilities can be built by combining the flexibility of the agile methods with the traditional plan-based methods (Armour 2007; Lee et al. 2006a; Agerfalk and Fitzgerald 2006; Ramesh et al. 2006, 2012). Though researchers have speculated many positive benefits while proposing these new approaches, the literature review reveals that there are very few empirical field studies on operationalizing conclusive results. Notably, industry and practice is ahead of academic research in the globally distributed agile development area (Agerfalk and Fitzgerald 2006). And there is a need to better conceptualize how agile methods can be blended with structured methods for distributed projects to build theoretical foundations.
Discussion: A Flexible Management Approach for Globally Distributed Software Projects A globally distributed work environment not only brings with itself plentiful opportunities but also complex challenges. Lee et al. (2006a) argue that there are two key challenges in developing and deploying globally distributed IS systems. From a development perspective, the disparate compositions of teams in dispersed geographic locations create complexities in terms of communication, coordination, sociocultural disparities, and technology. From a deployment perspective, firms need to cope with specific local complexities and requirements of the geographically distributed project sites. Further, software development teams in corporations worldwide are often entangled in an ever-increasing work on following processes and maintaining detailed documentation. This concern inspired growth of the agile alliance movement (Fruhling and Vreede 2006). There is a growing debate in the IT industry on the suitability of agile processes for globally distributed software projects. Yadav’s (2008) doctoral thesis work reveals that many global IT firms in India operate somewhere in between the traditional and agile software development spectrum for offshore distributed projects. Cases reported in literature of organizations like
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
TCS, Sapient and Ericsson indicate successful tailoring of the agile approach for distributed projects (refer Table 2). Sapient has been able to incorporate ‘flexibility’ in its globally distributed projects by adopting a mixed focus on people, processes, and tools (Barnett 2006). The summary of literature review in Table 2 lists more such examples from Asia, Europe, USA, and Russia. There is a growing trend of applying agile methods in globally distributed work environments. Batra et al. (2010) propose control along with agility as a solution for meeting the challenging and dynamic goals of a distributed project. As discussed earlier, agile methods cannot be implemented entirely in a distributed context and need to be tailored or customized for the distributed context. This paper proposes to call the tailored version of agile methods for distributed projects as the ‘‘flexible management approach’’. On a flexibility spectrum (Fig. 2), the flexible management approach for globally distributed software projects can be visualized as an ‘agile-rigid’ or a ‘hybrid’ approach that lies in between the very rigid traditional approaches and the very flexible purely agile approaches (Yadav 2008; Yadav et al. 2009). In other words, the flexible management approach needs to be ambidextrous in nature that incorporates flexibility along with rigor. Sushil (2012) also suggests that flexible organizations are ambidextrous and are able to perform two opposing things jointly. A discussion on the characteristics of the traditional, agile and flexible approaches is presented in the following subsections. Traditional Approach In the traditional approach, the fundamental assumption is that the Information System is fully specifiable at the onset of the project; it is predictable and can be built through meticulous and extensive planning. Project communication and coordination processes are strictly formal and as per the standard operating procedures. Project management is predominantly process-centric, lays more emphasis on processes over people; involves extensive milestone planning and detailed documentation. Team sizes of traditional projects are usually large having more than 10–15 team members in a software development project reporting formally to a Team Lead who reports to a Project Manager. Agile Approach On the other extreme end of the flexibility spectrum is the purely agile development approach. The fundamental assumption of agile approach is that the Information System is not fully specifiable at the onset and evolves through iterations. It promotes smaller teams that develop adaptive software using principles of continuous improvement in
37
design and testing. Agile approach involves rapid feedback and frequent change. Communication and coordination processes are strictly informal and no formal rules prevail. Project management is predominantly people-centric where there is greater emphasis on people over processes. This approach favors quickly ‘responding to change’ over ‘following a plan’ and there is minimal documentation. Team sizes of agile development projects are usually small having 2–8 team members with informal coordination mechanisms. It also advocates onsite customers having continuous involvement in the software development process. Flexible Approach The flexible approach ranges somewhere in between the two extreme ends and lies in the middle of the flexibility spectrum. This approach blends rigor of the traditional approaches with flexibility of the agile approaches. Rigor is incorporated in terms of having some amount of formal planning, control and formal processes. For example, development of a medium to lightweight project plan, communication plan and project status tracking for globally distributed projects. Prior research also suggests that some amount of planning and control is required in distributed projects to enable effective communication and coordination between team members located at different geographic locations. No formal planning as advocated by the pure agile approaches is not advisable for distributed projects as it can lead to miscommunications and rework. On the other hand, rigid planning and extensive control advocated by traditional approaches can slow down work in a globally distributed context. To quickly respond to changing scenarios across different time zones and geographic locations, there needs to be some space for flexibility in project management processes and plans. Allowing for some flexibility will enable team members to respond to change faster and enable better communication and coordination in a globally distributed work environment. The Information System is developed in an agile manner using iterative prototypes or incremental working solutions, which helps in responding quickly to emerging or changing requirements. To deal with coordination and communication challenges arising due to globally distributed workspaces, dedicated individuals are assigned the role of site coordinators to facilitate the coordination processes (Yadav 2008; Yadav et al. 2013). The manager provides broad role guidelines to the site coordinator. However, the coordination process may be left flexible for the site coordinator so that coordination process can be more adaptive to the needs of the globalized environment and respond quickly to change as the work progresses. In other words, coordination is more people centric and the
123
38
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
Table 3 Characteristics of the flexible management approach for globally distributed software projects Flexible characteristic
Details
Fundamental assumption
It is possible to develop high-quality software by globally distributed teams using flexible principles of iterative development, prototyping and continuous improvements based upon rapid customer feedback. The flexible approach blends agility with rigor/structure
Project management
Give equal importance to people and processes. Modularize tasks, give more autonomy to team members and encourage frequent online informal meetings of distributed team members. Incorporate medium to lightweight project planning practices. Keep documentation lightweight, which is sufficient for project metrics and knowledge transfer
Requirements gathering and analysis
Acknowledge that Information Systems are not fully specifiable at the onset of the project and requirements will evolve. Use prototypes or incremental working solutions to capture emerging or changing requirements. View requirements change positively—an opportunity to better understand and capture user requirements
Coordination
Appoint dedicated site-coordinators for facilitating processes and coordinating work across distributed work locations
Communication
Encourage informal communication channels alongwith formal channels
Technology
Extensive use of ‘synchronous’ communication technology like video/web conferencing is advocated for requirements gathering, communication and coordination. Encourage use of cloud-based collaborative technologies
Development team size
Have small team sizes. Large teams need to be broken down into small sub-teams of \10 team members
likelihood of success increases with the presence of a dedicated site coordinator (Yadav 2008; Yadav et al. 2013). Smaller team sizes are preferred to respond quickly to change. If there are larger teams then they can benefit if they are further broken down into smaller sub-teams. Synchronous communication technologies (like web conferencing) and collaborative tools (like wikis and social media) are favored to encourage informal as well as formal communication channels. In the proposed flexible management approach ‘flexibility’ of the agile approaches is adapted in terms of making space for informal processes to exist within the overall project plan (Yadav et al. 2007). This involves using simplified project management practices. If the organization follows elaborate project planning and management techniques, then they are modified or tailored to create ‘light-weight’ practices, which will be easier to implement for teams and managers in a globally distributed context. In other words, ‘simple rules’ (Augustine et al. 2005) are favored and followed. Informal channels of communication are encouraged alongwith formal communication channels to address the challenges of temporal and sociocultural distances. Summary of the key characteristics of the proposed flexible approach for managing globally distributed software projects are presented in Table 3.
Conclusion Global software development (GSD) is a social process and it involves stakeholders from multiple organizational units who work towards building a software solution. The advent of agile approaches has led to the division of software project
123
managers and developers into opposing camps of traditionalists and agilists (Nerur et al. 2005). Adopting a neutral stance, some researchers propose that each method will have its own strengths and weaknesses. Therefore, a method can be considered appropriate only for a specific type of project or context (Cockburn 2002; Boehm and Turner 2004). Given the risks inherent in distributed development, there is more likely to be a tendency to favor plan-based traditional approaches that offer greater control over distributed work sites. Therefore, initial research on globally distributed software work supported usage of traditional methods like waterfall that involve extensive planning and control. However, rigidity in project processes translated into slower responses and project delays. The emerging research in this area explores adaptations of agile methods for distributed projects. Global software development (GSD) leads to creation of temporal, geographical, and sociocultural distances, which enhance complexities in implementing the principles of agile methods. For example, practices like pair programming, on-site customer collaboration, and face-to-face interaction is less likely to happen in global software development. This paper extends the discourse on application of agile/flexible methods in distributed work environments. It proposes a flexible management approach, which offers flexibility of the agile approaches along with rigor of the traditional approaches for managing globally distributed software projects. The characteristics of the proposed approach are discussed in detail in this paper. Going forward, continuous improvement in information communication technologies will drive organizations to work more and more in a distributed manner. Since, distribution translates into complex challenges of
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
managing work and teams across different geographic boundaries, the proposed flexible management approach can be a potential solution to addressing distribution challenges. Organizations adopting flexible management approaches will be ambidextrous in nature. There is a need to blend the traditional and modern management approaches to address challenges of operating in a hightech and knowledge intensive world (Sushil 2012). Even though this paper proposes the flexible approach in the context of globally distributed software projects, its principles can be extended to managing other globally distributed projects of an organization across different geographic locations. For example, offshore R&D projects, business process outsourcing projects, legal process outsourcing projects or other distributed projects of a global firm.
References Agerfalk, P. J., & Fitzgerald, B. (2006). Flexible and distributed software processes: Old petunias in new bowls? Communications of the ACM, 49(10), 27–35. Armour, P. G. (2007). Agile…and offshore: An interview with a new paradigm. Communications of the ACM, 50, 13–16. Augustine, S., Payne, B., Sencindiver, F., & Woodcock, S. (2005). Agile project management: Steering from the edges. Communications of the ACM, 48(12), 85–89. Barnett, L. (2006). Scaling agile worldwide: Sapient’s distributed agile methodology. Agile Journal. Retrieved July 27, 2008, from http://www.agilejournal.com Batra, D., Xia, W., VanderMeer, D., & Dutta, K. (2010). Balancing agile and structured development approaches to successfully manage large distributed software projects: A case study from the cruise line industry. Communications of the Association for Information Systems, 27(1), 21. Battin, R. D., Crocker, R., Kreidler, J., & Subramanian, K. (2001). Leveraging resources in global software development. IEEE Software, 18(2), 70–77. Boehm, B., & Turner, R. (2004). Balancing agility and discipline: A guide for the perplexed. Boston: Addison-Wesley. Bose, I. (2008). Lessons learned from distributed agile software projects: A case-based analysis. Communications of the Association for Information Systems, 23(1), 34. Carmel, E. (1999). Global software teams: Collaborating across borders and time zones. Upper Saddle River: Prentice Hall. Carmel, E. (2006). Building your information systems from the other side of the world: How Infosys manages time zone differences. MIS Quarterly Executive, 5(1), 43–53. Carmel, E., & Agarwal, R. (2001). Tactical Approaches for Alleviating Distance in Global Software Development. IEEE Software, 18(2), 22–29. Carmel, E., & Tjia, P. (2005). Offshoring information technology: Sourcing and outsourcing to a global workforce. Cambridge: Cambridge University Press. Cockburn, A. (2002). Agile software development. Boston: AddisonWesley. Conboy, K., & Fitzgerald, B. (2004). Towards a conceptual framework of agile methods: A study of agility in different disciplines.
39
In the ACM workshop on interdisciplinary software engineering research (WISER), Nov 5, Newport Beach, CA, USA. Cusumano, M. A. (2006). Envisioning the future of India’s software services business. Communications of the ACM, 49(10), 15–17. Ebert, C., & Neve, P. D. (2001). Surviving global software development. IEEE Software, 18(2), 62–69. Edwards, H. K., & Sridhar, V. (2005). Analysis of software requirements engineering exercises in a global virtual team setup. Journal of Global Information Management, 13(2), 21–41. Edwards, K., & Sridhar, V. (2006). Collaborative software requirements engineering exercises in a distributed virtual team environment. In G. Hunter & F. Tan (Eds.), Advanced topics of global information management (Vol. 5). Hershey: Idea Publishing. Estler, H. C., Nordio, M., Furia, C. A., Meyer, B., & Schneider, J. (2014). Agile vs. structured distributed software development: A case study. Empirical Software Engineering, 19(5), 1197–1224. Fruhling, A., & Vreede, G.-J. D. (2006). Field experiences with eXtreme programming: Developing an emergency response system. Journal of Management Information Systems, 22(4), 39–68. Gumm, D. C. (2006). Distribution dimensions in software development projects: A taxonomy. IEEE Software, 23(5), 45–51. Herbsleb, J. D., & Mockus, A. (2003). An empirical study of speed and communication in globally distributed software development. IEEE Transactions on Software Engineering, 29(6), 481–494. Herbsleb, J. D., & Moitra, D. (2001). Global software development. IEEE Software, 18(2), 16–20. Highsmith, J. (2002). Agile software development ecosystems. Boston: Addison-Wesley. Holmstrom, H., Fitzgerald, B., Agerfalk, P. J., & Conchuir, E. O. (2006). Agile practices reduce distance in global software development. Information Systems Management, 23(3), 7–18. Hunt, J. (2006). Agile software construction. London: Springer. Korkala, M., & Maurer, F. (2014). Waste identification as the means for improving communication in globally distributed agile software development. Journal of Systems and Software, 95, 122–140. Krischer, M., Jain, P., Corsaro, A., & Levine, D. (2001). Distributed extreme programming. In the International conference on eXtreme programming and flexible processes in software engineering, May 20–23, Sardinia, Italy. Lee, O.-K. D., Banerjee, P., Lim, K. H., Hillegersberg, J. V., & Wei, K. K. (2006a). Aligning IT components to achieve agility in globally distributed system development. Communications of the ACM, 49(10), 49–54. Lee, G., Delone, W., & Espinosa, J. A. (2006b). Ambidextrous coping strategies in globally distributed software development projects. Communications of the ACM, 49(10), 35–40. Lindstrom, L., & Jeffries, R. (2004). Extreme programming and agile software development methodologies. Information Systems Management, 21(3), 41–52. Meso, P., & Jain, R. (2006). Agile software development: Adaptive systems principles and best practices. Information Systems Management, 23(3), 19–30. NASSCOM. (2007). Strategic review 2007: Annual review of the Indian IT-BPO sectors. New Delhi: National Association of Software and Service Companies (NASSCOM). Nerur, S., Mahapatra, R., & Mangalaraj, G. (2005). Challenges of migrating to agile methodologies. Communications of the ACM, 48(5), 73–78. Paasivaara, M., & Lassenius, C. (2014). Communities of practice in a large distributed agile software development organization–Case Ericsson. Information and Software Technology, 56(12), 1556–1577.
123
40
Global Journal of Flexible Systems Management (March 2016) 17(1):29–40
Persson, J. S., Mathiassen, L., & Aaen, I. (2012). Agile distributed software development: Enacting control through media and context. Information Systems Journal, 22(6), 411–433. Prikladnicki, R., Audy, J. L., & Shull, F. (2010). Patterns in effective distributed software development. IEEE Software, 27(2), 12–15. Ramesh, B., Cao, L., Mohan, K., & Xu, P. (2006). Can distributed software development be agile? Communications of the ACM, 49(10), 41–46. Ramesh, B., Mohan, K., & Cao, L. (2012). Ambidexterity in agile distributed development: An empirical investigation. Information Systems Research, 23(2), 323–339. Sangwan, R., Bass, M., Mullick, N., Paulish, D. J., & Kazmeier, J. (2007). Global software development handbook. Boca Raton: Auerbach Publications. Sarker, S., & Sarker, S. (2009). Exploring agility in distributed information systems development teams: An interpretive study in an offshoring context. Information Systems Research, 20(3), 440–461. Smite, D., Moe, N. B., & Agerfalk, P. J. (2010). Agility across time and space: Implementing agile methods in global software projects. Berlin: Springer Science & Business Media. Sushil, X. (1997). Flexible systems management: An evolving paradigm. Systems Research and Behavioral Science, 14(4), 259–275. Sushil, (2012). Multiple perspectives of flexible systems management. Global Journal of Flexible Systems Management, 13(1), 1–2. Sushil, (2015). Valuation of flexibility. Global Journal of Flexible Systems Management, 16(3), 219–220. Wagstrom, P., & Herbsleb, J. (2006). Dependency forecasting in the distributed agile organization. Communications of the ACM, 49(10), 55–56. Yadav, V. (2008). Flexible global software development (GSD): Factors affecting success in the requirements analysis phase. Doctoral dissertation, Management Development Institute (MDI), Gurgaon, India. Yadav, V. (2011). A review of research in globally distributed requirements engineering. International Journal of Innovation in the Digital Economy, 2(1), 1–11. Yadav, V., Adya, M., Sridhar, V., & Nath, D. (2009). Flexible global software development (GSD): Antecedents of success in requirements analysis. Journal of Global Information Management, 17(1), 1–31. Yadav, V., Adya, M., Sridhar, V., & Nath, D. (2013). Control, process facilitation, and requirements change in offshore requirements
123
analysis: The provider perspective. Journal of Information Technology, Theory and Application, 14(3), 30–47. Yadav, V., Nath, D., Adya, M., & Sridhar, V. (2007). Investigating an agile-rigid approach in globally distributed requirements analysis. In 11th Pacific–Asia conference on information systems (PACIS), Auckland, New Zealand.
Key Questions 1. How can organizations address challenges of communication, coordination and control in globally distributed work environments? 2. How can organizations become more flexible to address the challenges of distribution? 3. Which ambidextrous capabilities need to be developed to make an organization flexible for distributed projects? 4. How can managers implement a flexible management approach in globally distributed projects? 5. What characteristics of the flexible management approach can be applied in your organization to enhance the success of distributed tasks?
Dr. Vanita Yadav is an Assistant Professor of Strategy, Innovation and Entrepreneurship. She is a Fulbright Fellow and a Postdoc from Massachusetts Institute of Technology (MIT), USA. She has a Doctorate in Management from MDI Gurgaon, India. She was also a Research Affiliate at the South Asia Institute, Harvard University for 2012–2013. Vanita has published and presented research in refereed international journals including CAIS, JITTA, and JGIM, conferences including AoM, PACIS, and SMS, and book chapters. She has published two bestselling case studies at the Harvard Business School publications online. Vanita is the Associate Editor of the International Journal of Rural Management and the International Journal of Innovation in the Digital Economy. She has worked on research projects funded by the Indian Government, Fulbright Foundation, ICSSR, European Union and others. Before joining academia, she worked in the Indian IT industry with NIIT Ltd.