|
Opportunistic Programming is a method of software development that emphasizes speed and ease of development over code robustness and maintainability. Coding in this way allows individuals to explore many ideas quickly, which has an important place in the overall sofware engineering process. Steps like prototyping, ideation and discovery are often best accomplished by building a functional piece of software quickly and easily without the typical concerns of a broader-scale software engineering project. Through fieldwork and a laboratory study, we are focusing on five characteristics of opportunistic programming: building software from scratch using high-level tools, adding new functionality through copy-and-paste, atypically rapid iteration, considering code to be impermanent, and facing a unique set of debugging challenges. Using results from these two projects, we plan on developing tools aimed at opportunistic programming that focus on debugging, code foraging and reuse, and documentation. |
|
|
Joel Brandt, Philip Guo, Joel Lewenstein and Scott R. Klemmer. Opportunistic Programming: How Rapid Ideation and Prototyping Occur in Practice. Fourth Workshop on End-User Software Engineering. May, 2008. |
|
|
Joel Brandt (jbrandt at stanford dot edu) |
