Global Software Development with Cloud Platforms

Offshore and outsourced distributed software development models and processes are facing challenges, previously unknown, with respect to computing capacity, bandwidth, storage, security, complexity, reliability, and business uncertainty. Clouds promise to address these challenges by adopting recent advances in virtualization, parallel and distributed systems, utility computing, and software services. In this paper, we envision a cloud-based platform that addresses some of these core problems. We outline a generic cloud architecture, its design and our first implementation results for three cloud forms - a compute cloud, a storage cloud and a cloud-based software service- in the context of global distributed software development (GSD). Our ”compute cloud” provides computational services such as continuous code integration and a compile server farm, ”storage cloud” offers storage (block or file-based) services with an on-line virtual storage service, whereas the on-line virtual labs represent a useful cloud service. We note some of the use cases for clouds in GSD, the lessons learned with our prototypes and identify challenges that must be conquered before realizing the full business benefits. We believe that in the future, software practitioners will focus more on these cloud computing platforms and see clouds as a means to supporting a ecosystem of clients, developers and other key stakeholders.

[1]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[2]  Munindar P. Singh,et al.  Service-Oriented Computing: Key Concepts and Principles , 2005, IEEE Internet Comput..

[3]  Bertrand Meyer The unspoken revolution in software engineering , 2006, Computer.

[4]  Randy H. Katz,et al.  Above the Clouds: A Berkeley View of Cloud Computing , 2009 .

[5]  Ravi Kumar,et al.  Pig latin: a not-so-foreign language for data processing , 2008, SIGMOD Conference.

[6]  Audris Mockus,et al.  An Empirical Study of Speed and Communication in Globally Distributed Software Development , 2003, IEEE Trans. Software Eng..

[7]  Brian Beckman,et al.  LINQ: reconciling object, relations and XML in the .NET framework , 2006, SIGMOD Conference.

[8]  Kenneth Ward Church,et al.  On Delivering Embarrassingly Distributed Cloud Services , 2008, HotNets.

[9]  GhemawatSanjay,et al.  The Google file system , 2003 .

[10]  K. Subramanian,et al.  Leveraging Resources in Global Software Development , 2001, IEEE Softw..

[11]  Kevin C. Desouza,et al.  Managing Knowledge in Global Software Development Efforts: Issues and Practices , 2006, IEEE Software.

[12]  Moshe Y. Vardi,et al.  Globalization and offshoring of software , 2009 .

[13]  Judith S. Olson,et al.  Culture Surprises in Remote Software Development Teams , 2003, ACM Queue.

[14]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[15]  Moshe Y. Vardi,et al.  Globalization and offshoring of software : a report of the ACM Job Migration Task Force , 2006 .

[16]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[17]  Sundeep Sahay,et al.  Managing cross-cultural issues in global software outsourcing , 2004, CACM.

[18]  Li-Te Cheng,et al.  Building Collaboration into IDEs , 2003, ACM Queue.

[19]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[20]  Gil Neiger,et al.  Intel virtualization technology , 2005, Computer.

[21]  Doug Johnson,et al.  Computing in the Clouds. , 2010 .

[22]  Robert Griesemer Parallelism by design: data analysis with sawzall , 2008, CGO '08.

[23]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[24]  Anne P. Massey,et al.  Getting It Together: Temporal Coordination and Conflict Management in Global Virtual Teams , 2001 .

[25]  Douglas Thain,et al.  Distributed computing in practice: the Condor experience , 2005, Concurr. Pract. Exp..

[26]  Tal Garfinkel,et al.  Virtual machine monitors: current technology and future trends , 2005, Computer.

[27]  J. Herbsleb,et al.  Global software development , 2001 .

[28]  Randy H. Katz,et al.  A view of cloud computing , 2010, CACM.