“Computing” Requirements for Open Source Software: a Distributed Cognitive Approach
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by AIS Electronic Library (AISeL) Journal of the Association for Information Systems (2018) 19(12), 1217-1252 doi: 10.17705/1jais.00525 RESEARCH PAPER ISSN 1536-9323 “Computing” Requirements for Open Source Software: A Distributed Cognitive Approach Xuan Xiao1, Aron Lindberg2, Sean Hansen3, Kalle Lyytinen4 1Guangzhou University, China, [email protected] 2Stevens Institute of Technology, U.S.A., [email protected] 3Rochester Institute of Technology, U.S.A., [email protected] 4Case Western Reserve University, U.S.A., [email protected] Abstract Most requirements engineering (RE) research has been conducted in the context of structured and agile software development. Software, however, is increasingly developed in open source software (OSS) forms which have several unique characteristics. In this study, we approach OSS RE as a sociotechnical, distributed cognitive process where distributed actors “compute” requirements— i.e., transform requirements-related knowledge into forms that foster a shared understanding of what the software is going to do and how it can be implemented. Such computation takes place through social sharing of knowledge and the use of heterogeneous artifacts. To illustrate the value of this approach, we conduct a case study of a popular OSS project, Rubinius—a runtime environment for the Ruby programming language—and identify ways in which cognitive workload associated with RE becomes distributed socially, structurally, and temporally across actors and artifacts. We generalize our observations into an analytic framework of OSS RE, which delineates three stages of requirements computation: excavation, instantiation, and testing-in-the-wild. We show how the distributed, dynamic, and heterogeneous computational structure underlying OSS development builds an effective mechanism for managing requirements. Our study contributes to sorely needed theorizing of appropriate RE processes within highly distributed environments as it identifies and articulates several novel mechanisms that undergird cognitive processes associated with distributed forms of RE. Keywords: Open Source Software Development, Requirements Engineering, Distributed Cognition, Case Study, Heuristics, Ruby Programming Language Sandeep Purao was the accepting senior editor. This research article was submitted on November 18, 2015 and went through two revisions. Since the 1970s, requirements engineering (RE)—a 1 Introduction cohesive set of tasks that focus on discovering, specifying, and validating what software should do in The hardest single part of building a its use context—has constituted an essential challenge software system is deciding precisely what in software development (Brooks, 1995; Cheng & to build. No other part of the conceptual Atlee, 2009). Software requirements are known to be work is as difficult as establishing the uncertain, inconsistent, and temporally volatile detailed technical requirements (Brooks, (Damian, Helms, Kwan, Marczak, & Koelewijn, 1995, p. 199). 2013; Mathiassen, Tuunanen, Saarinen, & Rossi, 2007), and weaknesses in dealing with these 1217 Computing Requirements for Open Source Software requirements’ properties create a constant source of Our knowledge of OSS RE remains limited. The project stress and outright failure (Aurum & Wohlin, small number of studies conducted suggest that OSS 2005; Hickey & Davis, 2003). Over the last decade, projects settle requirements “on the fly” as software development has grown increasingly participants resolve and negotiate requirements by distributed and dynamic, making the RE challenge relying on multiple networks of communication even more formidable. A prominent example of this (Scacchi, 2002, 2009). Past research also sheds light change is the emergence of open source software on how OSS processes differ from traditional RE (OSS) development where volunteers, who work (Crowston et al., 2007; Scacchi, 2002, 2009; Shah, under open licensing agreements, deliver software in 2006). Yet, extant studies do not provide a a collaborative and distributed manner through public comprehensive account of how RE tasks are actually development platforms such as SourceForge and accomplished and how the interweaving of GitHub (Crowston, Li, Wei, Eseryel, & Howison, participants and artifacts ultimately makes 2007). These arrangements allow source code and requirements discovery, specification, and validation related design information to be freely used, possible. In particular, past studies do not explain modified, and disseminated among large numbers of why OSS RE activities appear to be stable, resilient, geographically distributed, autonomous developers. A and effective despite the dynamic and heterogeneous consequence of the distributed structure of OSS nature of the requirements knowledge, participants, projects is that they have ambiguous “customer” roles and related processes. Simply put, there is a and few “stages” or deadlines. Rather, the software substantial gap in the understanding of how and why evolves organically to meet the needs and aspirations OSS projects successfully manage their requirements. of its attendant community. The success of several This study seeks to address this gap by focusing on OSS projects and communities implies that somehow how the social, structural, and temporal organization “the right requirements” get decided upon, addressed, of OSS activities enables effective sharing and and eventually implemented “correctly.” The ways in coordination of requirements knowledge. which this outcome is achieved are the primary focus In addressing this research question, we approach RE of the present study. as a cognitive task—a knowledge-oriented effort in Traditional structured software development follows which participants seek to make sense of what well-defined RE principles such as time-bounded software should do and why. Given the heterogeneity discovery and documentation of needs conducted by a and dynamism of knowledge and its distribution stable team of analysts in relation to a clearly across actors and artifacts during OSS (Hansen, identified set of users. This arrangement provides Robinson, & Lyytinen, 2012), our analysis draws clarity around social and technological arrangements upon the theory of distributed cognition (DCog) that identify and manage requirements. Recently, with (Hutchins, 1995; Hutchins & Klausen, 1996). This the rising popularity of agile methods, some theory expands traditional models of cognition traditional RE activities (e.g., formal requirements centered on the mental processes of individuals to documentation and modeling) have been replaced by include an analysis of distributed, knowledge-related dynamic social practices such as face-to-face activities that involve multiple heterogeneous interaction and iterative prototyping. Because of the entities—both human and artificial. At the same time, distributed and voluntary nature of OSS, it follows DCog theory extends cognitive science’s fundamental neither structured nor agile forms of RE (Crowston & view of “cognition as computation”—i.e., the idea Kammerer, 1998; Hansen, Berente, & Lyytinen, that cognition is about the creation and manipulation 2009). OSS projects eschew RE formalisms, such as of symbol systems (Simon, 1980)—into broader detailed project plans and formal specifications sociotechnical settings. Accordingly, we treat OSS (Scacchi, 2002) that form the foundation for RE as a stream of distributed cognitive activities structured approaches to RE, but they also rely on few focused on what we refer to as the process of and intermittent face-to-face interactions due to their requirements computation—the transformation of voluntary and distributed natures. In contrast, vague requirements knowledge embedded and requirements knowledge in OSS is socially embedded discovered within a broader OSS environment, in various artifacts and conversations, highly diverse, through a set of artifacts and social mappings, into and widely distributed (Mockus, Fielding, & implementable code that realizes those requirements. Herbsleb, 2002). Due to high turnover rates (Robles Such computation is both enabled and constrained by & Gonzalez-Barahona, 2006), diverse motivations the dynamic reconfiguration of actors and artifacts, (Shah, 2006), and self-assignment (Crowston et al., often framed by simple heuristic rules that guide the 2007), the configuration of actors and artifacts in OSS organization and execution of the process. projects is also inherently volatile. How then do OSS We probe the essential characteristics of RE as projects successfully carry out RE given their sociotechnical “computation” through an exploratory dynamic and distributed natures? case study of a typical midsized OSS project— 1218 Journal of the Association for Information Systems Rubinius (a Ruby programming language runtime question: How can we be sure that we are working in environment: https://rubinius.com/). Through the case the right direction with the correct requirements? study, we demonstrate that computing requirements In structured development—commonly referred to as in an OSS project are made possible by a complex the waterfall model—these three RE facets are and dynamic cognitive system consisting of executed in a sequential manner (Larman & Basili, constellations of actors, artifacts, and temporal 2003). In addition, waterfall development is largely structuring mechanisms. Requirements knowledge