|
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 J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klemmer. Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover. IEEE Software, Volume 26, Issue 5 (Sept/Oct 2009). Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klemmer. Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code. CHI: ACM Conference on Human Factors in Computing Systems, Boston, MA, 2009. Joel Brandt, Philip J. Guo, Joel Lewenstein, Scott R. Klemmer. Opportunistic Programming: How Rapid Ideation and Prototyping Occur in Practice. Fourth Workshop on End-User Software Engineering. May, 2008. William Choi, Joel Brandt, Scott R. Klemmer. Rehearse: Coding Interactively while Prototyping. Poster at UIST 2008: ACM Symposium on User Interface Software and Technology. October, 2008. (video) |
|
|
Joel Brandt, Mira Dontcheva, Marcos Weskamp, Scott R. Klemmer. Example-Centric Programming: Integrating Web Search into the Development Environment. CSTR-2009-01. (video) |
|
|
Joel Brandt |
|
|
Joel Brandt (jbrandt at stanford dot edu) |
