An approach for categorizing end user programmers to guide software engineering research

Over 64 million Americans used computers at work in 1997, and we estimate this number will grow to 90 million in 2012, including over 55 million spreadsheet and database users and 13 million self-reported programmers. Existing characterizations of this end user population based on software usage provide minimal guidance on how to help end user programmers practice better software engineering. We describe an enhanced method of characterizing the end user population, based on categorizing end users according to the ways they represent abstractions. Since the use of abstraction can facilitate or impede achieving key software engineering goals (such as improving reusability and maintainability), this categorization promises an improved ability to highlight niches of end users with special software engineering capabilities or struggles. We have incorporated this approach into an in-progress survey of end user programming practices.

[1]  Gerhard Fischer,et al.  End-user modifiability in design environments , 1990, CHI '90.

[2]  B. Bloom Taxonomy of educational objectives , 1956 .

[3]  Simon L. Peyton Jones,et al.  A user-centred approach to functions in Excel , 2003, ICFP '03.

[4]  Mary Shaw,et al.  Abstraction Techniques in Modern Programming Languages , 1984, IEEE Software.

[5]  Rob Miller,et al.  LAPIS: smart editing with text structure , 2002, CHI Extended Abstracts.

[6]  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.

[7]  Laurent Guittet,et al.  User Defined Objects are First Class Citizen , 1999, CADUI.

[8]  Maria Jean Johnstone Hall A risk and control-oriented study of the practices of spreadsheet application developers , 1996, Proceedings of HICSS-29: 29th Hawaii International Conference on System Sciences.

[9]  Margaret M. Burnett,et al.  Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm , 2001, Journal of Functional Programming.

[10]  M. Fisher,et al.  The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms , 2005, WEUSE@ICSE.

[11]  James C. Spohrer,et al.  KidSim: programming agents without a programming language , 1994, CACM.

[12]  Margaret M. Burnett,et al.  End-user software visualizations for fault localization , 2003, SoftVis '03.

[13]  Barry W. Boehm,et al.  Cost models for future software life cycle processes: COCOMO 2.0 , 1995, Ann. Softw. Eng..

[14]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[15]  Raymond R. Panko,et al.  What we know about spreadsheet errors , 1998 .

[16]  Brad A. Myers,et al.  Getting more out of programming-by-demonstration , 1999, CHI '99.

[17]  William G. Griswold,et al.  Automated assistance for program restructuring , 1993, TSEM.

[18]  Brad A. Myers,et al.  Pursuit: graphically representing programs in a demonstrational visual shell , 1994, CHI Conference Companion.

[19]  Mira Balaban,et al.  Abstraction as a means for end-user computing in creative applications , 2002, IEEE Trans. Syst. Man Cybern. Part A.

[20]  David G. Novick,et al.  Quick: a user-interface design kit for non-programmers , 1990, UIST '90.

[21]  Alan F. Blackwell,et al.  AutoHAN: an architecture for programming the home , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[22]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[23]  N. P. Edwards,et al.  The effect of certain modular design principles on testability , 1975, Reliable Software.

[24]  Bonnie A. Nardi,et al.  A small matter of programming , 1993 .

[25]  D. L. Parnas,et al.  The influence of software structure on reliability , 1975, Reliable Software.

[26]  Mary Shaw,et al.  The "55M End-User Programmers" Estimate Revisited , 2005 .

[27]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.