Published using Google Docs
Web2SE 2011 Notes (public / read-only)
Updated automatically every 5 minutes

Web 2.0 SE 2011 Workshop

(Paper link: http://proceedings.2011.icse-conferences.org/icsews11webse/index.html)

May 24, 2011

Pex4Fun Contest URL: http://research.microsoft.com/icse2011contest

Attendees (sign in here):

Andrew Begel (andrew.begel@microsoft.com)

Arie van Deursen (Arie.vanDeursen@tudelft.nl)

Margaret-Anne (Peggy) Storey (mastorey@gmail.com)

Thomas LaToza (tlatoza@cs.cmu.edu)

Gargi Bougie (gbougie@uvic.ca)

Matthias Kovatsch (kovatsch@inf.ethz.ch)

Kelly Lyons (Kelly.Lyons@acm.org) Kelly.Ann.Lyons@gmail.com

Jamie Starke (jrstarke@gmail.com)

Christoph Walesch (info@christoph-walesch.de)

Leif Singer (leif.singer@inf.uni-hannover.de)

Christoph Treude (ctreude@uvic.ca)

Soo Ling Lim (s.lim@cs.ucl.ac.uk)

Takashi Hattori (hattori@sfc.keio.ac.jp)

Dennis Pagano (pagano@cs.tum.edu)

Chris Parnin (chris.parnin@gatech.edu)

Peter Rigby (rigbypc@gmail.com)

Dejana Bajic (dejanab@gmail.com)

Marcelo Cataldo (mcataldo@cs.cmu.edu)

Research Interests

In the introduction round some commonly expressed interests include:

[ feel free to insert your own: ]

Paper 1

Measuring API Documentation on the Web

Chris Parnin and Christoph Treude

Where do developers turn for questions?

Web search dominant way of asking developer questions.

[ If you have a question you’d like (someone) to ask, write it here. ]

How many blog tutorials were advanced vs. introductory?

How do people using search find these many blog posts?

Why do people write coding blogs? What motivates them to write so much? How much effort goes into a good blog post about code?

Can API quality be measured by counting how many people write posts about corner cases and messy areas of the API?

Is it really a crowd writing documentation or is it the same small group (e.g. in stackoverflow and in blogs)?

How do people re-find information about code that they find online?

Do these results generalize to other APIs?

Who are the people who write answers to questions (e.g. on stackoverflow)? What motivates them?  (perhaps put their stackoverflow ranking on their resume? advertisement revenue for blogs? consulting leads based on posts? evangelists?)

Where are the missing answers? Orphaned parts of the API?

We found some evidence for the importance of blogging for evangelists in the Eclipse community: “How Do Developers Blog? An Exploratory Study”, Dennis Pagano and Walid Maalej, MSR 2011

The 12% unblogged APIs might be simple ones that developers generally don't have problems with. (Soo Ling)

Paper 2

Towards Understanding Twitter Use in Software Engineering: Preliminary Findings, Ongoing Challenges and Future Questions

Gargi Bougie, Jamie Starke, Margaret-Anne Storey and Daniel German

How software engineers use twitter

The amount of conversation is drastically higher than average

Amount of information sharing also higher

SE topics on twitter: problem solving, self-promotion, complaints, use of a specific tool for work

twitter brings water cooler atmosphere to distributed developers

Place comments about paper 2 here.

[ If you have a question you’d like (someone) to ask, write it here. ]

Self-promotion or shout-out? [Parnin]

How to identify a software engineer?  LDA topic analysis? Some social network analysis was used, but not much?

        - maybe also look at whom they’re following [Dejana]

- We did something like that by connecting to the source code repositories and comparing author names. But it is hard... [Dennis]

Is Twitter secondary to blogs for detailed solutions to problems or a new primary means of communicating these solutions? [Sean]

Is lifetime an important factor for considering using twitter?  What is value?

Do developers get some kind of benefit in terms of privacy or ephemeral commenting by using twitter?

Chris’s question: what dimensions or problem solving are discussed?

Is Twitter used sometimes instead of IM?

How do you support swifting channels of communication?

Matthias: Have you considered correlating use of Twitter to commits?

Differences in user communities?  Linux = users, Eclipse = dev community https://github.com/eob/twitter-scraper is this the scraper?

No, it’s here: https://github.com/lintool/twitter-corpus-tools (by http://twitter.com/lintool)

Paper 3

Leveraging Social Media to Gather User Feedback for Software Development

Dejana Bajic and Kelly Lyons

Place comments about paper 3 here.

Dell’s idea storm: http://www.ideastorm.com/

Challenges in managing user feedback: identifying best ideas; sustaining community; avoiding disclosure to competitors.

UserVoice = digg for user feedback. Also GetSatisfaction.

inkscape’s blueprint process.

https://blueprints.launchpad.net/inkscape/

Votes replace the Me Too and +1 comments.

[ If you have a question you’d like (someone) to ask, write it here. ]

How does automated feedback (e.g. crash reports) get used by companies w.r.t. user-written feedback?

Do companies feel like they’re missing feedback from customers?

Are companies more likely to share product roadmap of hard-to-implement features vs. features that are easy to copy?

Curious: do software industry people here value individual or collaborative feedback more?

What is the tipping point for number of people asking for a feature before the company implements it?

Suggestions to practitioners for making a good social media presence?

Do companies shun collaborative feedback because of trust and noise?

Any aspects of communities you studied that bias your results?

Did anyone sell their product for money?

What if feedback included donation bucket? User ratings (how often their suggestions are accepted)?

Related sites: getsatisfaction.com, inkscape request features, google waves (perpetual beta paradigm)

Will unique requests (not already internally planned) ever emerge from the community?  What value beyond the idea (votes?)

Are forum users reflective of general users?

Demos

 Arie van Deursen: Pollicino breadcrumb dropping tool for Eclipse. Website: http://www.st.ewi.tudelft.nl/~guzzi/pollicino/

Christophe Treude:  Work Item Explorer, based on IBM Jazz platform (see www.jazz.net). Graph view of work items (nodes and edges) (based on Choosel: http://choosel-mashups.appspot.com/ and http://code.google.com/p/choosel/) 

Abayomi King: Auto-update IM status based on where you are in the IDE.

Soo Ling Lim: StakeSource2.0. Social networking tool to identify and prioritise stakeholders and their requirements. www.stakesource.co.uk. (Tool demo on Friday)

Paper 4

Automatic Status Updates in Distributed Software Development

Abayomi King and Kelly Lyons

Place comments about paper 4 here.

digital natives are people born after 1980?? ‘83

[ If you have a question you’d like (someone) to ask, write it here. ]

How would you measure prevented interruptions?  Diary study?

How much less apprehension turned out in practice vs. before the study?

Were there any positive reasons for using the tool?

Does the size of the team affect whether this is a good idea?

Are other applications besides interruption management?

Paper 5

Supporting the Cooperation of End-User Programmers through Social Development Environments

Leif Singer and Kurt Schneider

how do we

- create a community?

- motivate contributions?

- stabilize the community?

Communities of practice tell us we need to:

Building a community:

- enable public and private exchanges

- need to connect members with each other so they can help each other

- should be “no anonymity” -- really?

encourage contributions by:

- embracing and engaging lurkers (use any activity as a contribution, show activities of others)

- support all levels of involvement (see Bonnie Nardi’s study of community of spreadsheet users), show object statistics

- enable copying (see also Bonnie Nardi’s study -- co-workers could copy each others’ spreadsheets), support lightweight branching of mashups with notifications of changes made to branches

stabilize the community:

- make value visible (low barrier to gratitude)

- support reputation building (attribution)

- recognize outstanding members (badges and achievements)

Some good books on this topic:

- Porter: designing for the social web (http://www.amazon.com/Designing-Social-Web-Joshua-Porter/dp/0321534921)

Currently working on showing spreadsheet visualizations to encourage sharing.

        Related work from Scratch community re: attribution:             Computers Can’t Give Credit: How Automatic Attribution Falls Short in an Online Remixing Community

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1826825

Andres Monroy-Hernandez

Massachusetts Institute of Technology (MIT) - MIT Media Laboratory

Benjamin Mako Hill

Massachusetts Institute of Technology (MIT)

Jazmin Gonzalez-Rivero

Microsoft Corporation - Microsoft Research New England

danah boyd

Microsoft Research; University of New South Wales (UNSW); Harvard University - Berkman Center for Internet & Society

Some resources:
Why It Works (When It Works): Success Factors in Online Creative Collaboration

Kurt Luther’s work on community collaboration.

How is this similar to the Scratch community work? Especially around attribution.

Genes of collective intelligence.

Important lesson: Know your community! Learn what they do, what they want, what their goals are, and support them in their own interests. Watch out that you don’t accidentally subjourn (spelling?) them to your interests, instead.

[ If you have a question you’d like (someone) to ask, write it here. ]

Where do these principles (embrace and engage lurkers, etc.) exactly emerge from? These are findings? Communities of practice literature?

        Yes, see the paper -- that specific one for example is from E. Wenger, R.A. McDermott, and W. Snyder. Cultivating communities of practice: A guide to managing knowledge. Harvard Business Press, 2002.

Introduction to Communities of Practice: http://www.ewenger.com/theory/

Demo time: Programming on the Phone and in the Cloud with Pex4Fun

Nikolai Tillmann, Microsoft Research

http://pex4fun.com

Social environment where it is fun to learn programming

Goal is to create a community where they can share scripts

If you’re a teacher, you can make a course built into Pex 4 Fun.

Need to enable the teacher feature if you want to use this!

Social features:

- shows usage statistics

- live twitter feed

- created a specialized application for mobile phones (involve students in class :) )

http://touchstudioapp.com

Write scripts for the phone on the phone.

Paradigm of programming here is the touch screen

Printing by posting to your wall

With the phone we have many more input and output options (as opposed to just keyboard and print to the screen)

Paper 6

Wikigramming: a Wiki-based Training Environment for Programming

Takashi Hattori

Place comments about paper 6 here.

Open source can cause apprehension (due to culture) but also long time to see results (due to patch/verification process)

Compared with Wikipedia -- passersby can edit, can see changes immediately.

Hence suggesting programming wikistyle (anonymous, no need for version control) etc.

Wikigramming: Wiki (Hiki) + Scheme (Gauche)

Each page represents a function

Potential issues:

- spam, mischief

- edit wars

(but can restore versions (tedious?); independent pages)

Authors are requested to give test cases for functions they will use

Give credit for code that passes test cases it passes

Motivation:

- training for new developers

- prototyping for the end users

Related tools:

- pastebin.com

- codepad.org 

- AdessoWiki (embedded codes in wiki, but not a prog. environment)

http://wikigramming.com/

[ If you have a question you’d like (someone) to ask, write it here. ]

This feels a bit inspired by Boxer, no (literate programming, logo)?  http://edutechwiki.unige.ch/en/Boxer, http://www.soe.berkeley.edu/boxer/

Why is the code separated from the text?

How do you prevent evil programs from destroying the server? (answer: this is described in the paper)

Will writing test cases put users off?

Perhaps translate Scheme to JS and run it on the client! https://csel.cs.colorado.edu/~silkense/js-scheme/    http://www.bluishcoder.co.nz/jsscheme/

[Soo Ling] results from experiences so far? (answer: no experience just yet); contributing test cases first, might be onerous (not required).

Key aspect of a Wiki (links to future content) not used?

[Chris] what value is Wiki really adding?

Comment:  Wikis could be useful -- have code, test cases, documentation in the same environment that is highly collaborative.  

Suggestion: have a classroom experiment to have 10 or so students to work on the same program.

CollabDE by Max Goldman -- plugin for Eclipse to support simultaneous editing (presented at CHASE).   Idea is that this could be used in conjunction with Mechanical Turk so you could outsource your work easily.  Advantage of Wiki approach is that the version issue goes away.

Research Tool Wishlist

Documentation reading tool to aggregate useful information from blogs, official docs, and web forums and restructure them to be coherent.

Brainstorming Session

Group 1

Jill, age 12, Hawaiian native islander. Wants to create a surf board design app.  She’s a hobbyist. Hobbyists make the greatest inventions. Connect the experts to the people who want to build projects.

Large software companies will no longer exist.

She needs an expert. Mary, 30, consultant. Connected to everyone to the hobbyists, and helps Jill with her application. She can use social marketing to market it to her friends and their friends.

Ideas:

Virtual marketing

1 million users

1 million devs creating software

social media leads to fewer or more devs? Does everyone become a developer

connect ot answers

expertise

make money app store, critical mass

discovery of libs/research for proper libs

democratization - innovation - hobbyists

subsistence programming/customization

reuse-at-a-high-level.


Social media means fewer devs => smaller teams.

Group 2

5 years

Cindy, mother of 3, wakes up at 8am

end-user developer

we’ve reached a state where everybody is a developer

distinction between developer and user won’t be clear

she’s creating a mashup for soccer moms

it’s collaborative development

social conflict is moved into online space

everybody can be a developer

- how is she learning things?

we will be better at data mining

we will be better at understanding natural language

capture context

development environment will be customized to her level of ability / mindset

(like a cookie recipe)

development environment makes complexities transparent (class vs. object etc)

helper tools (like Pex) built in

- what will the social aspect be?

fewer nerds programming

programming won’t be as nerd-ish anymore

she communicates with a group of people

make use of content created by other people

cookbooks written for different people (boiling water vs. souffles)

closer to literate programming, don’t want to learn the “nerdy mindset”

using twitter language to define what she’s looking for (requirements) collaboratively

returns a list of “social” search results

a web of who has dealt with similar requirements

how does the coupling work?

- visual, but you can switch to a textual view

Group 3

20 years

everybody’s a developer, natural language programming, acting programs out

programming won’t be the problem, figuring out what you want

capture and observe everything we’re doing to find out what we need - but innovation doesn’t work this way, there needs to be a creative process

Social aspect of engineering software.

Moving to the masses.

Gettysburg address:

software of the people, by the people, for the people, shall not perish from the earth.

Now: Divide & conquer, using social aspect to coordinate the divided work.

Future:

Today: d&c

instead: imlpementation effortless.

Hence; many different alternatives can be easily generated.

And then discussed by end users and the best one picked.

Collaborative design.

You don’t pick alternatives

You give feedback during execution (like, dislike).

Consistency?

Things will get more dynamic

Software adjust to your moods

I want my program to be like yours

Sensings

Discovery & learning.

As you walk around

http://www.switched.com/2011/03/24/color-app-takes-your-photos-public-shows-users-in-150-foot-ra/

Our story:

It’s 2061, 50 years from now.

Sue is a user.

We’re all users. No one is a developer anymore.

Sue is historian.

She seeks to understand the reasons why Hillary Clinton did not get re-elected in 2016.

She has a number of historian friends that she is following and based on her friends

and the way that they make those documents, the software comes up with an interface

and display all of her documents in that interface.

She likes & dislikes, and gives feedback to what she is using.

There’s one thing she is missing.

She gives two examples.

Her application support devices gives another two examples.

She dislikes one, likes the other, and her application is automatically adjusted.

Sue tells her friends, and all friends ...

Our story would be really good if we had more time.

Group 4

Goal in time: 20 years.

Scenario parameters:   general population.

Who are the developer(s)?    Distinction between professional programmers and hobbyists.

Will the distinction between professional and end user developers start to blur ?

Constraints to contributing may start to disappear.

Personalized computer center?   Will also need peripheral devices, in a ubiquitous programming environment.    

Mobile may help in debugging... e.g. send me visual output of what is going on.

Large screens?  multiple monitors....

Notion of a device will be limited.    

Could project or headed mounted display....

Devices  will get smaller, but i/o will become ubiquitous .  

Programming language -- domain specific languages will be more prevalent.  Will be influenced by components, visual languages...  

gestures, natural language

New form factors will effect how we program -- not bound to physical environments.

Code mining.....

Programmer base will change....  more people enabled but have same number of professional developers.