Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover

  • Authors:
  • Joel Brandt;Philip J. Guo;Joel Lewenstein;Mira Dontcheva;Scott R. Klemmer

  • Affiliations:
  • Stanford University;Stanford University;GoodGuide.com;Adobe Systems;Stanford University

  • Venue:
  • IEEE Software
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programmers often write code to prototype, ideate, and discover. To do this, they work opportunistically, emphasizing speed and ease of development over code robustness and maintainability. How do opportunistic programmers make these trade-offs, and how does their work's structure compare to more formal software engineering practices? Opportunistic programmers build software using high-level tools and often add new functionality via copy-and-paste from the Web. They iterate rapidly, consider code impermanent, and find debugging particularly challenging. Five opportunistic-programming principles can help guide the development of tools that explicitly support prototyping in code.