End-user software engineering and distributed cognition

End-user programmers may not be aware of many software engineering practices that would add greater discipline to their efforts, and even if they are aware of them, these practices may seem too costly (in terms of time) to use. Without taking advantage of at least some of these practices, the software these end users create seems likely to continue to be less reliable than it could be. We are working on several ways of lowering both the perceived and actual costs of systematic software engineering practices, and on making their benefits more visible and immediate. Our approach is to leverage the user's cognitive effort through the use of distributed cognition, in which the system and user collaboratively work systematically to reason about the program the end user is creating. This paper demonstrates this concept with a few of our past efforts, and then presents three of our current efforts in this direction.

[1]  Gregg Rothermel,et al.  A methodology for testing spreadsheets , 2001, TSEM.

[2]  James D. Hollan,et al.  Distributed cognition: toward a new foundation for human-computer interaction research , 2000, TCHI.

[3]  Weng-Keen Wong,et al.  Fixing the program my computer learned: barriers for end users, challenges for the machine , 2009, IUI.

[4]  Gregg Rothermel,et al.  End-user software engineering , 2004, Commun. ACM.

[5]  Gregg Rothermel,et al.  Harnessing curiosity to increase correctness in end-user programming , 2003, CHI '03.

[6]  Margaret M. Burnett,et al.  Software visualization for end-user programmers: trial period obstacles , 2008, SoftVis '08.

[7]  Mary Beth Rosson,et al.  Design Planning in End-User Web Development , 2007, IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2007).

[8]  Brad A. Myers,et al.  Designing the whyline: a debugging interface for asking questions about program behavior , 2004, CHI.

[9]  Margaret M. Burnett,et al.  Testing vs. code inspection vs. what else?: male and female end users' debugging strategies , 2008, CHI.

[10]  Mary Beth Rosson,et al.  Paradox of the active user , 1987 .

[11]  Alan F. Blackwell,et al.  First steps in programming: a rationale for attention investment models , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[12]  Rachel K. E. Bellamy,et al.  Can information foraging pick the fix? A field study , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[13]  Daniela Fogli,et al.  End-User Development: The Software Shaping Workshop Approach , 2006, End User Development.

[14]  Gerhard Fischer,et al.  Meta-design: A Framework for the Future of End-User Development , 2006, End User Development.

[15]  Margaret M. Burnett,et al.  Supporting reuse of evolving visual code , 1997, Proceedings. 1997 IEEE Symposium on Visual Languages (Cat. No.97TB100180).

[16]  Margaret M. Burnett,et al.  Effectiveness of end-user debugging software features: are there gender issues? , 2005, CHI.

[17]  G. Loewenstein The psychology of curiosity: A review and reinterpretation. , 1994 .

[18]  A. Leff,et al.  Relational Blocks: A Visual Dataflow Language for Relational Web-Applications , 2007 .

[19]  Rachel K. E. Bellamy,et al.  Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks , 2008, CHI.

[20]  Margaret M. Burnett,et al.  Males' and Females' Script Debugging Strategies , 2009, IS-EUD.

[21]  Peter Pirolli,et al.  Information Foraging , 2009, Encyclopedia of Database Systems.

[22]  Margaret M. Burnett,et al.  Rewarding "Good" Behavior: End-User Debugging and Rewards , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[23]  Hua Zhong,et al.  Extending the boundary of spreadsheet programming: Lessons learned from Chinese governmental projects , 2009, 2009 ICSE Workshop on Software Engineering Foundations for End User Programming.