Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
March 28, 2011
The Reproduction of Remix Culture in Programming: Source Code Reuse without Components Susan Elliott Sim
! Assistant Professor
! Fun Fact! Eco-tourist on shark research vessel on Great Barrier Reef
About Me
1
2
My Approach
! Interdisciplinary and problem-driven! Ph.D. in computer science (software engineering)! Draws heavily on literature from science and technology studies
! Mixed methods! Use both qualitative and quantitative empirical methods! Career spans 26 empirical studies, including 7 experiments with >100 participants,
surveys of >400 respondents, and 7 field sites on 3 continents.
! Products are data, tools, and critical essays
Research Themes
! What are the boundaries and exclusions in software development?! How people accomplish software development
! Study by using empirical methods and by building provocative software tools
! Examples! Code retrieval on the web! Agile software process! Legitimation of requirements expertise
3
4
Code Search on the Web
! Close reading of results from a series of studiesMedha Umarji, Susan Elliott Sim, and Cristina V. Lopes. 2008. Archetypal Internet-Scale Source Code Searching. Paper read at 4th International Conference on Open Source Systems, 8-10 September 2008, at Milan, Italy.
Susan Elliott Sim, Medha Umarji, Sukanya Ratanotayanon, and Cristina V. Lopes. 2012. How Well do Search Engines Support Code Retrieval on the Web? ACM Transactions on Software Engineering and Methodology.
Susan Elliott Sim, and Kavita Philip. 2008. Software Source Code Mashups as Transnational Circuits of Know-How. Paper read at CSCW 2008 Workshop: Tinkering, Tailoring, and Mashing: The Social and Collaborative Practices of the Read-Write Web, 9 November 2008, at San Diego, CA.
! Plus results from work in progress
Overview
! Claim: Popular culture is influencing how people develop software.! Argument:
! Software reuse idealizes rationality and control.! Remix culture is becoming mainstream.! Remix practices that are appearing in software reuse violates existing ideals.
! Implications: Rethinking is needed in software development, business, and intellectual property.
5
6
Software Reuse
! Idea: Build software from from existing software rather than building from scratch! McIlroy et al. (1968) “Mass Produced Software Components”! Brooks (1995) Buy vs. build as a promising attack on essential difficulties
! Accepted practice to use libraries and APIs! Cloud computing and software services are current state of the art
Johannes Sametinger, Software Engineering with Components, Springer-Verlag, 1997.
Practices and Tools for Software Reuse! Methods: Component-Based Software Engineering! Standardized Taxonomies and Ontologies! Repositories and Search! Contracts and Regulated Marketplaces
7
8
9
10
Culture in Software Development
! Methodical and amethodical software development ! Truex et al. analyzed texts on methods for software development
! Historically, method was “how we did it,” but gradually amended with “and how you ought to do it”
! Postmodern analysis- privileged and marginal! Reader response theory- intertextuality
Duane Truex, Richard Baskerville, and Julie Travis, “Amethodical Systems Development: The Deferred Meaning of Systems Development Methods,” Accounting, Management & Information Technology, 10, pp. 53–79, 2000.
Privileged Methodical Text
1. Software development is a managed controlled process.
3. Software development is a linear, sequential process.
5. Software development is a replicable, universal process
7. Software development is a rational, determine, and goal driven process.
Marginalized Amethodical
2. Software development is random, opportunistic process driven by accident.4. Software development processes are simultaneous, overlapping and there are gaps.6. Software development occurs in completely unique and idiographic forms.8. Software development is negotiated, compromised, and capricious.
11
12
Things to Notice
! Component boundaries are not contested! Ownership coincides with authorship
! Ensured by licensing
! Provenance is tracked! To ensure license compliance
Remix Culture
! The set of ethics and norms that places the collective rather than the individual as primary in the production of creative works.
! “Creativity and innovation always builds on the past.” Lawrence Lessig! Not simple copying (unauthorized or other), but collage, bricolage, and assemblage
! Participation blurs producer/consumer, subject/object distinctions! Examples
! Digital video and audio remixing
13
14
Clip: Rip! A Remix Manifesto
! http://films.onf.ca/rip-a-remix-manifesto/
If you look at individual forms of configurable culture, let’s say making a mashup or modifying a video game or creating machinima, which is when you take video game characters and you make a movie out of them, each of those forms might only have 2%, 5%, 10% of the population engaged in them, but when you add it all up, the majority of us... are engaging in some form in configurable culture.
-Aram Sinnreich in an interview with PRI
Aram Sinnreich, Mashed Up! The Rise of Configurable Culture, 2010.
15
16
Source Code Remixing?
The development of the Science Activity Planner “included many Web ‘shopping trips’ to search for open source components that fit customer requests”J.S. Norris and P.-H. Kamp, "Mission-Critical Development with Open Source Software: Lessons Learned," IEEE Software, vol. 21, pp. 42-49, 2004.
17
18
[I was] Looking for a base-64 encode/decode function implemented in C++. Google searches didn't turn up anything useful. Because I was writing a web server; I knew that Apache would be doing something similar; so I went straight to the source code and dug through by hand to find the function I needed.
Pervasiveness of Remixing
! How often do you search for source code on the web?
! In a field study, 223 searches for source code were observed.! Nearly all were for examples! One person conducted 40
searches in two days looking for a component (and still wasn’t done)
0
10
20
30
40
50
Never
Once per month
Once per week
Every day
Many times/day
19
20
From Reuse to Remix (2006 vs. 2010)
20
40
60
80
100
Reference Examples
Code to Reuse As-Is
Goal
20
40
60
80
100
Target
A few lines o
f code
Component
Umarji, Sim, and Lopes, 2008 and study in progress.
Novel Software Reuse Practices
! Amethodical! Does not follow prescribed method, relies on chance and happenstance
! Snippets! Does not respect component boundaries! Usually a few lines of code
! Copy, paste, and modify! Not download and call
! Collective! Repositories without gatekeepers
! Know-how, rather than property! Licenses?
21
22
Changing Culture for Software
! Contributors diversify! Recognized experts, professionals, hobbyists, commenters! Crowdsourcing of questions
! Source code can be found in articles, podcasts, uploaded slide decks, how-tos, tutorials, and other documentation! Not just in repositories
! Wider variety of source code available! Not just components
! Forums and IRC for building community! Conferences and unconferences offline
What about tools?
! Smaller units as first class citizens
! Component boundaries are contested
! Leverage social computing
23
24
25
26
Effectiveness of Search Tools
0
0.175
0.350
0.525
0.700
Google Koders Krugle GCS SourceForge
P@10
0
0.175
0.350
0.525
0.700
Google Koders Krugle GCS SourceForge
BlockSubsystem
Susan Elliott Sim, Medha Umarji, Sukanya Ratanotayanon, and Cristina V. Lopes. 2012. How Well do Search Engines Support Code Retrieval on the Web? ACM Transactions on Software Engineering and Methodology.
Software Reuse
components
repositories
controlled and planned
architectures
correctness and consistency
professional software developers
Snippet Remixing
how-to and executable know-how
web pages, forums, email
ad hoc
combinations
reputation and appearance
learners and end-user programmers
27
28
Privileged Methodical Text
1. Software development is a managed controlled process.
3. Software development is a linear, sequential process.
5. Software development is a replicable, universal process
7. Software development is a rational, determine, and goal driven process.
Marginalized Amethodical
2. Software development is random, opportunistic process driven by accident.4. Software development processes are simultaneous, overlapping and there are gaps.6. Software development occurs in completely unique and idiographic forms.8. Software development is negotiated, compromised, and capricious.
Implications
! Software development! Business! Intellectual Property
29
30
Software Development
! Amethodical practices need to be acknowledged! Practitioners: Stop driving copy-and-paste programming into a dark corner.
Embrace it and create techniques for doing it well.! Research: Strict adherence to methodical practices risks alientation from
professionals and decreasing relevance.! Most research on snippet remixing is being done by in human-computer
interaction rather than software engineering
Intellectual Property
! Has many commonalities with music and video remixing! De minimus
! What is the smallest possible unit that can have intellectual property?
! Authorship! Who created the software?! How to acknowledge and trace provenance at the snippet level?
31
32
Overview
! Claim: Popular culture is influencing how people develop software.! Argument:
! Software reuse idealizes rationality and control.! Remix culture is becoming mainstream.! Remix practices that are appearing in software reuse violates existing ideals.
! Implications: Rethinking is needed in software development, business, and intellectual property.
Questions?
34
33
34