SIG: End Users Creating Effective Software

0 downloads 0 Views 70KB Size Report
mal development processes, modeling diagrams, or test adequacy criteria, and are not likely to invest time learning about such things. This is because in most ...
CHI 2004

‫׀‬

Special Interest Group

24-29 April

‫׀‬

Vienna, Austria

End Users Creating Effective Software CHI”2004 Special Interest Group

Brad A. Myers Margaret Burnett Human Computer Interaction Inst. Elec. Engr. & Computer Science Carnegie Mellon University Oregon State University Pittsburgh, PA 15213-3891 Corvallis, Oregon, 97331-3202 (412) 268-5150 541-737-2539 [email protected] [email protected] http://eecs.oregonstate.edu/EUSES/ Abstract

and credibility. Software resources linked by end users to monitor non-safety-critical medical conditions can cause unnecessary pain or discomfort for users who rely on them. Besides spreadsheets, such problems are ubiquitous in two particularly rapidly growing types of software end users develop: open resource coalitions [8] and dynamic web applications [9].

Is it possible to bring the benefits of rigorous software engineering methodologies to end users? End users create software when they use spreadsheet systems, web authoring tools and graphical languages, when they write educational simulations, spreadsheets, and dynamic e-business web applications. Unfortunately, however, errors are pervasive in end-user software, and the resulting impact is sometimes enormous. A growing number of researchers and developers are working on ways to make the software created by end-users more reliable. This special interest group meeting will help start to form a community of researchers who are addressing this topic.

While some software development and dependability problems have been addressed by existing methods and tools for professional programmers, such methods are usually not suitable for end-user programmers. End users have very different training and background than professional programmers. End users also face different motivations and work constraints than professional programmers. They are not likely to know about quality control mechanisms, formal development processes, modeling diagrams, or test adequacy criteria, and are not likely to invest time learning about such things. This is because in most cases, end users are not striving to create the best software they can; rather, they have their “real goals” to achieve: accounting, teaching, managing safety and financial data, or simply enhancing quality of life.

Categories & Subject Descriptors: D.2.5 Testing and Debugging; H.1.2 User/Machine Systems—Software psychology Keywords: End-User Software Engineering, Testing, Empirical Studies of Programming, Psychology of Programming, Programming by Demonstration. INTRODUCTION

Two recent NSF workshops have determined that end-user software is in need of serious attention [2]. The reasons are compelling. The number of end-user programmers in the United States is expected to reach 55 million by 2005, as compared to only 2.75 million professional programmers [1]. Unfortunately, however, errors are pervasive in software created by end users. When the software that end users create is not dependable, there can be serious consequences for the people whose retirement funds, credit histories, e-business revenues, and even health and safety rely on decisions made based on that software. For example, a Texas oil firm lost millions of dollars in an acquisition deal through spreadsheet errors [7].

Researchers and developers of end-user software tools are just starting to address this important problem. The National Science Foundation recently funded an Information Technology Research (ITR) project to develop and investigate technologies for enabling End Users to Shape Effective Software. This “EUSES” consortium consists of researchers from Oregon State University, Carnegie Mellon University, Drexel University, Penn State University, University of Nebraska, and Cambridge University who have already demonstrated some interesting progress in tools and techniques in this area. The special interest group (SIG) meeting at CHI’04 is designed to connect these researchers with others who are interested in allowing users to create more correct software. We hope the SIG will bring together researchers already in this area with researchers in the related areas of Empirical Studies of Programming, Psychology of Programming, and with practitioners interested in current and future techniques that can be embodied in tools and development processes.

Even when the errors in end-user-created software are noncatastrophic, however, their effects can matter. Web applications created by small-business owners to promote their businesses do just the opposite if they contain bad links or pages that display incorrectly, resulting in loss of revenue Copyright is held by the author/owner(s). CHI 2004, April 24–29, 2004, Vienna, Austria. ACM 1-58113-703-6/04/0004.

1592

CHI 2004

‫׀‬

Special Interest Group

24-29 April

SOME CONTRIBUTING TECHNOLOGIES

‫׀‬

Vienna, Austria

hope that this SIG will help begin to form a community so these and other related topics can begin to be addressed.

There is a tremendous range of technologies that can be brought to bear on this problem. This section highlights a number that are being developed by the EUSES Consortium, and we hope to find out about others at the SIG.

ACKNOWLEDGEMENTS This research was funded in part by the EUSES Consortium via the National Science Foundation (ITR-0325273). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

The Natural Programming Project at Carnegie Mellon University is investigating a variety of techniques around the idea of applying computer-human interaction principles to the design of programming languages and environments. An earlier effort identified how non-programmers think about algorithm design, and used these results to design a new programming language called HANDS, containing novel features that enabled people to create more correct and complete programs [6]. Current work is addressing how the programming environment can help with the identification, debugging and prevention of errors, and will be presented at CHI’2004 [5].

REFERENCES 1. Boehm, B., Abts, A., Brown, S., Chulani, B., Clark, E., Horowitz, R., Madachy, D., Reifer, and Steece, B., Software Cost Esimation with Cocomo Ii. 2000, Upper Saddle River, NJ: Prentice Hall PTR. 2. Boehm, B. and Basili, V., “Gaining Intellectual Control of Software Development.” Computer, 2000. 33(5): pp. 27-33. 3. Burnett, M., Cook, C., Pendse, O., Rothermel, G., Summet, J., and Wallace, C. “End-User Software Engineering with Assertions in the Spreadsheet Paradigm,” in Proceedings Int'l. Conf. Software Engineering. 2003. Portland, OR: pp. 93-103. 4. Erwig, M. and Burnett, M. “Adding Apples and Oranges,” in Fourth International Symposium on Practical Aspects of Declarative Languages. 2002. 5. Ko, A.J. and Myers, B.A. “Designing the Whyline, a Debugging Interface for Asking Why and Why Not Questions About Runtime Failures,” in Proceedings CHI'2004: Human Factors in Computing Systems. 2004. Vienna, Austria: to appear. 6. Pane, J.F., Ratanamahatana, C.A., and Myers, B.A., “Studying the Language and Structure in Non-Programmers' Solutions to Programming Problems.” International Journal of HumanComputer Studies, 2001. 54(2): pp. 237-264. http://www.cs.cmu.edu/~pane/IJHCS.html. 7. Panko, R., “Finding Spreadsheet Errors: Most Spreadsheet Models Have Design Flaws That May Lead to Long-Term Miscalculation.” Information Week, 1995. pp. 100. 8. Raz, O. and Shaw, M. “An Approach to Preserving Sufficient Correctness in Open Resource Coalitions,” in Proceedings of the 10th International Workshop on Software Specification and Design. 2000. 9. Ricca, F. and Tonella, P. “Analysis and Testing of Web Applications,” in Proceedings of the International Conference on Software Engineering. 2001. pp. 25-34. 10. Robertson, T., Prabhakararao, S., Burnett, M., Cook, C., Ruthruff, J., Beckwith, L., and Phalgune, A. “Impact of Interruption Style on End-User Debugging,” in Proceedings CHI 2004: Human Factors in Computing Systems. 2004. Vienna, Austria: to appear. 11. Rode, J. and Rosson, M.B. “Programming at Runtime: Requirements and Paradigms for Nonprogrammer Web Application Development,” in IEEE Symposium on Human-Centric Computing Languages and Environments. 2003. 12. Rosson, M.B. and Seals, C. “Teachers as Simulation Programmers: Minimalist Learning and Reuse,” in Proceedings CHI'2001: Human Factors in Computing Systems. 2001. Seattle, WA: pp. 237-244. 13. Ruthruff, J., Creswick, E., Burnett, M., Cook, C., Prabhakararao, S., Fisher, M., and Main, M. “End-User Software Visualizations for Fault Localization,” in Proceedings ACM Symposium on Software Visualization. 2003. San Diego, CA: pp. 123-132.

The End-User Software Engineering project at Oregon State University aims to improve the reliability of software produced by end-user programmers in general, and by spreadsheet users in particular. Some results have included What-You-See-Is-What-You-Test (WYSIWYT) integrated with fault localization [13], assertions for end-user programmers [3], and semi-automated detection of erroneous combinations of units in spreadsheets [4]. A recent emphasis has been on how to interest users in end-user software engineering devices without detrimentally interrupting their problem-solving efforts [10]. Penn State researchers in the Informal Learning in Software Construction project are studying real world situations and communities that can motivate and aid non-programmers in learning and using end-user programming tools. Prior work characterized the problems of public school teachers learning to build visual simulations, and designed minimalist training materials and reusable code to serve as scaffolding [12]. Recent research is studying the mental models of web software construction held by sophisticated end-users, and is using these results to develop a tool for building simple web applications [11]. EUSES Consortium researchers are working on a variety of other approaches as well, which cannot be included here due to space constraints. Among them are fault detection through statistical methods and through program analysis, pedagogical methods to encourage a quality-control culture for users of technology, and motivational and attention allocation issues for end-user programmers. CONCLUSIONS

To achieve high quality end-user software, we believe that research is required in three general areas: (1) studies of how end-users recognize and address quality concerns in design and implementation, (2) languages and other technologies that may enhance the quality of software built by end-users, and (3) educational programs aimed at enhancing users’ analysis and appreciation of software quality. We

1593