An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
Information Foraging Theory: Adaptive Interaction with Information
Information Foraging Theory: Adaptive Interaction with Information
Two studies of opportunistic programming: interleaving web foraging, learning, and writing code
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
No Code Required: Giving Users Tools to Transform the Web
No Code Required: Giving Users Tools to Transform the Web
Extracting client-side web user interface controls
ICWE'10 Proceedings of the 10th international conference on Web engineering
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
Pragmatic reuse in web application development
Proceedings of the 33rd International Conference on Software Engineering
Reusing web application user-interface controls
ICWE'11 Proceedings of the 11th international conference on Web engineering
Emerson: accessible scripting for applications in an extensible virtual world
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Software engineers' information behaviour and implicit relevance indicators
International Journal of Knowledge and Web Intelligence
Task-specific information retrieval systems for software engineers
Journal of Computer and System Sciences
Software developers' information needs: towards the development of intelligent recommender systems
iUBICOM'11 Proceedings of the 6th international conference on Ubiquitous and Collaborative Computing
Recommending source code for use in rapid software prototypes
Proceedings of the 34th International Conference on Software Engineering
An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology (TOSEM)
SNIPR: complementing code search with code retargeting capabilities
Proceedings of the 2013 International Conference on Software Engineering
A web-centred approach to end-user software engineering
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Hi-index | 0.00 |
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.