Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

  • View
    13

  • Download
    0

Embed Size (px)

DESCRIPTION

Audio+slide video is posted at http://margaretannestorey.wordpress.com. Slides from a Keynote at Mining Software Repository Conference 2012, co-located with ICSE 2012 in Zurich, Switzerland.

Text of Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

  • The Evolution of the Social Programmer Social Media and Software Engineering Margaret-Anne (Peggy) Storey Keynote for MSR 2012, Zurich, SwitzerlandUniversity of Victoria, Victoria, BC Canada

  • **Acknowledgements

  • *

  • CHISEL group, UVic, Canada: Christoph TreudeBrendan ClearyFernando Figueira FilhoJamie StarkeGargi BougiePeter RigbyLars GrammelChris Parnin, Georgia Tech, USA Leif Singer, Leibniz Universitt, GermanyOhad Barzilay, Tel-Aviv University, Israel Daniel German, UVic, CanadaArie van Deursen, TU Delft, the NetherlandsLi-Te Cheng, IBM Research

  • Software repositoriesGoalsSoftware repositories such as source control systems, archived communications between project personnel, and defect tracking systems are used to help manage the progress of software projects. Software practitioners and researchers are recognizing the benefits of mining this information to support the maintenance of software systems, improve software design/reuse, and empirically validate novel ideas and techniques. MSR CFPs 2004-2012

  • RoadmapBroaden goals of MSR Redefine software repository to include social media Explore the impact of social media on software engineering

    Suggest how future MSR research may play a role in emerging practices and software ecosystems

  • Broadening Goals

  • Beyond maintenance activities and developer actions

  • The emergence of software ecosystems and communities of practice

  • Redefining Software repositories

  • Historical importance of tools!Integrated development environments:

    Software forges:

  • Trailblazers and early adopters of many communication tools in software development...

  • PlaceSpace P. Dourish and V. Bellotti. Awareness and Coordination in Shared Workspaces. Proceedings of the ACM Conference on Computer-Supported Cooperative Work (CSCW'92).

  • Architecture of participation Tim OReilly

  • "We shape our tools and thereafter our tools shape us", Laws of Media by Marshall McLuhanhttp://www.youtube.com/watch?v=A7GvQdDQv8g

  • McLuhan Quotes: It is the framework which changes with each new technology and not just the picture within the frame. 1955The medium is the message. 1958There are many reasons why most people prefer to live in the age just behind them. It's safer. To live right on the shooting line, right on the frontier of change, is terrifying. 1970

  • Medium

  • What role is social media playing in Software Engineering?M.-A. Storey, C. Treude, A. van Deursen and L.-T. Cheng. The Impact of Social Media on Software Engineering Practices and Tools. In FoSER 10:Proceedings of the FSE/SDP workshop on Future of software engineering research.

  • Social Media Channels in Software EngineeringWikis, social networking, etc.TaggingMicrobloggingQuestion & Answer WebsitesReputation BloggingSource code comments

  • Research methods usedStudies to inform tool designs and software practicesMixed methods:Mining and analysis of software artifacts Ethnographic observationsInterviewsSurveys

  • Wikis, social networking, etc.TaggingMicroBloggingQuestion & Answer WebsitesReputation BloggingSource code comments

  • Source code commentsHow programmers use source comments for communicating with developers?

  • The role of annotations in program comprehension

    i.e. for human usagee.g. comments, bookmarks, tasks, etcSource Code Comments: Graffiti or Information?

  • Fermat: "I have a truly marvellous proof of this proposition which this margin is too narrow to contain." Marginalia, by H. J. Jackson 2001

  • Marginalia in source codeDevelopers co-opt source code comments for navigation and task managementBut cant be shared and how they are used varied according to developers sophistication with toolsM.-A. Storey, L.-T. Cheng, J. Singer, M. Muller, D. Myers, J. Ryall. 2007. How Programmers can Turn Comments into Waypoints for Code Navigation. In Proceeding of: Software Maintenance, 2007. ICSM 2007.

  • Wikis, social networking, etc.Question & Answer WebsitesReputation TaggingSource code commentsMicroBloggingBlogging

  • Social TaggingInspired by how social tagging is used on the web

  • Tagging on the web Social bookmarking, folksonomies

  • TagSEA: Tagging waypoints in source code and gathering into tours

    M.-A. Storey, J. Ryall, J. Singer, D. Myers, L.-T. Cheng, M. Muller, 2009. How Software Developers Use Tagging to Support Reminding and Refinding. IEEE Transactions on Software Engineering (TSE), 2009.

  • Tagging inStudied introduction and adoption of tags by several teams for work itemsC. Treude and M.-A. Storey. Work Item Tagging: Communicating Concerns in Collaborative Software Development. In IEEE Transactions on Software Engineering38, 1 (January/February 2012). pp. 19-34.

  • Tagging inFindings: Categorization (cross cutting concerns)OrganizationFinding and refindingTeam work practices emergedC. Treude and M.-A. Storey. Work Item Tagging: Communicating Concerns in Collaborative Software Development. In IEEE Transactions on Software Engineering38, 1 (January/February 2012). pp. 19-34.

  • Tags used in

  • ConcernLines

  • WorkItemExplorer: ICSE, Friday 10:45am

  • Wikis, social networking, etc.Question & Answer WebsitesReputation TaggingSource code commentsMicroBloggingBlogging

  • MicrobloggingWhy do developers tweet?

  • MicrobloggingSoftware engineers tweet actively (share) facts about software engineering topics and technology

    G. Bougie, J. Starke, M.-A. Storey and D. German. Towards Understanding Twitter Use in Software Engineering: Preliminary Findings Ongoing Challenges and Future QuestionsIn Proceedings of the 2nd International Workshop on Web 2.0 for Software Engineering. 2011.

  • Should microblogging be integrated in the IDE for the enterprises?

    A. Guzzi, M. Pinzger, A. van Deursen. Combining micro-blogging and IDE interactions to support developers in their quests. ICSM 2010.W. Reinhard, Communication is the key Support Durable Knowledge Sharing in Software Engineering by Microblogging. SENSE 2009.

  • Wikis, social networking, etc.Question & Answer WebsitesReputation TaggingSource code commentsMicroBloggingBlogging

  • BloggingWhy do developers blog?

  • Blogging (1)Our internal blog (only readable by those at the company) is really a virtual "water cooler". We are expected to blog there at least once a week (spelling and grammar don't matter) just to keep others at the company updated on what we are doing. If you can't find something interesting to say at least once a week, then you're not doing enough interesting work. Blogs are everything from: I hit this really annoying bug, to I completed this new awesome feature. (Ian Bull, Software Engineer, EclipseSource)

  • Blogging (2)Determining requirements through blogs [Park and Maurer, CHASE 2009]

    How developers blog: high-level concept discussion and requirements [Pagano and Maalej, MSR 2011]

    Blogs play a role in documenting APIs [Treude and Parnin, Web2SE 2011]

  • Wikis, social networking, etc.Question & Answer WebsitesReputation TaggingSource code commentsMicroBloggingBlogging\

  • Question and Answer WebsitesWhat role do Question and Answer websites play in software engineering?

  • Stackoverflow

  • Over 92% of the questions on Stackoverflow are answered, and for those 92% the median answer time is 11 minutes

    L. Mamykina, B. Manoim, M. Mittal, G. Hripcsak, and B. Hartmann. Design lessons from the fastest q&a site in the west. CHI 2011.

  • StackoverflowHow-to questions prevalent, and used frequently by novices C. Treude, O. Barzilay and M.-A. Storey. How do Programmers Ask and Answer Questions on the Web? NIER/ICSE 2011.

  • Linking Stackoverflow data with API usageC. Parnin, C. Treude, L. Grammel and M.-A. Storey. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow. Under submission, May 25 2012, related blog (15,000 hits so far).

  • Stackoverflow as Crowd DocumentationCoverage of API documentation: 77% of the Java API classes & 87% of Android API classes

    Speed of coverage: C. Parnin, C. Treude, L. Grammel and M.-A. Storey. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow. Under submission, May 25 2012, related blog (15,000 hits so far).

  • Impact on documentation tools? Automatically generating documentationVisualizing crowd documentationhttp://latest-print.crowd-documentation.appspot.com/?api=android

  • Wikis, social networking, etc.Question & Answer WebsitesReputation TaggingSource code commentsMicroBloggingBlogging

  • ReputationWhy do developers and recruiters use reputation features in social networking sites?

  • Social Coding in GitHubGitHub supports transparency Management of profiles and their visibility important for project successExplicit self promotion not valuedL. Dabbish, H.C. Stuart, J. Tsay and J. Herbsleb. Social coding in github: transparency and collaboration in an open software repository. CSCW 2012.

  • Masterbranch and Coderwall

  • Developer motivationsL. Singer, F. F. Filho, B. Cleary, C. Treude, M.-A. Storey, K. Schneider. Mutual Assessment in the Social Programmer Ecosystem: An Empirical Investigation of Developer Profile Aggregators Under submission, June 2012.As a software developer, you need to learn a lot. It's a