Future of End-User Software Engineering: Beyond the Silos

Size: px
Start display at page:

Download "Future of End-User Software Engineering: Beyond the Silos"

Transcription

1 Future of End-User Software Engineering: Beyond the Silos Margaret M. Burnett School of Electrical Engineering and Computer Science Oregon State University Corvallis, OR USA Brad A. Myers Human Computer Interaction Institute Carnegie Mellon University Pittsburgh, PA USA ABSTRACT End-user software engineering (EUSE) is a research area that aims to invent new kinds of technologies that collaborate with end users to improve the quality of their software. The practice that EUSE research aims to support is end users using new tools and methods to improve the quality of the software that they and other end users have created. There is a need for this outcome because research shows both that the number of end users creating their own software greatly exceeds the number of professional software developers, and that the software they create is riddled with errors. In this paper, we describe the present state of EUSE, and challenges in moving forward toward a bright future. We show how the future of EUSE may become over-siloed, restricting future researchers vision of what can be achieved. We then show that focusing on the in-the-moment intents of end-user developers can be used to derive a number of promising directions forward for EUSE researchers, and how theories can help us further desilo future EUSE research. Finally, we discuss how overcoming challenges for the future of end-user software engineering may also bring direct benefits to the future of classic software engineering. Categories and Subject Descriptors D.2 [Software Engineering]. H.1.2 [Models and Principles]: User/Machine Systems. General Terms Reliability, Human Factors, Theory Keywords End-user software engineering (EUSE), end-user development 1. INTRODUCTION Software engineering is no longer solely applicable to professional software engineers. Anyone who develops software, whether as a professional developer or not, may well need to employ beyond-coding processes to help ensure that the software they develop is of sufficiently high quality for the purpose for which they intended it. Who, besides professional developers, actually develops software? According to data from the U.S. Bureau of Census and Bureau of Labor, more than 12 million people in the U.S. say they do programming at work, and more than 50 million use spreadsheets and databases compared to only about 3 million professional programmers in the United States [54]. Thus, depending on how conservatively one differentiates use from program in, the number of end-user programmers in the United States falls somewhere between 12 million and 50 million people several times the number of professional programmers. Clearly then, end-user programming empowers it has already empowered millions of end users to create their own software. Nardi defined end-user programmers as being distinct from professional developers in that end users programs are not the end in itself, but rather a means to accomplish their own tasks [39]. There are a variety of research systems and tools aimed at this audience; examples include an accountant creating spreadsheet formulas (which are computational instructions) to keep track of a budget in Excel or a web-literate end user building a quick mashup to help sort real estate based on custom criteria. Note that, although Nardi s definition does not define all end-user programmers as lacking formal computer science training, many subpopulations of end-user programmers do lack such training. In this paper, we consider the present and future of an area of software engineering that addresses populations like these. The future of this area that we envision breaks down the silos that have begun to emerge. We focus on where these silos are, and the benefits that could ensue to end-user software engineering research in the absence of these silos. 1.1 End-User Programming versus End-User Software Engineering Some examples of the programming environments used by end users are shown in Figure 1. For example, CoScripter [38] (Figure 1(a)) allows web users to automate web-based tasks by demonstrating the desired sequence of actions on the web pages. AgentSheets [46] (Figure 1(b)) is aimed mainly at children and teachers. These AgentSheets users demonstrate rules of behavior for different characters in a game or simulation by placing the characters onto the game board and demonstrating both the circumstance that requires the new behavior and the behavior itself. LabVIEW [25] (Figure 1(c)) aims at a different audience: scientists and engineers doing sensor-based computation. LabVIEW users wire together nodes representing various sensors and measurement instruments to construct dataflow diagrams defining the desired computations. Finally, TouchDevelop [36] (Figure 1(d)) enables end users to create mobile apps of their own by choosing from applicable actions from a continually updating smart keyboard. Using systems like these, end users create a variety of programs to use on their desktops, phones, and the web. (Following Ko et al.,

2 (a) CoScripter [38], used for web automations. (Left): script. (Right): Web context for the script. (Original screen shot.) (b) AgentSheets [46], used for agent-based games and simulations. (Top): Program state that includes some truck objects. (Bottom): A visual rule that controls truck behavior. (Excerpted from under Creative Commons License (c) A dataflow diagram in LabVIEW [25], which is used primarily for lab applications. (Excerpted from D.png, under Wikipedia Commons License (d) The mobile version of TouchDevelop [36] for developing mobile apps. Figure 1: Several end-user programming environments. we define a program as a collection of specifications that may take variable inputs, and that can be executed (or interpreted) by a device with computational capabilities [29]. The variability of input values requires that the program be able to execute on future inputs, which is one way it is different from simply doing a computation once manually.) Some ways in which end users create these programs include writing and editing mathematical formulas, dragging and dropping objects onto a logical workspace, typing and editing textual code, sketching user interface states and indicating hot spots and transitions, connecting objects in a diagram, or demonstrating intended logic to the system. Unfortunately however, the software that end users are creating with these techniques is riddled with errors. Evidence abounds of the pervasiveness of errors in the software that end users create (e.g., [19]). These errors can have significant impact. For example, after Hurricane Katrina, dozens of end users created web sites to allow updates about survivors last known locations [52]. Confusion reigned with these sites. Data on one site were often missing or inconsistent with data on the next site. Leveraging data across sites was not possible, due to differing data formats and uncertain quality [52]. Turning to a 2011 example from the European Spreadsheet Risks Interest Group s huge collection of spreadsheet errors, a formula error caused the village of West

3 Baraboo, Wisconsin to underestimate the cost of a borrowing decision by about $400,000 [19, case FH1218). Even when errors in end-user-created software are non-catastrophic, however, their effects can matter. For example, web applications created by small-business owners to promote their businesses do just the opposite if they contain broken links or pages that display incorrectly, resulting in client frustration, loss of revenue, and/or loss of credibility [1]. Given that so much of end-user-created software suffers from quality too low for the purposes for which it was created, there is a clear need for researchers and tool makers to address this. From much prior research in classic software engineering, we know that to improve quality, the software lifecycle beyond just the create stage must be supported. That is, end-user developers, like professional developers, must be supported beyond the coding stage of their software development. To help end-user developers do just that, a new research area emerged about a decade ago to address this problem. The area is known as end-user software engineering (EUSE). As Ko et al. summarize, end-user software engineering technologies are technologies that collaborate with end users to improve software quality [29]. Thus, the differences between end-user programming and end-user software engineering are that end-user programming focuses mainly on how to allow end users to create their own programs, whereas end-user software engineering considers how to support the entire software lifecycle and its attendant quality issues. Differences between end-user software engineering and traditional software engineering are several, but they all stem from a difference in population. When taking this lifecycle view of end users software, the term end-user developer becomes more appropriate than end-user programmer, drawing upon Lieberman et al. s definition of enduser development: a set of methods, techniques, and tools that allow users of software systems, who are acting as nonprofessional software developers, at some point to create, modify or extend a software artifact [37]. This terminology points out that end users involved in software development may or may not actually create new code as part of what they do in the software development process. For example, they might participate in activities like configuring their software, co-designing their software side-by-side with professional programmers, and tailoring their software [15, 17, 20, 26, 61]. Because the term end-user developer implies participation in any software development lifecycle stage not restricted to just creating code for the remainder of this paper we will use the term enduser developers. 1.2 A Future of End-User Software Engineering: Challenges in De-siloing EUSE research is at a crossroads. Following too closely in the footsteps of its classic software engineering predecessors raises a risk of over-siloing the area, to the detriment of the end-user developers it aims to serve. When we refer to siloes, we mean a system, process, department, etc. that operates in isolation from others [40] (italics added). In one sense, end-user software engineering de-silos already: it removes the silo that fenced off software engineering benefits from everyone except professional software developers. However, end-user software engineering has not gone much further in desiloing, and we believe the area could benefit from a great deal more. For example, it primarily considers end-user developers only as (atomic) people, rarely anything smaller or larger; considers software development tasks only one lifecycle phase at a time; and suffers from siloing individual tools and findings rather than building connective tissue between them. Such silos raise risks that an area can become overly narrow, building upon research in one silo or another, but losing the potential for big steps forward that can enable a research area to transform. Thus, this paper sets out a number of de-siloing challenges that we hope will influence the future of end-user software engineering. We consider them from the perspectives of who, when, why and how. 2. END-USER SOFTWARE ENGINEERING S WHO A key difference between end-user software engineering and traditional software engineering is the kind of developers served. A premise of classical software engineering research is that professional developers have some training and/or experience in software engineering methods, and also at least a little interest in following good software engineering practices. In contrast, enduser software engineering research cannot assume the presence of any of these. From this difference, two requirements become clear for end-user software engineering tools and techniques. First, EUSE tools and techniques must be designed for audiences that are usually unfamiliar with professional software engineering practices (even though they may have programmed before). Second, these tools and techniques must fit well with their audience s non-softwareengineering-oriented interests, motivations, and practices. 2.1 Today s End-User Developer Target Audiences Fulfilling these requirements requires considering more deeply who the target audiences are. The term end-user programmers was once used synonymously with novice programmers to mean anyone with a lack of experience programming regardless of their motivations, but that trend largely disappeared after Nardi s clarifying book on end-user programming [39]. Still, in today s end-user software engineering literature, assumptions about the population of end-user developers to be served are sometimes left implicit, and differ from paper to paper. For example, some researchers use the term to mean people who have neither experience nor interest in software development per se (e.g., [50]), others use it to mean anyone using a particular programming environment that targets end users (e.g., [6, 36]), and others use it to mean people who can program in one particular application area only (such as end-user webmasters [47]). Such assumptions are true of some end-user developer populations, but not all of them. For example, counterexamples to many of the above assumptions can be seen in Scaffidi et al. s survey responses from 831 information workers (subscribers to Information Week) [51]. As Table 1 shows, these users 77% of whom were in non-technical jobs did a surprising amount of programming, often using only ordinary office productivity tools. One reasonable way to establish what assumptions to make about a target end-user developer population is to empirically study the target audience as part of designing EUSE tools for that audience, and some EUSE research has moved in this direction (e.g., accountants using spreadsheets [59] and web designers [41]). An advantage of informing EUSE tool designs by empirically studying a particular population is that it enables EUSE researchers to fulfill the two requirements enumerated at the

4 Table 1. Programming-like features, in a variety of common software applications, used by at least 33% of the information workers [52]. Application Slide Editors & Word Processors Used by (% of users) 96.1 Spreadsheets 93.1 Databases 79.3 Web Pages 68.6 Feature used by Feature (% of users) Create document templates 73.3 Make inter-document hyperlinks 53.7 Record desktop editor macros 33.3 Use functions (e.g., sum ) 89.3 Create charts in spreadsheets 80.1 Inter-spreadsheet references 66.2 Create spreadsheet templates 50.4 Record spreadsheet macros 42.3 Create/edit spreadsheet macros 38.6 Reference records by key 74.0 Create tables 71.7 Create database views 68.1 Create stored procedures 49.5 Create hyperlinks 65.2 Create web forms 52.2 Create web page scripts 42.9 Create JavaScript functions 34.3 beginning of Section 2: namely, not relying upon familiarity with software engineering, and fitting with the target audience s motivations and practices. However, a disadvantage is that it can encourage siloing EUSE research by population. Further, each silo (population) must be pre-identified and researched on its own, without including other end-user developer populations. 2.2 Challenge: Targeting a More Nuanced Who A de-siloing alternative can be derived from Nardi s original definition. Recall that, according to Nardi [39], the distinguishing factor of professional programmers vs. end-user developers is a difference in intent, not a difference in experience. Indeed, Nardi goes on to explain that end users are not necessarily casual, novice, or naive users. Ko et al. emphasized this notion by defining end-user programming (and end-user development) as a role (a close cousin to high-level intent) rather than a person s semi-permanent identity [29]. Defining end-user developers based on intent allows a more nuanced version of who, thus widening the population of those who could be served by end-user software engineering research. Roles can include not only traditional populations of end-user developers like teachers and spreadsheet users engaging in software development, but also populations who, although they program in various ways fairly regularly, still have little interest in software engineering in at least some of their software development tasks. As an extreme example, a professor of software engineering might be systematic and rigorous in validating software created for distribution to other researchers, but ad hoc about validating a grant budget spreadsheet. Indeed, an ad hoc view of beyondcoding software engineering tasks has been shown to arise often across a wide span of end-user developers 1, from scientists and mathematicians who program often in traditional languages [56] to spreadsheet users [59] to teachers [63] to museum exhibit designers [7]. The decoupling of intent from personal identity helps to de-silo end-user software engineering because it removes the need to separate end-user developers as people into groups: instead, researchers can focus on intent, which slices across many different classes of end-user developers. Intent as a central concept ties end-user software engineering research directly to the end-user developer s motivations and values in that particular software development task, which in turn can affect their software engineering processes Intent as a basis for addressing the challenge Moving to intent as the key definer of when someone is acting as an end-user developer suggests the possibility of raising intent to a first-class factor in defining future EUSE tools and techniques. One way focusing on intent can help advance EUSE research is by revealing flawed assumptions in EUSE work. One common assumption is if we build it they will come. That is, if a new tool or feature becomes available that can improve users correctness or efficiency, then surely conscientious users will use it. However, a focus on intent clarifies that this assumption may not hold for end-user developers. For example, what might a laboratory scientist s intent be, when working on a laboratory application to collect and measure data from a variety of sensors? Some possibilities might be build my lab application or fix my broken lab application or add new capabilities to last year s lab application. Note that none of these intents sounds much like find a new tool that might give me some useful new ways to guard the quality of my application. Since intent resides in people s heads, understanding its implications on EUSE is facilitated by turning to applicable theories of how people think. Blackwell s Model of Attention Investment [5] is a model applicable to this situation; it helps to explain how end-user developers make choices about what problem-solving tools and features to use in computer systems. Blackwell s model rests on three constructs: the users perceptions of the costs, benefits, and risks they will face in completing their task (accomplishing their intent) one way versus some other way. According to Blackwell, users expect that exploring an unknown tool or feature will have a cost, some benefits, and some risks. For example, in the lab example above, suppose the scientist s usual way of accomplishing such tasks is to use the environment s editor. If something goes wrong, the scientist can fix it using the editor. This has no learning cost, and if the scientist believes s/he is succeeding, it seems to have the benefit of accomplishing the task with no risk. Only if the scientist realizes that there are problems too great to fix that way (i.e., there is high risk that the benefits will not be realized) is s/he likely to consider switching to a new unknown tool. Now suppose the scientist decides that a more powerful problemsolving tool is needed and, in looking around the environment, sees a tool that might help. The scientist ventures to open it up, and is now faced with a first impression of the cost of learning the tool and of the cost of using it for the particular problem at hand. 1 From now on, we will use this phrase as an abbreviation meaning developers operating in an end-user development role.

5 This first impression is the perceived cost the scientist is imagining. S/he is also considering the perceived risk (probability) that going down this path will be a waste of time or, worse, will leave the application in a mess from which it would be difficult to recover. If users perceive an EUSE tool s costs or risks to be greater than the perceived benefits, they are unlikely to use the tool [5, 50]. Viewing intent in light of Blackwell s Model of Attention Investment points out that EUSE tools and techniques can target an intent-nuanced who by (1) connecting to a target end-user developer s intent whenever it may arise, and (2) using that moment to entice them to take appropriate software engineering steps when the need arises by making clear from the outset the upfront and ongoing costs, benefits, and risks that are likely. One approach to accomplishing these two steps is to explicitly use inferences of users intentions as starting points of EUSE support tools. Another approach is to use curiosity-based enticement to draw end users into engaging at an appropriate moment with software engineering features. A third is to base tools on past intents of the target audience as predictors of common intents. Although possible intent-focused approaches to EUSE techniques are relatively unexplored, the next section describes a special case with promising beginnings in that direction A special-case who : EUSE & learning An interesting case study in de-siloing by moving from who as people to who as roles has occurred in the realm of learning. Originally, tools for helping people learn software development skills aimed at teaching programming (e.g., syntax, semantics, and basic programming skills) to people who wanted to learn programming. However, a relatively recent trend is to reach out to people who may not be interested in programming to try to convince them to want to program i.e., to manipulate intent, or in the terminology of the Blackwell model, by manipulating users perceptions of benefits. A system can manipulate intent in (at least) three ways: (1) it can build new intent, (2) it can serve existing intent (if intent is known), and/or (3) it can attempt to infer intent, often as a precursor to (1) or (2). The aim of a system building new intent is to reach out to users who are motivated by some benefit other than a program of my own. Such systems present programming as a means to that other benefit, with the hoped-for result that the users then decide to use the programming system in order to attain that benefit. One example is to gamify the process of learning programming (e.g., Pex4Fun [60] (Figure 2(a)) and Gidget [35]), leveraging the drawing power of a game to engage users in learning programming as a side effect of playing the game. A system can build intent to learn other software development skills too, not just coding. For example, a few researchers have worked to draw users toward higher success at design. Besides offering a non-software-development benefit (like telling stories, or designing their own web pages), these works feature scaffolding to reduce users perceptions of the costs of achieving the benefit they seek. For example, Kerr et al. provided story templates to help users with story design ideas in the setting of StoryTelling Alice s successor [27], and Lee et al. provided manipulable examples to help end users explore web page design ideas [34]. Approaches like these can help improve end-user developers software development skills. Approaches like the ones discussed so far have been shown to be effective for users who are at least open to expanding their software development skills. However, many end users are reluctant to do so resistance to various software development tasks has been reported for a variety of end-user developers (e.g., [14, 42, 56, 63]). As these reports show, to end-user developers like these the benefits seem low, and/or the costs and/or risks seem high. Fortunately, the keys to attracting even reluctant learners to learn software development skills become clear from the ideas of intent and the cost/benefit/risk factors of the Attention Investment model. That is, a system can introduce appropriate software development practices to end-user developers by serving their actual intents (if known) to provide these users with the benefits they seek or to reduce their risks or costs in a way that also shapes their software development behaviors. For example, the Whyline research began by first researching common debugging intents empirically. End user developers most common debugging intents were harvested by investigating their most common questions. The investigation showed that their (a) Pex4Fun s gamification [60] can build intent to program in people who like to play games. (Original screen shot.) (b) Whyline (Alice version) [31] directly serves an existing intent that has been reported empirically. Here, the user asks why didn t Pac resize 0.5? (Original screen shot) (c) Idea Garden [10] first infers intent and cost, and then offers help to reduce the cost of achieving that intent. Figure 2: Three ways systems can build upon intent.

6 most common questions were why and why not, so the Whyline was developed to allow users to ask those questions directly [31], and to answer them through scaffolded views of the kinds of problem-solving approaches professional developers use, such as tracing through calling sequences with their parameter values. See Figure 2(b) for a Whyline view of a calling sequence with parameter values. Serving existing intents can also be combined with building new intents. For example, Surprise-Explain-Reward [64] is a strategy to entice users toward desirable software engineering behaviors. The strategy attempts to arouse the end-user developer s curiosity about some aspect of their software that seems to be erroneous (such as a faulty cell formula), by decorating the cell if the tool has something to say about it. If the software s accuracy is important to that developer, they may become curious and follow up. The decoration (notification that the software has something to say) is the surprise, the information they get by following up (e.g., by hovering over the decoration) is a brief explanation, and the reward is (ideally) a found error and a sense that there is less risk of the software producing incorrect answers. Surprise-explainreward has been used successfully in several EUSE settings; one example was to entice end users into incrementally entering assertions to guard spreadsheet correctness [8]. Another intent-oriented strategy is to target the end-user developer s intent by inferring it or asking about it in context [10, 12]. For example, the Idea Garden (Figure 2(c)) infers intent from context, and also infers the costs of behaviors the end-user developer may be exhibiting, and then provides help that will reduce the user s difficulties (cost) of accomplishing that intent [10]. The approaches discussed here to de-siloing the learning of EUSE practices share a set of common attributes: (1) targeting end-user developer intent, often as a right now moment, (2) drawing enduser developers into doing just a little of the desired behavior at a time when it can benefit them, and (3) giving them the supports they need, just in time and in their own environment, so that they can succeed at the software engineering behaviors they are engaging in. These approaches generalize beyond learning settings, as some of the above examples have already demonstrated. That is, building new intent by serving an existing intent does not have to be leveraged only in learning systems or learning modes. Approaches like these can be included in any system that end-user developers use, to encourage incremental, life-long improvement of their software development skills, in the contexts of doing their ordinary work. 3. WHEN EUSE CAN HAPPEN From a lifecycle perspective, end-user software engineering begins, by definition, by moving beyond the coding phase silo to connect it with other phases of the software lifecycle. 3.1 Today s EUSE: Beyond Coding Researchers in end-user software engineering have devised a variety of techniques to support software engineering activities beyond coding. Perhaps the first such example of explicit support beyond coding was the What You See Is What You Test (WYSIWYT) research to help end-user developers systematically test their spreadsheets [49, 21]. WYSIWYT incrementally tracks test coverage of the spreadsheet formulas (via definition-use association coverage of the formula subexpressions), and colorizes the cell borders on a continuum from red (no test coverage yet) to blue (fully covered). At any time, if the user notices that a value (like the Max of... cell in Figure 3(a)) is correct, she can check it off, and the coverage is automatically recalculated so that corresponding cell border colors update immediately in the spreadsheet. There has also been research to support other stages of the end users software development lifecycle, such as design [48], assertions [8, 45], reverse-engineering [16], refactoring [3, 58], and explicitly guarding against or detecting errors and software smells [2, 18, 24, 53]. Figure 3(b) shows an example of the Topes approach [53], which guards against errors. These approaches are steps forward in bringing to end-user developers some of the benefits of software engineering methods but they do not go far enough. Most of these approaches address each lifecycle stage in isolation (e.g., just refactoring, or just designing) so, while they break out of the coding silo, they then erect new silos for each lifecycle phase. 3.2 Challenge: Beyond Beyond Coding Such silos for each lifecycle phase do not match the opportunistic workstyle of many end-user developers [7, 56]. In developing their software, exactly when are end-user developers doing design, when are they testing, and so on? For example, consider a teacher who wants to create a grades spreadsheet, and suppose she begins by entering a few column headings across the top (say, ID and name ), and then typing in all her students IDs and names into the corresponding columns. So far she has not entered a single line of code (formula) so is she in the design stage? In one way she is, because she has begun to specify the structure of the spreadsheet, (a) The WYSIWYT testing approach for end-user developers [49, 21]. (Original screenshot.) (b) Topes allow end-user developers to define and error-check data inputs [53]. (Original screen shot ) Figure 3: Examples of beyond-coding approaches.

7 and indeed, according to design theorist Schön, she is doing design according to the reflection-in-action model [11, 55]. However, from a traditional software engineering standpoint, she is not, because she has not specified any relationships or logic, yet has already skipped ahead to data entry. Suppose she next implements a little of the program (enters several formulas), and simultaneously tests a couple of the formulas (glances at their values based on the inputs she put in), and decides things are going well. This opportunistic mix of several elements from the software lifecycle is the way many of today s end-user developers with no prior software engineering training work [7, 56]. Without support for navigating seamlessly among lifecycle phase moments in their own environments, these end-user developers may never choose to engage in tools that could help them. (Recall our emphasis on developers intents in Section 2.) Yet, as the software they create grows in complexity or criticality (e.g., [19, 57]), sometimes they need these supports to attain the quality their software needs. At a minimum, then, EUSE tools need to be integrated into the work styles and environments these developers use. To do so requires tool builders to ensure that the tools they build for various lifecycle stages are interactive and incremental, so that end-user developers can easily do a little using one lifecycle stage s tool, then switch to another to do a little, then switch back. This may require entirely different reasoning algorithms than have used in the lifecycle phase counterparts in classic software engineering. For example, some EUSE efforts have been to develop new EUSE static and dynamic reasoning algorithms that are highly incremental and responsive so as to support exactly this kind of incremental phase switching (e.g., [23, 32, 49]). Still, from a de-siloing perspective, this approach is somewhat incremental. It is supportive of the fact that end-user developers will need to rapidly and intermittently switch in and out of their tools, but still silos the EUSE tools and research efforts by lifecycle phase. An alternative approach would be a more dramatic departure from classic software engineering approaches. We believe it has more potential to transform but also brings more challenges. In essence, it is to promote end-user developers work styles and intents as a way to define our vision, giving EUSE researchers the potential to transcend one-lifecycle-phase-at-a-time research silos in favor of bigger visions. One way to go about such an approach would be to frame the EUSE problem more along the lines of the problem-solving activity rather than the software engineering lifecycle. To see how this can be done, we describe an emerging EUSE research project (in which we are involved) that characterizes its target as supporting exploratory programming by end-user developers ( The project targets opportunistic end-user developers who are exploring possible ways to achieve their development goals, working to understand as much as needed of unknown code fragments, and exploring ways to fit some of the pieces together. Some code fragments may come from the user s own files, and others discovered on the web. Some may have been written by this user, some by other end-user developers, and some by professional developers. As things go wrong, the end-user developer may need to revisit some variants tried before that were working. For example, consider Frieda, an office manager in charge of her department s budget tracking. (Frieda was a participant in a set of interviews with spreadsheet users that the first author conducted. Frieda is not her real name.) Every year, the company she works for produces an updated budget tracking spreadsheet with the newest reporting requirements embedded in its structure and formulas. But this spreadsheet is not a perfect fit to the kinds of projects and sub-budgets she manages, so every year Frieda needs to change it. She does this by working with four variants of the spreadsheet at once: the one the company sent out last year (we will call it Official-lastYear), the one she derived from that one to fit her department s needs (Dept-lastYear), the one the company sent out this year (Official-thisYear), and the one she is trying to put together for this year (Dept-thisYear). Using these four variants, Frieda exploratively mixes reverse engineering, reuse, programming, testing, and debugging, mostly by trial-and-error. She begins this process by reminding herself of ways she changed last year s by reverse engineering a few of the differences between Official-lastYear and Dept-lastYear. She then looks at the same portions of Official-thisYear to see if those same changes can easily be made, given her department s current needs. She can reuse some of these same changes this year, but copying them into Dept-thisYear is troublesome, with some of the formulas automatically adjusting themselves to refer to DeptlastYear. She patches these up (if she notices them), then tries out some new columns or sections of Dept-thisYear to reflect her new projects. She mixes in testing along the way by entering some of the budget values for this year and eyeballing the values that come out, then debugs if she notices something amiss. At some point, she moves on to another set of related columns, repeating the cycle for these. Frieda has learned over the years to save some of her spreadsheet variants along the way (using a different filename for each), because she might decide that the way she did some of her changes was a bad idea, and she wants to revert to try a different way she had started before. To support this style of development, the exploratory programming project is creating a variety of visualizations, search facilities, and interaction techniques to provide effective ways for users to find, understand, assess, reuse and create variants, and be able to ask why questions to understand differences between variations of a system. It will also include supports for helping end-user developers enhance their problem-solving strategies when they encounter difficulties. A lifecycle view of the project would not capture everything here: exploratory programming includes design, implementation, testing, debugging, and reuse but the human activity of exploration is more holistic than these five different lifecycle phases. For example, the lifecycle view would not capture the user backing out of part of a solution, and would not capture a tool helping the user find a useful problem-solving strategy. Thus, the exploratory programming example suggests that first-class consideration of developer intents (such as explore ) may help EUSE researchers devise future EUSE approaches that transcend today s lifecycle-phase silos. 4. CHALLENGE: WHY AND HOW Devising new EUSE ideas for tools and techniques that actually help end-user developers is difficult if we do not understand why end-user developers might use them or how the new ideas could work. Understanding these whys and hows has a de-siloing theme in its ability to connect one type of knowledge with another.

8 One way to connect our tools and techniques with an understanding of the developers they target is to ground our EUSE research efforts in formative empirical studies, so as to understand the target group of end-user developers. The research paradigm of grounding research ideas with formative empirical work is common in the EUSE area, and many of the research efforts we have summarized here have proceeded in this way. However, this research paradigm still leaves an important gap: a missing or weak connection among similar EUSE research projects. To close this gap, we argue for the importance of more theoretical grounding in future EUSE work. Theory can help yield a more holistic understanding of how EUSE results fit together. Although a few EUSE projects have been human-theorybased, such projects are still relatively rare. As an example of the benefits such theories can bring to EUSE, recall from Section 2 how the Model of Attention Investment [5] provides a generalized way to gain insights into how and whether an end-user developer might go about deciding whether to even try a new EUSE tool or feature. Indeed, this model has already been used to shape and predict acceptance of a variety of EUSE approaches (e.g., [8, 10, 50, 59, 64]). Informing EUSE approaches from the outset using a common model (here, Attention Investment) connects seemingly disparate tools and approaches through their shared set of fundamentals. A second way theory can benefit EUSE research is to guide the pre-study design and post-study interpretation of empirical studies. For example, Ko and Myers developed a theoretical framework and methodology for investigating causes of software errors in programming systems [30]. This framework draws from a cognitive theory of human errors and situates it with results from many of the pioneering empirical studies of programming. The resulting framework and related empirical methodology has been used to iteratively evaluate and design the end-user programming system Alice [13], and to then inform the work on Whyline for Alice [31]. Theory can also connect tools after the fact even tools that, on the surface, seem to have little to do with one another. For example, Information Foraging Theory, although a relative newcomer to software engineering, has already been used to show commonalities and design patterns among more than 20 different software engineering tools spanning three domains: debugging, refactoring, and reuse [22]. Information Foraging Theory [43], which is rooted in earlier foraging theories from biology, is a predator/prey theory that can both explain and predict how software developers (information predators) go about gathering the information they need (the prey) when performing information-intensive software tasks like debugging. With the exception of emerging work by Kuttal et al. [33], Information Foraging Theory has not yet been applied to the design of EUSE tools. Another predator/prey model, which centers on notions of ecosystem diversity, shows a fourth way theories can benefit future EUSE work: using theory-derived measures to understand why and how empirical measures of developer behaviors connect with empirical measures of artifacts that might seem to be surrogates for developer measures [44]. Posnett et al. used this theory to derive complementary measures of focus for software development (by professional developers): developer attention focus and module activity focus. By using symmetric measures and concepts for both human diversity of attention among models and module diversity of exposure to humans, the theory provides a new way to unify and to contrast results from data about humans and data about artifacts. Demonstrating its usefulness, the results of their empirical case study on the concept of focus captured nuanced advantages and disadvantages of focusing developer attention on a small number of modules that prior atheoretic measures have not been able to expose. 5. DISCUSSION: WHAT EUSE HAS TO SAY TO CLASSIC SOFTWARE ENGINEERING RESEARCH EUSE research began with the following overarching research question: Is it possible to bring the benefits of rigorous software engineering methodologies to end users? To investigate this goal, EUSE researchers have built upon a blend of foundations from software engineering and humancomputer interaction. The results may have implications not only for future EUSE research, but also for classic software engineering research into how to support professional software developers. The challenges of supporting end-user developers to do software engineering activities lend a magnifying lens to problems that may also affect professional software developers. A case in point is the Whyline debugging technique, which was developed originally for end-user developers in the Alice setting (Figure 2(b)) [31], and was later used as the basis for a Whyline for professional developers working in Java [32]. Empirical evaluations of the tool showed that novice Java developers with the Whyline were twice as fast as expert Java developers without it. In addition to the Whyline case, the theory research on software errors, born in the EUSE setting as discussed in Section 4, has influenced several mainstream software engineering efforts (e.g., [28, 62, 65]). Similarly, research into how gender differences tie with software tool usage, originally investigated in EUSE [4], was later shown to be applicable to professional software development tools as well [9]. At its core, the EUSE vision is of a different kind of partnership between developers and tools than is sometimes the case in classic software engineering. In the EUSE partnership vision, a developer s intents and work style take priority over what a tool might want the developer to do because if an end-user developer does not appreciate the tool s behavior, the developer is likely to simply abandon it. Because of this priority, and also because of its dual heritage from software engineering and human-computer interaction, EUSE research is arguably ahead of classic software engineering in research that focuses squarely on the developers and their intents. As the examples above demonstrate, bringing these focuses into classic software engineering research can bring benefits to professional developers, just as they do to end-user developers. Indeed, going beyond the examples above, the use of more advanced intent-oriented approaches such as building intent and inferring intent (Section 2.2) could be used to entice professional developers into more productive or effective software engineering behaviors, or to deliver to them the information they need at the very moment they need it. Implications for classic software engineering research then could be to draw upon ideas we have presented for end-user software engineering, so as to bring benefits of end-user software engineering research back to professional developers.

9 6. CONCLUSION In this paper, we have argued for the benefits of de-siloing to achieve the kinds of transformative changes that could come about in EUSE s future. Specifically, we advocate de-siloing EUSE research from the perspectives of who, when, why and how. EUSE s who: EUSE research is beginning to move beyond assumptions of a fairly homogenous population of end-user developers. Instead, we argue for the more modern notion that end-user development is a role, or intent, at some particular time, not a personal identity. An immediate benefit is that de-siloing who EUSE targets in this way can open the door to new populations of end-user developers, working alone or together. More fundamentally, intent-focused approaches can promote intent to a first-class concept in EUSE, allowing a rich set of intent-oriented operations, such as attempting to manipulate it, infer it, target it, or reward it. EUSE s when: EUSE already de-silos end-user programming by moving research beyond the coding phase silo, but it does not go far enough. We argue that it is not wise, once beyond the coding silo, to then build a new silo for each phase of the software lifecycle. Instead, we advocate moving toward research projects that are not lifecycle-phase-centric, instead focusing on supporting end-user developers as they actually work opportunistically, incrementally, and rarely one lifecycle phase at a time. One possible approach is to start with the activity as the developer sees it (e.g., explore my options in getting the functionality I want), rather than starting from a lifecycle phase perspective (e.g., reuse ). EUSE s why and how: We advocate a greater incorporation of theory into EUSE research. Theories enable us to connect multiple research efforts, even if on the surface they have little in common. For example, creating multiple new EUSE approaches from a common set of foundations connects all the approaches based on those particular foundations. Finding ways to pattern-match existing tools to a common theory can also connect those tools. Theory can even be used to connect disparate data sets, if those data sets revolve around a concept that can be intellectually unified and symmetrically measured. In short, theories can enable EUSE researchers to see through separate silos by generalizing across them. Realizing these goals will be challenging, and it would not be realistic to expect these kinds of changes in the short term. Still, we argue that end-user software engineering, with its dual heritage in software engineering and human-computer interaction, is in a good position to eventually achieve them. By doing so, we can not only change the reliability that end users can expect from the software they develop for themselves, but at the same time contribute to their problem-solving skills, to their enjoyment of their software development activities, and to our own ability as researchers to have bigger visions, beyond just one silo at a time. 7. ACKNOWLEDGMENTS We d like to acknowledge the many researchers whose pioneering works have helped establish the area of end-user software engineering. We also thank the students and collaborators who contributed to our own work in end-user software engineering. Our work in developing this paper was supported in part by the National Science Foundation under grants IIS , CNS , IIS , IIS , and CCF Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect those of the National Science Foundation. 8. REFERENCES [1] Anonymous User-unfriendly PR: Nearly 9 of 10 of Americans have negative feelings about brands with poorly performing websites and mobile apps, new SOASTA study reveals, Bulldog Reporter Daily Dog (June 20, 2013), (Accessed Dec. 8, 2013). [2] Abraham, R. and Erwig, M Mutation operators for spreadsheets, IEEE Transactions on Software Engineering, 35, 1, [3] Badame, S. and Dig, D Refactoring meets spreadsheet formulas, IEEE International Conference on Software Maintenance, [4] Beckwith, L., Burnett, M., Wiedenbeck, S., Cook, C., Sorte, S., Hastings, M Effectiveness of end-user debugging software features: Are there gender issues? ACM Conference on Human Factors in Computing Systems (Portland, Oregon, April 2005), [5] Blackwell, A First steps in programming: A rationale for attention investment models, IEEE Human-Centric Computing Languages and Environments (Arlington, VA, Sept. 2002), [6] Bogart, C., Burnett, M., Cypher, A., Scaffidi, C Enduser programming in the wild: A field study of CoScripter scripts, IEEE Symposium on Visual Languages and Human- Centric Computing (Herrshing am Ammersee, Germany, Sept. 2008), [7] Brandt, J., Guo, P., Lewenstein, J., and Klemmer, S Opportunistic programming: How rapid ideation and prototyping occur in practice. ICSE 08 Workshop on End- User Software Engineering. (Leipzig, Germany, May 2008). [8] Burnett, M., Cook, C., Pendse, O., Rothermel, G., Summet, J. and Wallace, C End-user software engineering with assertions in the spreadsheet paradigm, International Conference on Software Engineering, (Portland, OR, May 2003), [9] Burnett, M., Fleming, S., Iqbal, S., Venolia, G., Rajaram, V., Farooq, U., Grigoreanu, V., Czerwinski, M. Gender differences and programming environments: Across programming populations, ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, (Bolzano-Bozen, Italy, Sept. 2010), Article 28, 10 pages. [10] Cao, J., Kwan, I., Bahmani, F., Burnett, M., Fleming, S., Jordahl, J., Horvath, A., Yang, S End-user programmers in trouble: Can the Idea Garden help them to help themselves? IEEE Symposium on Visual Languages and Human-Centric Computing (San Jose, CA, Sept. 2013), pp [11] Cao, J., Riche, Y., Wiedenbeck, S., Burnett, M., Grigoreanu, V End-user mashup programming: Through the design lens, ACM Conference on Human Factors in Computing Systems, [12] Cao, X. and Iverson, L Intentional access management: Making access control usable for end-users,

Why is there an EUSE area? Future of End User Software Engineering: Beyond the Silos

Why is there an EUSE area? Future of End User Software Engineering: Beyond the Silos Why is there an EUSE area? Future of End User Software Engineering: Beyond the Silos Margaret Burnett Oregon State University It started with End User Programming (creating new programs). Today, end users

More information

End-User Software Engineering

End-User Software Engineering End-User Software Engineering Margaret Burnett, Curtis Cook, and Gregg Rothermel School of Electrical Engineering and Computer Science Oregon State University Corvallis, OR 97331 USA {burnett, cook, grother}@eecs.orst.edu

More information

Workshop Report: From End-User Programming to End-User Software Engineering (a CHI 06 Workshop)

Workshop Report: From End-User Programming to End-User Software Engineering (a CHI 06 Workshop) Workshop Report: From End-User Programming to End-User Software Engineering (a CHI 06 Workshop) Abstract: End users create software when they use spreadsheet systems, web authoring tools and graphical

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

End User Software Engineering - Testing and Motivation Strategies

End User Software Engineering - Testing and Motivation Strategies What Is End-User Software Engineering and Why Does It Matter? Margaret Burnett Oregon State University, School of Electrical Engineering and Computer Science, Corvallis, Oregon, 97331 USA burnett@eecs.oregonstate.edu

More information

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT

More information

Instructional Design Framework CSE: Unit 1 Lesson 1

Instructional Design Framework CSE: Unit 1 Lesson 1 Instructional Design Framework Stage 1 Stage 2 Stage 3 If the desired end result is for learners to then you need evidence of the learners ability to then the learning events need to. Stage 1 Desired Results

More information

How Programmers Use Internet Resources to Aid Programming

How Programmers Use Internet Resources to Aid Programming How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,

More information

SOFTWARE DEVELOPMENT MAGAZINE: MANAGEMENT FORUM December, 1999. Vol. 7, No. 12 Capturing Business Rules. By Ellen Gottesdiener,

SOFTWARE DEVELOPMENT MAGAZINE: MANAGEMENT FORUM December, 1999. Vol. 7, No. 12 Capturing Business Rules. By Ellen Gottesdiener, SOFTWARE DEVELOPMENT MAGAZINE: MANAGEMENT FORUM December, 1999. Vol. 7, No. 12 Capturing Business Rules By Ellen Gottesdiener, [Editor's Intro] With our noses to the software development grindstone, it

More information

Exploratory Testing in an Agile Context

Exploratory Testing in an Agile Context Exploratory Testing in an Agile Context A guide to using Exploratory Testing on Agile software development teams. Elisabeth Hendrickson 2 Exploratory Testing. So you bang on the keyboard randomly, right?

More information

A very short history of networking

A very short history of networking A New vision for network architecture David Clark M.I.T. Laboratory for Computer Science September, 2002 V3.0 Abstract This is a proposal for a long-term program in network research, consistent with the

More information

The Role of Requirements Traceability in System Development

The Role of Requirements Traceability in System Development The Role of Requirements Traceability in System Development by Dean Leffingwell Software Entrepreneur and Former Rational Software Executive Don Widrig Independent Technical Writer and Consultant In the

More information

STSC CrossTalk - Software Engineering for End-User Programmers - Jun 2004

STSC CrossTalk - Software Engineering for End-User Programmers - Jun 2004 CrossTalk Only Home > CrossTalk Jun 2004 > Article Jun 2004 Issue - Mission - Staff - Contact Us - Subscribe Now - Update - Cancel Software Engineering for End-User Programmers Dr. Curtis Cook, Oregon

More information

The Phios Whole Product Solution Methodology

The Phios Whole Product Solution Methodology Phios Corporation White Paper The Phios Whole Product Solution Methodology Norm Kashdan Phios Chief Technology Officer 2010 Phios Corporation Page 1 1 Introduction The senior staff at Phios has several

More information

Human Aspects of Software Engineering: The Case of Extreme Programming

Human Aspects of Software Engineering: The Case of Extreme Programming 1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel oritha@tx.technion.ac.il

More information

Using Both Incremental and Iterative Development Dr. Alistair Cockburn, Humans and Technology

Using Both Incremental and Iterative Development Dr. Alistair Cockburn, Humans and Technology Using Both Incremental and Iterative Development Dr. Alistair Cockburn, Humans and Technology Incremental development is distinctly different from iterative development in its purpose and also from its

More information

AN INTEGRATED APPROACH TO TEACHING SPREADSHEET SKILLS. Mindell Reiss Nitkin, Simmons College. Abstract

AN INTEGRATED APPROACH TO TEACHING SPREADSHEET SKILLS. Mindell Reiss Nitkin, Simmons College. Abstract AN INTEGRATED APPROACH TO TEACHING SPREADSHEET SKILLS Mindell Reiss Nitkin, Simmons College Abstract As teachers in management courses we face the question of how to insure that our students acquire the

More information

Software Engineering for Spreadsheets

Software Engineering for Spreadsheets Software Engineering for Spreadsheets Martin Erwig Oregon State University Abstract Spreadsheets are widely used end-user programming tools. Since many critical decisions are made based on values computed

More information

WHY THE WATERFALL MODEL DOESN T WORK

WHY THE WATERFALL MODEL DOESN T WORK Chapter 2 WHY THE WATERFALL MODEL DOESN T WORK M oving an enterprise to agile methods is a serious undertaking because most assumptions about method, organization, best practices, and even company culture

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

Since the 1990s, accountability in higher education has

Since the 1990s, accountability in higher education has The Balanced Scorecard Beyond Reports and Rankings More commonly used in the commercial sector, this approach to strategic assessment can be adapted to higher education. by Alice C. Stewart and Julie Carpenter-Hubin

More information

WHITE PAPER. Creating your Intranet Checklist

WHITE PAPER. Creating your Intranet Checklist WHITE PAPER Creating your Intranet Checklist About this guide It can be overwhelming to run and manage an Intranet project. As a provider of Intranet software and services to small, medium and large organizations,

More information

UNIT 2: CRITICAL THINKING IN GAME DESIGN

UNIT 2: CRITICAL THINKING IN GAME DESIGN UNIT 2: CRITICAL THINKING IN GAME DESIGN UNIT 2: CRITICAL THINKING IN GAME DESIGN 2.A: Unit Overview 2.B: Instructional Resource Guide 2.C: Learning Activities Guide 2.D: Standards Alignment Guide 2.E:

More information

Comparing Methods to Identify Defect Reports in a Change Management Database

Comparing Methods to Identify Defect Reports in a Change Management Database Comparing Methods to Identify Defect Reports in a Change Management Database Elaine J. Weyuker, Thomas J. Ostrand AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 (weyuker,ostrand)@research.att.com

More information

User Stories Applied

User Stories Applied User Stories Applied for Agile Software Development Mike Cohn Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City Chapter 2 Writing Stories

More information

Knowledge Capture and Collaboration Systems

Knowledge Capture and Collaboration Systems Knowledge Capture and Collaboration Systems An Automae White Paper http://www.automae.com Introduction Information is the lifeblood of every development program and access to the right information can

More information

Ivo Wenzler: Simulations as learning from the future

Ivo Wenzler: Simulations as learning from the future SIMULATION GAMES ARE POWERFUL PLAYFUL INTERVENTIONS. WE COME ACROSS SIMULATIONS OFTEN, IN ALL FORMS AND SHAPES. IVO WENZLER, SENIOR EXECUTIVE (PARTNER) AT ACCENTURE AND ASSOCIATE PROFESSOR AT THE DELFT

More information

Exploratory Testing Dynamics

Exploratory Testing Dynamics Exploratory Testing Dynamics Created by James Bach, Jonathan Bach, and Michael Bolton 1 v2.2 Copyright 2005-2009, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted

More information

Framing Requirements for Predictive Analytic Projects with Decision Modeling

Framing Requirements for Predictive Analytic Projects with Decision Modeling Research Brief Framing Requirements for Predictive Analytic Projects with Decision Modeling August 2015 Written by: James Taylor Key Takeaways 1. Organizations are struggling to create a scalable, sustainable

More information

The ROI of Test Automation

The ROI of Test Automation The ROI of Test Automation by Michael Kelly www.michaeldkelly.com Introduction With the exception of my first project team out of college, in every project team since, I ve had to explain either what automated

More information

Session Title: Teaching Computational Thinking through Mobilize and the New Big Data Explosion

Session Title: Teaching Computational Thinking through Mobilize and the New Big Data Explosion Session Title: Teaching Computational Thinking through Mobilize and the New Big Data Explosion MSP Project Name: MOBILIZE: Mobilizing for Innovative Computer Science Teaching and Learning Presenters: Jane

More information

A Software Engineering Model for Mobile App Development

A Software Engineering Model for Mobile App Development APPENDIX C A Software Engineering Model for Mobile App Development As we mentioned early in the book (see Chapter 1), to successfully develop a mobile software solution you should follow an engineering

More information

Executive Summary Principles and Standards for School Mathematics

Executive Summary Principles and Standards for School Mathematics Executive Summary Principles and Standards for School Mathematics Overview We live in a time of extraordinary and accelerating change. New knowledge, tools, and ways of doing and communicating mathematics

More information

THE APPEAL OF SAAS ERP

THE APPEAL OF SAAS ERP May 2015 THE APPEAL OF SAAS ERP Data Source In this report, Mint Jutras references data collected from its 2015 Enterprise Solution Study, which investigated goals, challenges and status and also benchmarked

More information

where HCI and software engineering meet Andy Ko Information School * why you should work with Andy

where HCI and software engineering meet Andy Ko Information School * why you should work with Andy where HCI and software engineering meet * Andy Ko Information School * why you should work with Andy 1 HCI software engineering 2 what should be what must be HCI software engineering 2 HCI developers are

More information

by Heather Oppenheimer and Steve Baldassano

by Heather Oppenheimer and Steve Baldassano Switching Tracks: Finding the Right Way to Get to Maturity Level 2 by Heather Oppenheimer and Steve Baldassano When your customer contract requires that your software development process must be CMMI Level

More information

Life Insurance Modelling: Notes for teachers. Overview

Life Insurance Modelling: Notes for teachers. Overview Life Insurance Modelling: Notes for teachers In this mathematics activity, students model the following situation: An investment fund is set up Investors pay a set amount at the beginning of 20 years.

More information

The Role of Design in the Design of EMR Systems

The Role of Design in the Design of EMR Systems The Role of Design in the Design of EMR Systems By: Kevin Richardson, PhD The recent Healthcare Information and Management Systems Society (HIMSS) report, Defining and Testing EMR Usability: Principles

More information

Problem of the Month Through the Grapevine

Problem of the Month Through the Grapevine The Problems of the Month (POM) are used in a variety of ways to promote problem solving and to foster the first standard of mathematical practice from the Common Core State Standards: Make sense of problems

More information

The Software Development Life Cycle (SDLC)

The Software Development Life Cycle (SDLC) Document ID: Version: 2.0 1 / 22 2 TABLE OF CONTENTS INTRODUCTION... 4 THE SDLC WATERFALL... 4 ALLOWED VARIATIONS... 5 OTHER SDLC MODELS... 6 REFERENCES... 7 GENERIC STAGE... 8 KICKOFF PROCESS... 8 INFORMAL

More information

FIVE STEPS FOR DELIVERING SELF-SERVICE BUSINESS INTELLIGENCE TO EVERYONE CONTENTS

FIVE STEPS FOR DELIVERING SELF-SERVICE BUSINESS INTELLIGENCE TO EVERYONE CONTENTS FIVE STEPS FOR DELIVERING SELF-SERVICE BUSINESS INTELLIGENCE TO EVERYONE Wayne Eckerson CONTENTS Know Your Business Users Create a Taxonomy of Information Requirements Map Users to Requirements Map User

More information

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform Technical Discussion David Churchill CEO DraftPoint Inc. The information contained in this document represents the current

More information

Mary Shaw Institute for Software Research School of Computer Science Carnegie Mellon University

Mary Shaw Institute for Software Research School of Computer Science Carnegie Mellon University Christopher Scaffidi Institute for Software Research School of Computer Science Carnegie Mellon University cscaffid@cs.cmu.edu Tool Support for Data Validation by End-User Programmers Brad Myers Human-Computer

More information

A Guide to Creating Dashboards People Love to Use Part 1: Foundation

A Guide to Creating Dashboards People Love to Use Part 1: Foundation A Guide to Creating Dashboards People Love to Use Part 1: Foundation Dashboard Design Matters Dashboards have become standard business practice over the last decade. Dozens of dashboard building tools

More information

Soft Skills Requirements in Software Architecture s Job: An Exploratory Study

Soft Skills Requirements in Software Architecture s Job: An Exploratory Study Soft Skills Requirements in Software Architecture s Job: An Exploratory Study 1 Faheem Ahmed, 1 Piers Campbell, 1 Azam Beg, 2 Luiz Fernando Capretz 1 Faculty of Information Technology, United Arab Emirates

More information

Developing a Mobile Application Performance Management Strategy

Developing a Mobile Application Performance Management Strategy Developing a Mobile Application Performance Management Strategy Whitepaper Evidant Inc., www.evidant.com (949) 609-1494 Preface Mobile has rapidly become the new battleground for acquisition and retention

More information

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 The purpose of these questions is to establish that the students understand the basic ideas that underpin the course. The answers

More information

Teacher Notes Introduction

Teacher Notes Introduction Teacher Notes Introduction Why ICT 4 Life? Wouldn t it be great to have classes of enthusiastic, ICT-capable learners, performing and progressing well? Of course, we see fantastic examples of good practice

More information

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,

More information

Using a Balanced Scorecard in a Nonprofit Organization

Using a Balanced Scorecard in a Nonprofit Organization Using a Balanced Scorecard in a Nonprofit Organization Joel Zimmerman, Ph.D. Director of Consulting Services Creative Direct Response This paper is part of the CDR White Paper Collection. It is maintained

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

White Paper: Designing Resourceful Graphical User Interfaces (GUIs) for Healthcare Applications

White Paper: Designing Resourceful Graphical User Interfaces (GUIs) for Healthcare Applications Accelerate Development Reduce Time to Product Automate Critical Tasks White Paper: Designing Resourceful Graphical User Interfaces (GUIs) for Healthcare Applications The ASHVINS GROUP, Inc. 6161 Blue Lagoon

More information

CHAPTER - 5 CONCLUSIONS / IMP. FINDINGS

CHAPTER - 5 CONCLUSIONS / IMP. FINDINGS CHAPTER - 5 CONCLUSIONS / IMP. FINDINGS In today's scenario data warehouse plays a crucial role in order to perform important operations. Different indexing techniques has been used and analyzed using

More information

Augmenting software development with information scripting

Augmenting software development with information scripting Augmenting software development with information scripting Master Thesis Description Lukas Vogel luvogel@student.ethz.ch May 26, 2015 1 Introduction Today s large software projects are associated with

More information

Choosing an LMS FOR EMPLOYEE TRAINING

Choosing an LMS FOR EMPLOYEE TRAINING Choosing an LMS FOR EMPLOYEE TRAINING As organizations grow it becomes more challenging to scale your internal learning culture. You must be certain that your staff is trained in the entire organizational

More information

How To Teach Computer Science To Middle Schoolers

How To Teach Computer Science To Middle Schoolers Scalable Game Design: Broadening Participation by Integrating Game Design and Science Simulation Building into Middle School Curricula Introduction At the University of Colorado we have worked on visual

More information

Cognitive Load Theory and Instructional Design: Recent Developments

Cognitive Load Theory and Instructional Design: Recent Developments PAAS, RENKL, INTRODUCTION SWELLER EDUCATIONAL PSYCHOLOGIST, 38(1), 1 4 Copyright 2003, Lawrence Erlbaum Associates, Inc. Cognitive Load Theory and Instructional Design: Recent Developments Fred Paas Educational

More information

Computing & Communications Services

Computing & Communications Services 2010 Computing & Communications Services 2010 / 10 / 04 Final Kent Percival, M.Sc., P.Eng. Defining the Value of the Business Analyst In achieving its vision, key CCS partnerships involve working directly

More information

!!!!! White Paper. Understanding The Role of Data Governance To Support A Self-Service Environment. Sponsored by

!!!!! White Paper. Understanding The Role of Data Governance To Support A Self-Service Environment. Sponsored by White Paper Understanding The Role of Data Governance To Support A Self-Service Environment Sponsored by Sponsored by MicroStrategy Incorporated Founded in 1989, MicroStrategy (Nasdaq: MSTR) is a leading

More information

CRISP-DM, which stands for Cross-Industry Standard Process for Data Mining, is an industry-proven way to guide your data mining efforts.

CRISP-DM, which stands for Cross-Industry Standard Process for Data Mining, is an industry-proven way to guide your data mining efforts. CRISP-DM, which stands for Cross-Industry Standard Process for Data Mining, is an industry-proven way to guide your data mining efforts. As a methodology, it includes descriptions of the typical phases

More information

Best Practices for Improving the Quality and Speed of Your Agile Testing

Best Practices for Improving the Quality and Speed of Your Agile Testing A Conformiq White Paper Best Practices for Improving the Quality and Speed of Your Agile Testing Abstract With today s continually evolving digital business landscape, enterprises are increasingly turning

More information

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection; Volume 4, Issue 4, April 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Document Driven

More information

TDDC88 Lab 2 Unified Modeling Language (UML)

TDDC88 Lab 2 Unified Modeling Language (UML) TDDC88 Lab 2 Unified Modeling Language (UML) Introduction What is UML? Unified Modeling Language (UML) is a collection of graphical notations, which are defined using a single meta-model. UML can be used

More information

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System

More information

Mastering Microsoft Project 2013

Mastering Microsoft Project 2013 Course 55054: Mastering Microsoft Project 2013 Page 1 of 9 Mastering Microsoft Project 2013 Course 55054: 2 days; Instructor-Led Introduction This two-day, instructor-led course is intended for individuals

More information

WHITEPAPER. Managing Design Changes in Enterprise SBM Installations

WHITEPAPER. Managing Design Changes in Enterprise SBM Installations WHITEPAPER Managing Design Changes in Enterprise SBM Installations By Tom Clement Serena Software, Inc. October 2013 Summary This document explains how to organize your SBM maintenance and development

More information

Chapter Four: How to Collaborate and Write With Others

Chapter Four: How to Collaborate and Write With Others Chapter Four: How to Collaborate and Write With Others Why Collaborate on Writing? Considering (and Balancing) the Two Extremes of Collaboration Peer Review as Collaboration * A sample recipe for how peer

More information

Designing Programming Exercises with Computer Assisted Instruction *

Designing Programming Exercises with Computer Assisted Instruction * Designing Programming Exercises with Computer Assisted Instruction * Fu Lee Wang 1, and Tak-Lam Wong 2 1 Department of Computer Science, City University of Hong Kong, Kowloon Tong, Hong Kong flwang@cityu.edu.hk

More information

Computer Science Department CS 470 Fall I

Computer Science Department CS 470 Fall I Computer Science Department CS 470 Fall I RAD: Rapid Application Development By Sheldon Liang CS 470 Handouts Rapid Application Development Pg 1 / 5 0. INTRODUCTION RAD: Rapid Application Development By

More information

Creating and Using Forms in SharePoint

Creating and Using Forms in SharePoint Creating and Using Forms in SharePoint Getting started with custom lists... 1 Creating a custom list... 1 Creating a user-friendly list name... 1 Other options for creating custom lists... 2 Building a

More information

Mastering Microsoft Project 2013 Course: 55054A Course Length: 3 Days

Mastering Microsoft Project 2013 Course: 55054A Course Length: 3 Days 3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Mastering Microsoft Project 2013 Course: 55054A Course Length:

More information

INDEX OF LEARNING STYLES *

INDEX OF LEARNING STYLES * INDEX OF LEARNING STYLES * DIRECTIONS Enter your answers to every question on the ILS scoring sheet. Please choose only one answer for each question. If both a and b seem to apply to you, choose the one

More information

'& ##! %1# ##!!* #!!! 23!!!

'& ##! %1# ##!!* #!!! 23!!! !" 1 !"# $ Companies invest a lot of time and money into tools for functional test automation and performance testing. I think this tends to lead to the belief that the best way to utilize these tools

More information

Security challenges for internet technologies on mobile devices

Security challenges for internet technologies on mobile devices Security challenges for internet technologies on mobile devices - Geir Olsen [geiro@microsoft.com], Senior Program Manager for Security Windows Mobile, Microsoft Corp. - Anil Dhawan [anild@microsoft.com],

More information

A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW John C. Knight, Jane C. Prey, & Wm. A. Wulf Department of Computer Science University of Virginia ABSTRACT

More information

Finding Business Rules in COBOL Systems

Finding Business Rules in COBOL Systems Finding Business Rules in COBOL Systems Use Case for evolveit Scott Hesser 6/1/2013 pg. 1 blackboxit.com Understanding the 1 st step to Modernization Large commercial organizations have been developing

More information

A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files

A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files Thomas J. Ostrand AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 ostrand@research.att.com Elaine J. Weyuker AT&T Labs

More information

Curl Building RIA Beyond AJAX

Curl Building RIA Beyond AJAX Rich Internet Applications for the Enterprise The Web has brought about an unprecedented level of connectivity and has put more data at our fingertips than ever before, transforming how we access information

More information

Talk:Analytic Hierarchy Process/Example Leader

Talk:Analytic Hierarchy Process/Example Leader Talk:Analytic Hierarchy Process/Example Leader 1 Talk:Analytic Hierarchy Process/Example Leader This is an example showing the use of the AHP in a practical decision situation. Click HERE to return to

More information

NJ Department of Education Office of Educational Technology Digital Learning NJ (DLNJ)

NJ Department of Education Office of Educational Technology Digital Learning NJ (DLNJ) 8.1 Educational Technology: All students will use digital tools to access, manage, evaluate, and synthesize information in order to solve problems individually and collaborate to create and communicate

More information

What are some effective standards-based classroom assessment practices?

What are some effective standards-based classroom assessment practices? How does classroom assessment help teachers and students? Classroom assessments can help teachers plan and implement effective instruction and can help students learn at deeper and higher levels. Assessments

More information

Do you know? "7 Practices" for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd.

Do you know? 7 Practices for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd. Do you know? "7 Practices" for a Reliable Requirements Management by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd. In this white paper, we focus on the "Requirements Management,"

More information

Towards Web Design Frameworks (Wdfs)

Towards Web Design Frameworks (Wdfs) 14 Towards Web Design Frameworks (Wdfs) Rehema Baguma, Faculty of Computing and IT, Makerere University. rbaguma@cit.mak.ac.ug; Ogao Patrick, Department of Information Systems, Faculty of Computing and

More information

ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS

ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS Hasni Neji and Ridha Bouallegue Innov COM Lab, Higher School of Communications of Tunis, Sup Com University of Carthage, Tunis, Tunisia. Email: hasni.neji63@laposte.net;

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Writing in the Computer Science Major

Writing in the Computer Science Major Writing in the Computer Science Major Table of Contents Introduction... 2 Statement of Purpose... 2 Revision History... 2 Writing Tasks in Computer Science... 3 Documentation... 3 Planning to Program:

More information

Title: Topic 3 Software process models (Topic03 Slide 1).

Title: Topic 3 Software process models (Topic03 Slide 1). Title: Topic 3 Software process models (Topic03 Slide 1). Topic 3: Lecture Notes (instructions for the lecturer) Author of the topic: Klaus Bothe (Berlin) English version: Katerina Zdravkova, Vangel Ajanovski

More information

Beyond the Click : The B2B Marketer s Guide to Display Advertising

Beyond the Click : The B2B Marketer s Guide to Display Advertising Beyond the Click : The challenge In B2B marketing, the ultimate objective of any campaign is to generate the most qualified leads possible, convert these leads into new opportunities that fill the sales

More information

Software Development Life Cycle

Software Development Life Cycle 4 Software Development Life Cycle M MAJOR A J O R T TOPICSO P I C S Objectives... 52 Pre-Test Questions... 52 Introduction... 53 Software Development Life Cycle Model... 53 Waterfall Life Cycle Model...

More information

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief Digital Industries Trailblazer Apprenticeship Software Developer - Occupational Brief Table of Contents Contents 1 Software Developer Trailblazer Apprenticeship Introduction... 1 2 Software Developer Trailblazer

More information

Adobe s Approach to Customer Experience Management

Adobe s Approach to Customer Experience Management Adobe s Approach to Customer Experience Management Table of contents 1: Introduction 2: What is not working 3: Adobe s Approach 4: Getting Started 6: Summary 7: For more information Introduction In recent

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

White Paper. Self-Service Business Intelligence and Analytics: The New Competitive Advantage for Midsize Businesses

White Paper. Self-Service Business Intelligence and Analytics: The New Competitive Advantage for Midsize Businesses White Paper Self-Service Business Intelligence and Analytics: The New Competitive Advantage for Midsize Businesses Contents Forward-Looking Decision Support... 1 Self-Service Analytics in Action... 1 Barriers

More information

Exploratory Testing Dynamics

Exploratory Testing Dynamics Exploratory Testing Dynamics Created by James and Jonathan Bach 1 v1.6 Copyright 2005-2006, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted and exploratory testing

More information

SapientNitro Content Strategy 2013 Positioning

SapientNitro Content Strategy 2013 Positioning POINT OF view SapientNitro Content Strategy 2013 Positioning By Kevin P. Nichols, Director and Global Practice Lead for Content Strategy & Anne Casson, Director Content Strategy In the digital and agency

More information

Errors in Operational Spreadsheets: A Review of the State of the Art

Errors in Operational Spreadsheets: A Review of the State of the Art Errors in Operational Spreadsheets: A Review of the State of the Art Stephen G. Powell Tuck School of Business Dartmouth College sgp@dartmouth.edu Kenneth R. Baker Tuck School of Business Dartmouth College

More information

Unpacking Division to Build Teachers Mathematical Knowledge

Unpacking Division to Build Teachers Mathematical Knowledge Unpacking Division to Build Teachers Mathematical Knowledge Melissa Hedges, DeAnn Huinker, and Meghan Steinmeyer University of Wisconsin-Milwaukee November 2004 Note: This article is based upon work supported

More information

Numbers as pictures: Examples of data visualization from the Business Employment Dynamics program. October 2009

Numbers as pictures: Examples of data visualization from the Business Employment Dynamics program. October 2009 Numbers as pictures: Examples of data visualization from the Business Employment Dynamics program. October 2009 Charles M. Carson 1 1 U.S. Bureau of Labor Statistics, Washington, DC Abstract The Bureau

More information

Graphical Environment Tool for Development versus Non Graphical Development Tool

Graphical Environment Tool for Development versus Non Graphical Development Tool Section 4 Computing, Communications Engineering and Signal Processing & Interactive Intelligent Systems Graphical Environment Tool for Development versus Non Graphical Development Tool Abstract S.Daniel

More information