Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
Academia.eduAcademia.edu
Carnegie Mellon University From the SelectedWorks of Cécile Péraire May, 2019 The Product Backlog Todd Sedano Paul Ralph Cécile Péraire Available at: https://works.bepress.com/cecile_peraire/43/ The Product Backlog Todd Sedano Paul Ralph Cécile Péraire Pivotal Software Palo Alto, CA, USA Carnegie Mellon University Silicon Valley Campus Email: [email protected] University of Auckland Auckland, New Zealand Email: [email protected] Carnegie Mellon University Electrical and Computer Engineering Silicon Valley Campus Moffett Field, CA 94035, USA Email: [email protected] Abstract—Context: One of the most common artifacts in contemporary software projects is a product backlog comprising user stories, bugs, chores or other work items. However, little research has investigated how the backlog is generated or the precise role it plays in a project. Objective: The purpose of this paper is to determine what is a product backlog, what is its role, and how does it emerge? Method: Following Constructivist Grounded Theory, we conducted a two-year, five-month participant-observation study of eight software development projects at Pivotal, a large, international software company. We interviewed 56 software engineers, product designers, and product managers. We conducted a survey of 27 product designers. We alternated between analysis and theoretical sampling until achieving theoretical saturation. Results: We observed 13 practices and 6 obstacles related to product backlog generation. Limitations: Grounded Theory does not support statistical generalization. While the proposed theory of product backlogs appears widely applicable, organizations with different software development cultures may use different practices. Conclusion: The product backlog is simultaneously a model of work to be done and a boundary object that helps bridge the gap between the processes of generating user stories and realizing them in working code. It emerges from sensemaking (the team making sense of the project context) and coevolution (a cognitive process where the team simultaneously refines its understanding of the problematic context and fledgling solution concepts). Index Terms—Product backlog, dual-track agile, scrum, lean, extreme programming, user stories, design thinking, usercentered design, feature engineering I. I NTRODUCTION A product backlog (or simply backlog) is a list of work items (e.g., user stories, outstanding bugs, various chores) used by software teams to coordinate work to be done. Developers typically build new features, modify existing features, and fix bugs based on the items at the top of the backlog. For many teams, the backlog is the primary project management artifact or primary non-code artifact. Whoever fills and prioritizes the backlog directs the product’s development. Much research has addressed the process of constructing software systems, often based on backlog items. Scrum, Extreme Programming, and Kanban all concern building working software based on some kind of work item list or pool. However, little empirical research has explored how backlog items are generated, refined, and organized over time. A common but naı̈ve response is that you just ask potential users or clients what they want. This does not explain how backlog items are generated; it just shifts the burden of designing the system onto the user. Similarly, little empirical research has investigated the roles or functions of the backlog in contemporary software projects. Again, a naı̈ve response is to assume a backlog is some agile analogue of a software requirements specification. As we shall see in Section III-C, a product backlog is not a requirements specification. While the concept of a backlog comes from Agile methods, the methods literature does not answer these questions. Agile method(ologie)s tend to focus on: the organization of development (e.g., sprints, team member roles); intra-team communication (e.g., stand-up meetings, burndown charts); and development practices (e.g., continuous integration, pair programming). They tend to emphasize working closely with users to co-design the product but do not directly address how to determine what to build. Pre-agile methods typically recommended “eliciting requirements” from stakeholders (including potential users) and then refining them until the solution is defined. This approach can have two problems: 1) Users typically do not have system requirements. Users have vague, unreliable, conflicting, evanescent preferences, values, beliefs, and guesses about what might make a product successful [1], [2]. 2) Design is a creative process—one must imagine a solution [3], [4]. Pre-agile methods offer little guidance for imagining good solutions. The lack of existing research specifically investigating the product backlog motivates the following research question: Research Question: What are product backlogs, what are their roles, and how do they emerge? This article describes the research method (Section II), summarizes the results (Section III), continues with a brief discussion (Section IV), and overviews related work (Section V). Section VI concludes the paper by summarizing its main contributions. II. R ESEARCH M ETHOD We conducted a longitudinal study at Pivotal Software— a large, international software company with twenty offices around the world—over two years and five months. We used Constructivist Grounded Theory [5], which involves iteratively collecting and analyzing data to generate and refine a theory. We began by asking, “What is happening at Pivotal when it comes to software development?” Data collection included participant observation (that is, simultaneously observing and participating in activities), interviews, questionnaires, and examining organizational documents and records. We analyzed this data using constant comparison and several qualitative analysis techniques, as described below. Because this study is so large, multiple core categories emerged, including sustainable software development [6], team code ownership [7], software development waste [8], and the topic of this paper: the product backlog. As the product backlog core category emerged, we incorporated data from a survey of the company’s product designers, performed additional interviews, and continued participant observation to refine the category. We constantly compared emerging findings to data from these three sources until reaching saturation, as described below. A. Research Context We studied Pivotal because it is successful, open to research, and interesting in its use and evolution of Extreme Programming. More specifically, we studied Pivotal Labs: a division of Pivotal that helps to transform clients’ engineering cultures while building products. Client personnel work with Pivotal personnel at a Pivotal office where they can experience Extreme Programming [9] in an environment conducive to agile development. Typical teams include about six software engineers, one product designer, and one product manager. In some smaller teams, one person fills both the product designer and product manager roles. Larger projects are organized into smaller coordinating teams, each with one product manager and one or two product designers. Pivotal has practiced Extreme Programming [9] since the late 1990s. While each team autonomously decides what is best for each project, the company culture strongly suggests following all of the core practices of Extreme Programming, including pair programming, test-driven development, refactoring, weekly retrospectives, daily stand-ups, prioritized backlog, and team code ownership. We observed eight greenfield and brownfield projects from various domains, including automotive, networking, healthcare, publishing, e-commerce, virtual machine management, and a multi-node database. Each project had one to three product managers, zero to two product designers, and four to 28 developers. Project details are available elsewhere [10]. B. Data Collection and Analysis This paper analyses more diverse data than is typical in grounded theory studies. Participant observation produced voluminous field notes, supported by internal documents and code artifacts. Intensive interviews of 56 product designers, product managers, and software engineers who had experience with Pivotal’s software development process from ten different offices helped us enter into participants’ perspectives. (“Intensive interviews” are “open-ended yet directed, shaped yet emergent, and paced yet unrestricted” [5].) An informal online questionnaire, with responses from 27 of 71 total product designers (a 38% response rate), produced further insights into their practices. The first author iteratively collected and analyzed field notes and interviews; used line-by-line coding [5] to identify nuanced interactions in the data and avoid jumping to conclusions; and reviewed the initial codes while reading the transcripts and listening to the audio recordings. We discussed the coding during weekly research collaboration meetings and recorded insights from these discussions as grounded theory memos [11]. We stored initial codes in a spreadsheet and used constant comparison to generate focused codes. The first author routinely compared new codes to existing codes, refining them and eventually generating categories. We periodically audited each category for cohesion by comparing its codes. When this became complex, we printed codes on index cards to facilitate reorganization. We wrote memos to capture the analysis of codes, examinations of theoretical plausibility, and insights. Eventually, a small number of core categories, including the product backlog, emerged. An online appendix contains examples of categories and coding.1 We drew on other relevant documents, code artifacts, and questionnaire results to elaborate and saturate categories. Since line-by-line coding of such documents is intractable, we instead wrote memos about them, as recommended by Glaser [12, p. 98]. We continued theoretical sampling on all data sources until no further backlog-related categories were evident (i.e., theoretical saturation). Theoretical saturation was not truly achieved until midway through writing this paper, which is normal for Grounded Theory studies [5, p. 285]. The articulation of the results, below, was the key indicator that saturation had been reached. Data collection and analysis were continuous but not uniform (e.g., some interviews were too close for much intervening analysis). Similarly, some weeks we did considerable analysis; others very little. This is not ideal but is unavoidable in a longitudinal inquiry where everyone has conflicting commitments. A more detailed account of our data collection and analysis strategy is available elsewhere [10], [13]. III. R ESULTS Generating, refining, and sequencing solution concepts, features, stories, and eventually the backlog appears to be one large, tightly-interconnected process that cannot be divided into neat phases. However, we can divide our observations into interrelated practices (Section III-A) and obstacles (Section III-B) that resonate with participants and then abstract them into a more transferable theory of the backlog (Section III-C). 1 https://www.researchgate.net/publication/330823601 The Product Backlog - Grounded Theory Codes Fig. 1: Balanced Team A. Practices We observed 13 practices related to backlog generation and refinement. They are summarized in Table I, and their relationship to the backlog is illustrated in Figure 2. This section elaborates each practice. While we present the practices in a neat, idealized sequence for clarity, in reality their execution order is messy, with parallelism, backtracking, and interdependency. 1) Balanced Teams and Dual-Track Agile: Pivotal uses two important organizational systems: “balanced teams” for people and “dual-track agile” for activities. A balanced team, as illustrated in Figure 1, “is an autonomous group of people with a variety of skills and perspectives that support each other towards a shared goal” [14]. Here is how one Pivotal designer explains balanced teams: “Design is the voice of the users; its main role is to advocate for the user’s needs. Development is the voice of the system; its main role is to help the team understand what’s possible and advocate for good system architecture. Product management is the voice of the business; its main role is to advocate for the business’s needs and facilitate prioritization of the team’s backlog” (Participant 16). In other words, the teams we observed included members with diverse backgrounds, who combine business knowledge (product managers), design skills (product designers), and fullstack development / testing skills (engineers). All three roles are needed to keep the team balanced, like the three-legged stool shown in Figure 1. If a role is under- or over-represented, the team becomes unbalanced, and the product may suffer. Meanwhile, dual-track agile is a kind of continuous software engineering [15] in which activities are organized into two groups. We call these groups “tracks” because they are continuous and parallel, like train tracks. Track one typically includes research, negotiating with stakeholders, drawing user interface mockups, and writing user stories. Track two typically involves building, testing, architecting, refactoring, deploying, and maintaining the product. The whole team is involved in both tracks, but product designers focus on track one while engineers focus on track two. Ideally, track one stays ahead of track two so engineers always know what to do next. These tracks are not phases, and the team does not iterate between them. These practices create the need for a backlog. Dual-track agile creates the boundary that the backlog helps to span. Balanced teams create the conditions under which a backlog, rather than a different kind of artifact, is useful for spanning the boundary between the two tracks. 2) Persona Modeling, Stakeholder Mapping, Interviews, and Affinity Mapping: We observed product designers leading the team in defining one or more proto-personas. “A persona is a description of a fictitious user based on data from user research” [16, p. 58; emphasis ours]. A proto-persona is a description of a fictitious user that is based on intuition or simply made up [17]. Personas typically represent a group of similar users (or potential users) with a picture, motivational quote, demographic information, behaviors, needs, and goals. Participant 56 explains: “When we’re doing exploratory research, we are looking for patterns in people that can form a persona. We are looking for patterns in what these people do that are problematic.” We also observed some product designers leading the team in drawing a map of a product’s stakeholders—especially individuals inside the client organization (e.g., product sponsor, related business units, marketing, executives). The product designers used their proto-personas and stakeholder maps to determine who to interview. We observed product designers interviewing clients, current users of an existing system, or people in a particular demographic (e.g., drivers of Korean cars) who might use a new system. All observed projects and nearly all surveyed product designers relied on user interviews. Interviews primarily asked open-ended, non-leading questions; some used interview scripts or topic maps as guides. In some interviews, the interviewee would use the product at home, at work, or at a Pivotal office. The entire team often attended. While the interviewer asked questions, one or more team members wrote key ideas on sticky notes. Different color sticky notes were used for each interview to facilitate traceability. Interviewees share their ways of working, beliefs, ideas, values, attitudes, and preferences; however, interviewees do not consult an internal directory of enduring preferences. Rather, the interviewee and interviewer spontaneously co-construct evanescent preferences [2]. The purpose of these interviews is to understand the interviewee, not to elicit requirements or discover solutions. None of the product designers we observed use the term “requirements.” Participant 42 explained: “My goal is to listen. Once a client asked me, ‘what do you make of all the interviews you’ve done so far?’ I reminded the client, ‘at this stage, my goal is to listen and absorb, my processing will come soon.”’ Product designers intentionally resist solution-focused thinking (which they call “solutionizing”) during interviews. TABLE I: Practices Related to Product Backlogs Name Brief Description Balanced teams Balancing team composition with experts in business, product design, and software development. Dual track agile Organizing the work into two “tracks.” Track 1 typically includes research, negotiating with stakeholders, drawing user interface mockups, and writing user stories. Track 2 typically involves building, testing, architecting, refactoring, deploying, and maintaining the product. Stakeholder mapping Drawing a diagram of individuals who are interested in the success of the product. Interviewing Semi-structured discussions with stakeholders (e.g., users, product sponsor). Persona modeling Creating fictional users (character sketches) to reason about who will use product features. Affinity mapping Organizing data from user interviews or ideation sessions to generate insights. Design studio Converging on a product concept by iterating between generating and discussing design ideas. Sketching / mockups Drawing informal models of graphical user interfaces. Usability testing / validation testing Reviewing mockups with users. Writing user stories Writing brief, informal descriptions of some aspects of a software system. Story showcase Building a shared team understanding of upcoming user stories. Backlog grooming Refining and resequencing user stories. Accepting stories Evaluating delivered work. Product designers would stop interviewing when they felt that they understood users’ needs around a particular feature set and would resume interviewing when additional information was needed. “I interview until I do not learn new things from interviews” (Participant 52). They typically began with about five interviews per proto-persona [18]: “I have had projects where there are multiple personas so I would say like five for one persona is good” (Participant 41). Product designers use interviews to refine their protopersonas into user personas. They believe that personas help the team understand and empathise with users, and therefore create products that better support user needs and goals. “This builds empathy for your user base. Going through [these practices] really helps with decision making moving forward” (Participant 41). Later, they use personas for “persona validation;” that is, predicting whether the user group represented by a persona will use a product, feature, or solution concept. After interviewing several people, product designers sometimes realized that the persona would not use the product. The team then had to choose whether to redesign the product for the opportunity provided by the target persona (i.e., “invalidate the product”) or find a new demographic that will use the product concept (i.e., “invalidate the persona”). We observed teams synthesizing what was learned during interviews using affinity mapping [19]. Teams clustered sticky notes from user interviews on a large whiteboard or wall. They would place and rearrange the notes into cohesive clusters, leading to “insights” about user needs. Ad hoc, informal conversations would often trigger rearranging the notes and clusters. Each new design insight was recorded on a new sticky note and added to a special “design insights” list. After all the sticky notes were on the board and all clusters finalized, the team would discuss each cluster and its related insights on user needs. Some teams perform this exercise one interview at a time to incorporate the data quickly; others do a batch of interviews to allow the conversations to blend and percolate. Many participants refer to this process as “synthesis.” Participants see adding customer requests directly to the backlog as an anti-pattern: it “creates a Frankenstein amalgam of features. Microsoft products exhibit this. Instead, we want insight-synthesized research. Patterns emerged from the synthesis of data. Insights earned their way” (Participant 17). Persona modeling, stakeholder mapping, interviews, and affinity mapping help the team learn about the domain. This knowledge informs the user stories or other items that constitute the product backlog. 3) Design Studio, Sketching Mockups, Usability Testing / Validation Testing, and Writing User Stories: Once product designers felt that they had a reasonably good understanding of user needs, they generated solution concepts to satisfy those needs. For instance, we observed product designers leading the team in what some participants call “design studio.” Each member individually sketched mockups of webpages or mobile screens and illustrated how users would interact with them. Teams iteratively examined the mockups and drew new ones, leveraging each others’ ideas. Teams eventually converged on a promising solution concept. Designers iterated between refining the mockups and conducting further user interviews (in which they shared mockups with potential users, provided a task or goal, watched the users interact with the mockups, and listened to the user’s feedback). This “usability testing” would continue until the new feedback seemed inconsequential. It would either validate or invalidate each feature represented by the mockups. As a product and the team’s understanding of users mature, product designers did less exploratory research and more validation and usability research. They relied more on telemetry from working software. However, when new assumptions or questions arose, designers often reverted to interviewing. In all projects, we observed product managers writing user stories based on mockups, discussions with product designers, and their own research. User stories were typically written only for features with positive usability feedback. A user story is a brief, informal description of some aspect of a software system. Large, vague stories are called epics. While user stories vary widely between organizations, most observed stories included a motivation and acceptance criteria. The brief motivation statement followed the pattern: As a <user> I want to <action> so that <value>. This is some- times called the Connextra template [20]. The acceptance criteria followed the pattern: Given <context>, when <condition> then <action>. This is sometimes called Gherkin syntax [21]. When working on a new feature, the product manager would list several story titles (e.g., “Michael logs in,” “Michael creates an account,” “Michael logs out”) in a sequence and then elaborate and refine each story, sometimes combining small stories or splitting up large ones. Product managers aimed to identify the smallest possible features that still provide user value. Stories are typically composed directly in Pivotal’s project management software, Pivotal Tracker.2 Stories are often linked to a relevant mockup: “I try to attach [mockups] to every story. I try not to write a story before a [mockup] is done, and that works out really well” (Participant 1). No simple mapping links user interviews, user needs, design insights, mockups, epics, and user stories. The team does not translate interviews into user needs and design insights, transform insights into mockups, deduce epics from mockups, or decompose epics into smaller stories. All of these verbs misrepresent the cognitive process of designing. Such terms present designing as symbol manipulation—like solving highschool algebra problems. You cannot simply rearrange interview notes into user needs and design insights. Each insight entails a creative leap to one small area of an enormous, ambiguous, multidimensional solution space. When product designers draw a mockup, they are informed by their multifaceted understanding of the project context, including their memories of user interviews, notes, design insights, education, experience, preconceptions, and biases. Similarly, when product managers write stories, they are informed by their multifaceted understanding of the project context as well as relevant mockups. Each transition is a predominantly improvised, creative act. Much has been written about how design thinking involves—but is not limited to—writing, drawing, problemsolving, and decision making (cf. [22], [23]). Critically, the evolving solution concept triggers reframing of the project context. This oscillation between ideas about the project context and ideas about potential solutions is essential to design thinking (see Section III-C). Design Studio, sketching mockups, usability testing / validation testing, and writing user stories all contribute to the generation of backlog items. 4) Story Showcase, Backlog Grooming, and Accepting Stories: We observed teams meeting to discuss upcoming stories. The product manager and product designer(s) shared their understanding of the stories with the engineers. While the product manager wrote the stories before the meeting, teams often revised stories, combined smaller stories or broke up larger ones, and clarified acceptance criteria. The engineers would examine the acceptance criteria to better understand what ‘done’ means for each story and discuss the effort required. During these meetings, team members broadened 2 Publicly available at pivotaltracker.com their shared mental model of the work to be done, and everyone would leave with a deeper, clearer understanding of the project context, desired product, and immediate stories. We call this meeting a story showcase. For historical reasons, some participants call it an “iteration planning meeting,” even though most projects are iteration-less, and the meeting is mostly about sharing not planning. Unlike planning meetings in Extreme Programming and Scrum, the team does not commit to the work to be done in a specified period. The product manager may change or re-prioritize any unstarted story. We observed product managers periodically (e.g., right before a story showcase) examining the backlog to verify that stories were developer-ready and prioritized to deliver the most value to the user quickly. We did not observe product managers prioritizing the entire backlog. Instead, product managers appear to move just enough high-priority stories to the top of the backlog to stay ahead of the engineers. While the backlog appears as a continuous list, there is an imaginary line between the top n stories, which have been recently prioritized, and stories n+1 onwards, which may have once been prioritized but are now in no particular order. In some instances, we observed engineers getting ahead of the product manager and beginning story n+1 without realizing that they had moved into the unprioritized section of the backlog. We observed product managers shaping the product direction by resequencing stories based on conversations with stakeholders about user research and business needs. We also observed teams asking product managers to resequence some work to make the story implementation easier (e.g., building user creation before user login). Backlog grooming is the process of reviewing and refining a backlog. It includes both reviewing stories for clarity and completeness and sequencing (or resequencing) stories. We use the term accepting stories to denote a process we observed in which product managers evaluate delivered work. The product manager would verify that the implemented story functioned according to the provided acceptance criteria. If it did not, the product manager would reject the story (necessitating rework). Story showcases, backlog grooming, and accepting stories all involve managing the backlog. The story showcase also helps the team develop a shared understanding of upcoming stories in the backlog. B. Obstacles The teams we studied routinely encountered numerous obstacles revolving around a general theme of stakeholders misunderstanding the nature of product design. The term design can refer to many different things even within software engineering. In the broadest sense, design means specifying the properties of an object [24], including what it does (feature selection), how users interact with it (interaction design), how it looks (visual design), how it is organized (architectural design), and exactly how it works (low-level design). Let us consider some specific events from our research. 1) Preconceiving Problems: In a government agency project, Participant 25 felt that the team found the problem they were told to find: “They told us to go and look at grant life cycle management, so we went and looked at grant life cycle management, and then, ultimately, we created a prototype for managing a grant life cycle...” The designer was frustrated because they saw better ways of framing the problematic situation, but there was too much momentum around solving the pre-conceived problem. This misunderstanding concerns the way design problems are framed. Software engineering literature often assumes that the problem to be solved is simply known or given. In reality, stakeholders often agree that a situation is problematic but disagree on the exact nature of the problem(s) [1]. Moreover, framing a problem and generating a solution concept are the same cognitive process [25]. Overspecifying a problem for the designer actually impedes effective solution generation [26]. 2) Preconceiving Solutions: A more extreme version of preconception is a client arriving with a dubious problem and an ill-considered solution concept. In one project, the client wanted a healthcare application. They had in mind a very detailed, extensive feature set and a particular proto-persona who would use these features. After several interviews with prospective users, the product designers invalidated the protopersona. The client argued that ‘the interviewees who gave us that feedback were not our real end users’ and identified a new proto-persona, which was also invalidated by research. The client identified a third proto-persona that was again invalidated. The client rejected good user research because it invalidated their business model. The team relented and built the product the client wanted. A year later, the company dismissed their engineers because no one used their product. “The stakeholders can assume that they know what the problem is and what the solution is before we have really had time to process what we have learned. We will start interviewing. People are saying ‘I know it! We do not have to keep doing this research,’ and I am saying ‘no, no, we have only talked to two people, we do not know what is there yet, we do not know if that is the solution” (Participant 41). At Pivotal specifically and in the interdisciplinary design literature more generally, solution concepts emerge from a complicated process of studying stakeholders, simultaneously framing a problem and generating fledgling solution concepts, sharing initial results with stakeholders, and elaborating a tentative solution. Clients arriving with premature problem frames or solution concepts, which have not emerged from careful research and reflection, obstruct design. 3) Pressure to Converge: Creative design is closely related to divergent thinking [27]; that is, exploring many dissimilar ideas. Insufficiently exploring the design space and converging prematurely on a poor solution concept is therefore a major threat to innovation. We observed teams spending several weeks researching the problematic context, generating solution concepts, and validating feature ideas with prospective users. In multiple projects, we observed teams iterating on many ideas in a short period, then selecting one with which to move forward. The period of entertaining divergent ideas was always brief: “The sketching exercises take us about two to five hours. We are divergent with many different ideas, and then we keep doing it until convergence” (Participant 51). To the participants, their convergence on a fledgling solution concept in a few hours does not feel premature. Participants feel that they resist early “solutionizing,” consider many alternatives, and have the flexibility to pivot to another solution depending on the findings. Some designers feel that the diversity of a balanced team leads to more creative solutions: “Oftentimes, the developers give us the most interesting points of view; they flip the designer’s model with their sketching” (Participant 44). To an outsider, however, given the complexity of the projects involved, two to five hours does not seem like much time to generate and consider many genuinely innovative solution concepts. What is clear is the tension between time pressure and divergence. Some clients push for an aggressive schedule and dismiss divergent thinking as a waste of time. Expert designers in other fields exhibit similar patterns [22]. Despite the common advice to generate several alternative solution ideas, expert designers tend to converge rapidly on a single concept and resist radical reformulations [23]. 4) Ambiguity: We observed participants struggling with ambiguity on several occasions. Survey respondent 25 said, “It felt odd to walk in every day not knowing what you would tackle or try to learn.” Indeed, this happens so often that many product designers have grown accustomed to stakeholders panicking over ambiguity. Participant 41 explained that “people can be uncomfortable with how open-ended and exploratory it is; sometimes the amount of unknown is very uncomfortable.” A common sequence we observed begins with a client arriving with some idea about “the problem” and a tentative solution, and expecting the team to refine and elaborate them. Instead, user research tends to undermine preconceptions before offering new insights. Structure decreases before increasing. Participants often find this stressful and confusing. “Most of the time, when clients are upset, it is because we have not managed the ambiguity well ... [Retaining their] tangible idea of what the product is going to be is extremely stressful because their [envisioned] product may not actually be what is right for them” (Participant 25). Even when the team does not have a preconceived solution, embracing ambiguity is challenging. On a disaster assistance project, an experienced product designer expected the process to produce more questions and more ambiguity before finding a solution. As ambiguity increased from broad user data, the team became pessimistic while she was optimistic. The team kept saying “there is nothing to solve,” but she persevered and discovered “enough nuggets” to design mockups for two products. The team picked one and released a product that satisfied the users’ needs. Ambiguity is unavoidable when designing systems for complex organizations with multiple, quarreling stakeholders. However, product managers and engineers often lack design thinking skills and familiarity with this process. Agonizing over ambiguity appears to affect team morale: “Product managers struggled with it the most. They are used to having a goal and being able to work towards that goal ... Pivotal employees who are very uncomfortable with the ambiguity make it hard for the team.” —Participant 25 To help the team cope with ambiguity, product designers may “tell stories and talk about previous experiences; connect the client to former client PMs who have been there; reassure that we are on track and the ambiguity is normal.” (Survey Participant 11). They “help them understand that we are in this together. We have a process that will help us find the best ideas and solution” (Participant 52). Participants appear to become more comfortable as they get more experience with Pivotal’s design process. 5) Time Pressure: Meanwhile, time pressure inhibits the entire design process. Interviewing users, researching organizations, synthesizing design concepts, and iterating on mockups is time-consuming. Product designers can feel acute pressure to truncate user research and deliver immature mockups before they have a sophisticated understanding of the project context. Time pressure is often exacerbated by clients not understanding the design process and its value or thinking they have already designed the product. “Sometimes people feel the anxiety of this taking too long, and push to start coming up with the solution” (Participant 41). On the healthcare application mentioned in Section III-B2, the client arrived with a preconceived solution concept, and the product designer felt intense pressure to deliver unvalidated mockups to the engineers. The team coped by having the engineers focus on configuring the tech stack, adding continuous integration and easy deployment to the production environment, and delivering web pages with no styling. In other words, they delivered something small that was very easy to change while the designer refined her mockups. However, this led to substantial stress and rework, which are both intrinsically wasteful [8]. 6) Blocking Access to Users: In one extreme case, as Participant 41 explains, “I could not even create a persona for the customer service agent because we were not allowed to talk to them.” The project was a call center application. The client refused to let customer support representatives be interviewed. The client believed that they were too busy to be interviewed and that call center metrics and case notes would be sufficient to inform the new product. Without access to the users, the product team could not develop deep insights into how to improve the users’ efficiency. They could not create realistic personas or evaluate usability. The absent users fundamentally broke the team’s process. To deliver the product, the team had to speculate about the personas, needs, and behaviors. The team could not validate whether the proposed solution would address the users’ needs. C. Theorizing the Backlog We observed teams organizing activities into two tracks with a soft but unmistakable boundary between them. The first track involves researching the project context and generating solution concepts, mockups, and user stories. The second track involves delivering a software product based on those concepts, mockups, and stories. This observation leads us to adopt Glaser’s cutting point theoretical coding family, which he describes as indicating a “boundary, critical juncture, cutting point, turning point, breaking point, benchmark, division, cleavage... This family is a variation of the degree family. Degree focuses on the full range, while here we focus on significant breaks or cutting points on the range. Cutting points are very important in theory generation since they indicate where the difference occurs which has differential effects” [11, p. 76]. As illustrated in Figure 2, the product backlog spans the boundary between the two tracks in dual-track agile. Track one fills the backlog (with stories) while track two empties the backlog (by implementing the stories). Of course, not every team that has a backlog uses dual-track agile, but a soft division between generating and implementing solution concepts is consistent with not only our understanding of Scrum, Kanban, and Extreme Programming but also our past observations of both professional and student developers. The idea of the backlog spanning the boundary between different kinds of work (and the different kinds of professionals who do the work) is crucial to answering the questions motivating this paper: what is a product backlog, what is its role, and how does it emerge? 1) What a Product Backlog is: The product backlog is an informal model of work to be done. The backlogs that we observed are partially-ordered lists of brief work item descriptions. Some items include effort estimates, dependencies, or pointers to various artifacts elaborating on them. Because backlogs are used in agile development, only immediate work may be sequenced. As a model, the backlog is useful for externalizing cognition and memory. A large software system could have thousands of stories—far too many to consider at once or to remember for long. The backlog allows, for example, a product manager to externalize thoughts about a large number of features, see the big picture, introduce changes, and prioritize effectively. Similarly, the backlog can help engineers remember what to do next, drill down into the specifics of the work to be done (e.g., by looking at a user story, mockup, and acceptance criteria), and recall the details of a discussion several days prior. A backlog is neither a requirements specification nor a design specification. The backlog predominately communicates the desired order of work items. It lists neither design details nor the needs that features are supposed to meet. The backlog items (i.e., stories) are reminders of conversations, not self-contained specifications. 2) The Role of a Backlog: A product backlog is a boundary object that bridges the gap between generating and implementing user stories. Fig. 2: Theory of Product Backlogs A boundary object is an artifact that different people can use and interpret in different ways [28]. For example, the same map can be used by hikers to find a campsite or biologists to study animal movements. Boundary objects not only facilitate knowledge sharing and coordination [29] but also help groups cooperate without consensus [30]. We observed teams using backlog grooming and story showcase meetings to build a shared understanding of the product vision and work to be done. User stories both facilitate this conversation and later provide a reminder of it. Seeing the backlog as a boundary object helps us understand the difference between a backlog and a specification: a good specification replaces face-to-face communication while a good backlog facilitates face-to-face communication. Conceptualizing the product backlog as a boundary object assumes that it mediates communication between different groups or roles [30]. In our observations, the backlog facilitated communication between professionals with different backgrounds: product designers, product managers, and engineers. 3) Where Backlogs Come From: Backlogs emerge from three interconnected processes: 1) Sensemaking. Pivotal product designers typically deploy several practices—including stakeholder mapping, interviewing, persona modeling, and affinity mapping— to learn about the domain. Regardless of whether a project is outsourced, offshored, or in-house, “To convert a problematic situation to a problem, a practitioner must... make sense of an uncertain situation that initially makes no sense” [25, p. 40]. In sociology and management as well as software engineering, this activity is called sensemaking [31], [32]. 2) Context-solution Coevolution. A designer’s thoughts oscillate between a tentative problem frame and fledgling solutions, such that understanding of the problematic context and solution concepts coevolve [23], [22], [32]. We observed coevolution in both affinity mapping (where the teams oscillated between writing design insights and re-organizing needs categories) and design studios (where the sketching of mockups triggered reconceptualizations of the project context and vice versa). We observed teams continuing to refine mockups and their understanding of the context after usability testing and while writing stories. 3) Boundary Spanning. While the product designers lead track one and engineers lead track two, we observed product managers leading the team in deploying several practices—including backlog grooming, story showcasing and accepting stories—to bridge the gap between the two tracks. Participant 1 explained: “You meet every week, and you feel like you have this check in... I feel like this helps bridge the gap between what’s going on in the design world and the dev world. Having those check-ins really help.” Following previous research, we call this category boundary spanning [33], [34]. To be clear, the two tracks of dual-track agile and the boundary spanning between them are ongoing, parallel processes, not linear phases. IV. D ISCUSSION This section evaluates our study using appropriate quality criteria, including those proposed by Charmaz [5]. 1) Credibility: “Is there sufficient data to merit claims?” This study relies on two years and five months of participantobservation, 56 intensive open-ended interviews, an informal questionnaire, and archival records. 2) Originality: “Do the categories offer new insights?” This article provides the first empirically grounded explanation of how product backlogs are generated. The definition of the backlog and the misunderstanding design obstacle are also novel. 3) Resonance: “Does the theory make sense to participants?” We presented the results to the organization. Six participants reviewed the results and this paper for member checking [35]. They indicated that the results and theory resonate with their experience; for example: • • • “This paper combines all the things that were in my head and helped me to connect dots” (Participant 52). “Context-solution coevolution speaks to the back and forth nature of learning about this specific problem (context) and testing a solution’s impact (if any) in a continuous way” (Participant 56). “It gave me a different relationship to the backlog by putting it between the 2 tracks” (Participant 57). This process produced no significant changes, which is not surprising because participant observation mitigates resonance problems. 4) Usefulness: “Does the theory offer useful interpretations?” Researchers can better understand agile development by viewing the backlog as a boundary object and model of work to be done. (See also Section VI.) 5) Researcher Bias and Prior Knowledge Bias: Participant observers develop an insider’s perspective; they both notice and miss things an outsider would not. Similarly, prior knowledge can not only help the researcher interpret events and select lines of inquiry but also blind the researcher to alternative explanations [12]. We mitigated these risks by recording interviews and having the second and third authors review the coding process. 6) Transferability: Grounded Theory is non-statistical, nonsampling research; therefore, results do not statistically generalize to a population. However, as we organized our observations into higher-level categories, much of what seems specific to Pivotal and dual-track agile receded, leaving processes that appear highly transferable to other teams that use backlogs. Sensemaking and context-solution coevolution have been established by previous research as practically universal phenomena in design generally and software engineering specifically [22], [36], [37]. The research on boundary objects and spanners suggests that boundary spanning is fundamental to contemporary software engineering—or at least projects where professionals with different roles and backgrounds collaborate [38]. It should not matter: • • • • • • whether the backlog is held in project management software or made of physical cards; whether the team uses dual-track agile, Scrum or another agile approach; whether most backlog items are user stories, use cases, or scenarios; whether the team adopt the practices (e.g., user interviews, affinity maps) described above; whether the team is distributed or co-located; whether the code is closed-source or open-source. Moreover, it does not matter whether or not the system has a graphical user interface and human users. API or command line systems simply need a different kind of product designer. The proposed concepts should transfer well to any team that: (1) adopts an agile approach; (2) has a backlog of work items; and (3) has at least one team member who brings business knowledge or design skills. However, our depiction of dual-track agile assumes an illstructured problem domain. In structured problem-solving, there is one problem, everyone agrees what the one problem is, and the meaning of the problem is clear (e.g., the travelling salesman problem). In structured problem-solving, sensemaking is trivial, context-solution coevolution does not occur, and boundary spanning is unnecessary. The danger here is mistaking ill-structured problems for well-structured ones. As we have described, just because a client arrives with what appears to be a clear problem description or even a comprehensive design specification, that does not mean the problem is well-structured. V. R ELATED W ORK It appears that our current understanding of a product backlog as a list of work items for software developers was invented or at least popularized by proponents of Scrum. Although this is difficult to determine with certainty, the earliest reference to a modern product backlog we can find is Schwaber’s presentation at OOPSLA 1995 [39]. The Scrum Guide defines “the Product Backlog [as] an ordered list of everything that is known to be needed in the product” [40]. Ambler extends this definition to include different kinds of work items such as training or reviewing other teams’ products [41] and therefore calls it a “work item list.” Scrum’s and Ambler’s view of the backlog broadly align with our observations in Section III-C1. The presentation of the product backlog in this article is consistent with the Scrum literature in several ways: • The backlog is a collection of work items. • The backlog is evolving throughout a project. • The backlog is continually refined or groomed by the Product Owner (in Scrum) / Product Manager (at Pivotal). However, the Scrum literature presents the backlog in several ways that are inconsistent with the observations and conceptualization presented here: • Scrum defines the backlog as an ordered list; all of the backlogs we observed were only partially ordered. • The Scrum Guide states: “At any point in time, the total work remaining to reach a goal can be summed” [40]. The backlogs we observed all contained items that were neither estimated nor fully fleshed out. • Some presentations of Scrum, including the Scrum Guide, state that the backlog contains requirements. Requirements formally describe needs. User stories informally describe features. None of the backlog items we observed were requirements. Conceptualizing a backlog as a requirements specification is inconsistent with our observations (see Section III-C). Beyond the prescriptive agile literature, some studies have investigated how backlog items are prioritized. A systematic review of 13 such studies found no consensus about how items should be prioritized [42] and concluded that “the average quality of studies is low” (p. 5). Racheva et al. [43] synthesized a lifecycle theory of backlog prioritization from existing literature. However, lifecycle theories are typically inappropriate for modeling human behavior [44]. Indeed, weighed against the observations reported here, this model appears to overrationalize the prioritization process in several ways: 1) It assumes backlog items are requirements. Again, this is not what we observed. 2) It presents the steps of prioritization as a sequential process with no backtracking. In contrast, we observed product managers periodically grooming the backlog. 3) It does not explain where the backlog items come from. We found only one backlog-focused experiment, which showed that students using the work system snapshot conceptual modeling technique wrote better backlog items [45]. Of course, many agile development case studies mention a backlog, but we are not aware of any cases that focus on the backlog. Furthermore, we are not aware of any research that specifically investigates how backlog items are generated. The Scrum literature, for example, shies away from how exactly to generate user stories or other backlog items. Scrum simply assigns the job of writing user stories to the “Product Owner” but says little about user research, the creative process of designing the system, or writing and refining these stories [40], [46], [47]. Extreme Programming [9] similarly offers little guidance for determining what to build. In the Real Customer Involvement practice [9], an onsite customer provides features through story cards. This does not provide design guidance; it simply transfers design responsibility to customers. The Human Computer Interaction (HCI) community, in contrast, is chiefly concerned with the design of user experiences for interactive products. HCI incorporated the concept of sensemaking as early as 1993 [48], and many of the practices described above are well-known in user-centered design [49]. These processes and practices remain decoupled from mainstream SE methods [50]. Some in the SE community are consequently under “the impression that the user-centered design approach and usability engineering methods are only for decorating a thin component sitting on top of the software or the ‘real’ system” [50]. Several systematic literature reviews [51], [52], [53] have recently attempted to correct this misunderstanding and bridge the gap between the SE community’s focus on how to build and the HCI community’s focus on what to build. For example, Brhel et al. [51] identify five principles underlying usercentered agile development: (1) separate product discovery and product creation, (2) iterative and incremental design and development, (3) parallel interwoven tracks of design and development, (4) continuous stakeholder involvement, and (5) artifact-mediated communication. Garcia et al. [54] further investigate principle (5) and concluded that user stories are one of the main artifacts mediating communication. A significant finding that has emerged from these literature reviews, as well as this study, is the idea of interwoven tracks of determining what to build and building it—that is, dual-track agile. The term dual-track agile originates from articles describing software development at Alias (now part of Autodesk) [55] [56]. Both papers depict two tracks (called the Developer Track and the Interaction Designer Track), with designers working at least one or two cycles ahead of developers. (We did not adopt these labels because, in our observations, track one was not limited to interaction design, and all team members participated in both tracks.) Recently, several professional articles present various accounts of dual-track agile [57], [58]. These articles suggest that, similar to Pivotal, many companies perceive dual-track agile as a promising approach for bridging the gap between generating solution concepts and building software. VI. C ONCLUSION This article reports the first in-depth field study focused on the product backlog. It makes the following contributions: 1) It clarifies that a product backlog is an informal model of work to be done (and not a requirements specification). 2) It explains how a backlog functions as a boundary object: that is, bridging the gap between generating solution concepts and building software. 3) It explains how backlogs emerge from sensemaking, context-solution coevolution, and boundary spanning. 4) It describes 13 specific practices that give rise to product backlogs at Pivotal. 5) It describes design obstacles faced by product designers at Pivotal. These contributions are important because, despite the ubiquity of product backlogs, no scholarly research has comprehensively explained how they emerge or function. Software teams can use the practice descriptions to improve how they create their backlogs. They can also use the obstacle descriptions to explain to upper management and clients why user research is needed and why structure and clarity often decrease before increasing. Educators can use the theory of the backlog to help students understand what a backlog is and how it works. Researchers can use this work to understand the backlog’s relationship to requirements and design decisions. More research is needed to determine how to assess backlog quality and establish its effects on software engineering success. R EFERENCES [1] P. Checkland, Systems Thinking, Systems Practice. Chichester, UK: Wiley, 1999. [2] S. Lichtenstein and P. Slovic, The Construction of Preference. Cambridge, UK: Cambridge University Press, Aug. 2006. [3] N. Maiden, S. Jones, K. Karlsen, R. Neill, K. Zachos, and A. Milne, “Requirements engineering as creative problem solving: a research agenda for idea finding,” in Proceedings of the 18th IEEE International Requirements Engineering Conference. IEEE, 2010, pp. 57–66. [4] D. H. Jonassen, “Instructional design models for well-structured and IIIstructured problem-solving learning outcomes,” Educational Technology Research and Development, vol. 45, no. 1, pp. 65–94, 1997. [5] K. Charmaz, Constructing Grounded Theory. SAGE Publications, 2014. [6] T. Sedano, P. Ralph, and C. Péraire, “Sustainable software development through overlapping pair rotation,” in Proceedings of the International Symposium on Empirical Software Engineering and Measurement International Conference on Software Engineering, ser. ESEM, 2016. [7] ——, “Practice and perception of team code ownership,” in Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering, ser. EASE. ACM, 2016. [8] ——, “Software development waste,” in Proceedings of the 2017 International Conference on Software Engineering, ser. ICSE ’17. IEEE, 2017. [9] K. Beck and C. Andres, Extreme Programming Explained: Embrace Change (2nd Edition). Addison-Wesley Professional, 2004. [10] T. Sedano, “Sustainable software development: Evolving extreme programming,” Ph.D. dissertation, Carnegie Mellon University, 2017. [11] B. Glaser, Theoretical Sensitivity: Advances in the Methodology of Grounded Theory. Sociology Press, 1978. [12] ——, Doing Grounded Theory: Issues and Discussions. Sociology Press, 1998. [13] T. Sedano, P. Ralph, and C. Péraire, “Lessons learned from an extended participant observation grounded theory study,” in Proceedings of the 5th International Workshop on Conducting Empirical Studies in Industry, ser. CESI ’17. IEEE, 2017. [14] J. Thomson. Trust and balanced teams. [Online]. Available: https: //medium.com/product-labs/trust-and-balanced-teams-919456ad57cf [15] B. Fitzgerald and K.-J. Stol, “Continuous software engineering: A roadmap and agenda,” Journal of Systems and Software, vol. 123, no. C, pp. 176–189, Jan. 2017. [16] S. Madsen and L. Nielsen, “Exploring Persona-Scenarios - Using Storytelling to Create Design Ideas,” in Human Work Interaction Design: Usability in Social, Cultural and Organizational Contexts. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010, pp. 57–66. [17] M. Farleo. Personas vs proto-personas. [Online]. Available: https: //newmediadenver.com/personas-vs-proto-personas [18] M. Seaman. The right number of user interviews. [Online]. Available: https://medium.com/@mitchelseaman/ the-right-number-of-user-interviews-de11c7815d9 [19] J. Kawakita, Hassouhou-Souzousei kaihatsu no tame ni - A way of thinking that developes creativity. Chuokoron-Shinsha, 1967. [20] A. Alliance. (2017) Role-feature-reason. [Online]. Available: https: //www.agilealliance.org/glossary/role-feature/ [21] M. Wynne and A. Hellesoy, The Cucumber Book: Behaviour-Driven Development for Testers and Developers. Pragmatic Bookshelf, 2012. [22] N. Cross, “Design cognition: results from protocol and other empirical studies of design activity,” in Design knowing and learning: Cognition in design education, C. Eastman, W. Newstetter, and M. McCracken, Eds. Oxford, UK: Elsevier Science, 2001, pp. 79–103. [23] N. Cross, K. Dorst, and N. Roozenburg, Research in Design Thinking. Delft University Press, 1992. [24] P. Ralph and Y. Wand, “A Proposal for a Formal Definition of the Design Concept,” in Design Requirements Engineering: A Ten-Year Perspective, K. Lyytinen, P. Loucopoulos, J. Mylopoulos, and W. Robinson, Eds. Cleveland, OH, USA: Springer-Verlag, Jun. 2009, pp. 103–136. [25] D. A. Schön, The reflective practitioner: how professionals think in action. USA: Basic Books, 1983. [26] P. Ralph and R. Mohanani, “Is requirements engineering inherently counterproductive?” in Proceedings of the 5th International Workshop on the Twin Peaks of Requirements and Architecture, Florence, Italy, May 2015, pp. 20–23. [27] P. J. Silvia, B. P. Winterstein, J. T. Willse, C. M. Barona, J. T. Cram, K. I. Hess, J. L. Martinez, and C. A. Richard, “Assessing creativity with divergent thinking tasks: Exploring the reliability and validity of new subjective scoring methods.” Psychology of Aesthetics, Creativity, and the Arts, vol. 2, no. 2, p. 68, 2008. [28] S. L. Star and J. R. Griesemer, “Institutional Ecology, ’Translations’ and Boundary Objects: Amateurs and Professionals in Berkeley’s Museum of Vertebrate Zoology, 1907-39,” Social Studies of Science, vol. 19, no. 3, pp. 387–420, 1989. [29] B. A. Bechky, “Sharing meaning across occupational communities: The transformation of understanding on a production floor,” Organization Science, vol. 14, no. 3, pp. 312–330, 2003. [Online]. Available: https://doi.org/10.1287/orsc.14.3.312.15162 [30] S. L. Star, “This is Not a Boundary Object: Reflections on the Origin of a Concept,” Science, Technology, & Human Values, vol. 35, no. 5, pp. 601–617, 2010. [31] K. E. Weick, K. M. Sutcliffe, and D. Obstfeld, “Organizing and the Process of Sensemaking,” Organization Science, vol. 16, no. 4, pp. 409– 421, 2005. [32] P. Ralph, “The Sensemaking-coevolution-implementation theory of software design,” Science of Computer Programming, vol. 101, pp. 21–41, 2015. [33] H. Aldrich and D. Herker, “Boundary spanning roles and organization structure,” Academy of management review, vol. 2, no. 2, pp. 217–230, 1977. [34] M. L. Tushman and T. J. Scanlan, “Boundary spanning individuals: Their role in information transfer and their antecedents,” Academy of management journal, vol. 24, no. 2, pp. 289–305, 1981. [35] J. W. Creswell and D. L. Miller, “Determining validity in qualitative inquiry,” Theory Into Practice, vol. 39, no. 3, 2000. [36] J. Kolko, “Abductive thinking and sensemaking: The drivers of design synthesis,” Design Issues, vol. 26, no. 1, pp. 15–28, 2010. [37] P. Ralph, “Software engineering process theory: A multi-method comparison of Sensemaking-Coevolution-Implementation Theory and Function-Behavior-Structure Theory,” Information and Software Technology, vol. 70, pp. 232–250, 2016. [38] N. Levina, “Collaborating on Multiparty Information Systems Development Projects: A Collective Reflection-in-Action View,” Information Systems Research, vol. 16, no. 2, pp. 109–130, 2005. [39] K. Schwaber, “SCRUM Development Process,” in Business Object Design and Implementation: OOPSLA Workshop Proceedings October, Austin, Texas, J. Sutherland, D. Patel, C. Casanave, J. Miller, and G. Hollowell, Eds., London, UK, 1997. [40] K. Schwaber and J. Sutherland. (2015) Scrum guide. [Online]. Available: http://www.scrumguides.org/ [41] S. Ambler. (2010) Agile best practice: Prioritized requirements. [Online]. Available: http://agilemodeling.com/essays/prioritizedRequirements.htm [42] A. Silva, A. Silva, T. Araújo, R. Willamy, F. Ramos, A. Costa, M. Perkusich, and E. Dilorenzo, “Ordering the product backlog in agile software development projects: A systematic literature review,” in Proceedings of the 29th International Conference on Software Engineering & Knowledge Engineering, SEKE 2017, Pittsburg, USA, 07 2017. [43] Z. Racheva, M. Daneva, A. Herrmann, and R. J. Wieringa, “A conceptual model and process for client-driven agile requirements prioritization,” in Research Challenges in Information Science (RCIS), 2010 Fourth International Conference on. IEEE, 2010, pp. 287–298. [44] P. Ralph, “Toward Methodological Guidelines for Process Theories and Taxonomies in Software Engineering,” IEEE Transactions on Software Engineering, 2018. [45] N. Bolloju, S. Alter, A. Gupta, S. Gupta, and S. Jain, “Improving scrum user stories and product backlog using work system snapshots,” in Proceedings of the Americas Conference on Information Systems. Boston, USA: AIS, 2017. [46] K. Schwaber and M. Beedle, Agile Software Development with Scrum. Prentice Hall, 2001. [47] K. Schwaber, Agile Project Management with Scrum. Microsoft Press, 2004. [48] D. M. Russell, M. J. Stefik, P. Pirolli, and S. K. Card, “The cost structure of sensemaking,” in Proceedings of the INTERACT ’93 and CHI ’93 Conference on Human Factors in Computing Systems, ser. CHI ’93. New York, NY, USA: ACM, 1993, pp. 269–276. [Online]. Available: http://doi.acm.org/10.1145/169059.169209 [49] B. Martin and B. Hanington, Universal Methods of Design: 100 Ways to Research Complex Problems, Develop Innovative Ideas, and Design Effective Solutions. Rockport Publishers, 2012. [50] A. Seffah and E. Metzker, “The obstacles and myths of usability and software engineering,” Commun. ACM, vol. 47, no. 12, pp. 71–76, Dec. 2004. [Online]. Available: http://doi.acm.org/10.1145/1035134.1035136 [51] M. Brhel, H. Meth, A. Maedche, and K. Werder, “Exploring principles of user-centered agile software development: A literature review, systematic review paper,” Information and Software Technology, vol. 61, no. C, pp. 163–181, May 2015. [Online]. Available: http://dx.doi.org/10.1016/j.infsof.2015.01.004 [52] D. Salah, R. F. Paige, and P. Cairns, “A systematic literature review for agile development processes and user centred design integration,” in Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, ser. EASE ’14. New [53] [54] [55] [56] [57] [58] York, NY, USA: ACM, 2014, pp. 5:1–5:10. [Online]. Available: http://doi.acm.org/10.1145/2601248.2601276 C. Salvador, A. Nakasone, and J. A. Pow-Sang, “A systematic review of usability techniques in agile methodologies,” in Proceedings of the 7th Euro American Conference on Telematics and Information Systems, ser. EATIS ’14. New York, NY, USA: ACM, 2014, pp. 17:1–17:6. [Online]. Available: http://doi.acm.org/10.1145/2590651.2590668 A. Garcia, T. Da Silva, and M. Silveira, “Artifacts for agile user-centered design: A systematic mapping,” in Hawaii International Conference on System Sciences, 01 2017. L. Miller, “Case study of customer input for a successful product,” in Proceedings of Agile 2005. IEEE, 2005, pp. 225–234. D. Sy, “Adapting usability investigations for agile user-centered design,” J. Usability Studies, vol. 2, no. 3, pp. 112–132, May 2007. [Online]. Available: http://dl.acm.org/citation.cfm?id=2835547.2835549 K. Albrecht. (2015) Dual track agile: Focusing on customer value. [Online]. Available: https://medium.com/kevin-on-code/ dual-track-agile-focusing-on-customer-value-a2e39312585b J. De Litchenberg. (2017) Dual-track agile: Why messy leads to innovation. [Online]. Available: https://www.mindtheproduct.com/2017/ 04/dual-track-agile-messy-leads-innovation/