skip to main content
10.1145/1370847.1370848acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Opportunistic programming: how rapid ideation and prototyping occur in practice

Published: 12 May 2008 Publication History

Abstract

At times, programmers work opportunistically, emphasizing speed and ease of development over code robustness and maintainability. They do this to prototype, ideate, and discover; to understand as quickly as possible what the right solution is. Despite its importance, opportunistic programming remains poorly understood when compared with traditional software engineering. Through fieldwork and a laboratory study, we observed five characteristics of opportunistic programming: Programmers build software from scratch using high-level tools, often add new functionality via copy-and-paste, iterate more rapidly than in traditional development, consider code to be impermanent, and face unique debugging challenges because their applications often comprise many languages and tools composed without upfront design. Based on these characteristics, we discuss future research on tools for debugging, code foraging and reuse, and documentation that are specifically targeted at this style of development.

References

[1]
S. Clarke. What is an end-user software engineer? In End-User Software Engineering Dagstuhl Seminar, Dagstuhl, Germany, 2007.
[2]
M. Csikszentmihalyi. Flow: The Psychology of a Optimal Experience. Harper Collins, New York, NY, USA, 1990.
[3]
B. Hartmann, S. Doorley, and S. R. Klemmer. Hacking, mashing, and gluing: A study of opportunistic design and development. Technical Report 2006-14, Stanford HCI Group, 2006. http: //hci.stanford.edu/cstr/reports/2006-14.pdf.
[4]
M. Kim, L. Bergman, T. Lau, and D. Notkin. An ethnographic study of copy and paste programming practices in OOPL. In Proceedings of the International Symposium on Empirical Software Engineering, pages 83--92, Washington, DC, USA, 2004. IEEE Computer Society.
[5]
T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: A study of developer work habits. In Proceedings of the International Conference on Software Engineering, pages 492--501, New York, NY, USA, 2006. ACM.
[6]
D. A. Norman. Things that Make Us Smart, chapter 3, pages 43--76. Perseus Books, New York, NY, USA, 1993.
[7]
T. M. O'Brien. Dead time (.code, compile, wait, wait, wait, test, repeat). http://www.oreillynet.com/onjava/blog/2006/03/dead_time_code_compile_wait_wa.html.
[8]
J. K. Ousterhout. Scripting: Higher-level programming for the 21st century. IEEE Computer, pages 23--30, 1998.
[9]
P. L. T. Pirolli. Information Foraging Theory. Oxford University Press, Oxford, England, 2007.
[10]
J. Reason. Human Error. Cambridge University Press, Cambridge, England, 1990.
[11]
J. Schachter. Guest lecture on creating del.icio.us. Stanford CS343 course: What Do Great Software Developers Know? http://cs343-spr0607.stanford.edu/index.php/Writeups:Joshua_Schachter.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
WEUSE '08: Proceedings of the 4th international workshop on End-user software engineering
May 2008
102 pages
ISBN:9781605580340
DOI:10.1145/1370847
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. end-user software engineering
  2. opportunistic programming
  3. prototyping

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Acceptance Rates

WEUSE '08 Paper Acceptance Rate 20 of 21 submissions, 95%;
Overall Acceptance Rate 20 of 21 submissions, 95%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)33
  • Downloads (Last 6 weeks)6
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media