title: "Opportunistic Programming: How Rapid Ideation and Prototyping Occur in Practice"
authors: Joel Brandt, Philip J. Guo, Joel Lewenstein, Scott R. Klemmer
venue: Workshop on End-User Software Engineering (WEUSE)
year: 2008
tweet: Opportunistic programmers prioritize speed and ease of iteration over code quality and robustness
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.
bibtex: >
@inproceedings{BrandtOpportunisticWEUSE2008,
author = {Brandt, Joel and Guo, Philip J. and Lewenstein, Joel and Klemmer, Scott R.},
title = {Opportunistic Programming: How Rapid Ideation and Prototyping Occur in Practice},
booktitle = {Proceedings of the 4th International Workshop on End-user Software Engineering},
series = {WEUSE '08},
year = {2008},
isbn = {978-1-60558-034-0},
location = {Leipzig, Germany},
pages = {1--5},
numpages = {5},
url = {http://doi.acm.org/10.1145/1370847.1370848},
doi = {10.1145/1370847.1370848},
acmid = {1370848},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {end-user software engineering, opportunistic programming, prototyping},
}