O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Benevol 2012 Keynote: The Social Software (R)evolution

1.396 visualizações

Publicada em

In this talk, I consider various channels of social media and consider how they impact software engineering. I then focus on what the channels enable (e.g. peer production, social programmer) and how these may change the laws and assumptions of software evolution.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Benevol 2012 Keynote: The Social Software (R)evolution

  1. 1. The Social Software (R)evolution:Impact of Social Media on Software EvolutionMargaret-Anne (Peggy) StoreyKeynote for BENEVOL 2012, TU Delft, the Netherlands
  2. 2. CHISEL group, UVic, Canada: – Brendan Cleary – Christoph Treude – Fernando Figueira Filho – Jamie Starke – Gargi Bougie – Peter Rigby – Lars Grammel Arie van Deursen, TU Delft, the Netherlands Chris Parnin, Georgia Tech, USA Leif Singer, Leibniz Universität, Germany Ohad Barzilay, Tel-Aviv University, Israel Daniel German, UVic, Canada
  3. 3. Research interests Human and social aspects in software and knowledge engineering Goal: develop theories to inform or suggest tool design Impact of social media on software engineeringM.-A. Storey, C. Treude, A. van Deursen and L.-T. Cheng. The Impact of Social Media on Software Engineering Practices andTools. In FoSER ’10: Proceedings of the FSE/SDP workshop on Future of software engineering research.
  4. 4. Space PlaceP. Dourish and V. Bellotti. Awareness and Coordination in Shared Workspaces. Proceedings of the ACM Conference onComputer-Supported Cooperative Work (CSCW92).
  5. 5. “Architecture of participation” Tim O’Reilly
  6. 6. Roadmap How social media impacts software engineering How social media impacts today’s software evolution challenges Future research directions for software evolutionM.-A. Storey. Keynote for MSR 2012. The Evolution of the Social Programmer: Social Media and Software Engineering. Onslideshare.
  7. 7. Social Media Channels inSoftware Engineering Social Coding Reputation Tagging Wikis, social networking, etc. Question & Answer Websites Microblogging Blogging
  8. 8. Social Coding Tagging Reputation Wikis, social networking, etc. Question &Answer Websites MicroBlogging Blogging
  9. 9. Social Tagging Inspired by how social tagging is used on the web(and by inadequacies with source code comments)
  10. 10. TagSEA: Social bookmarks (tagging) tocreate “waypoints” through softwareM.-A. Storey, J. Ryall, J. Singer, D. Myers, L.-T. Cheng, M. Muller, 2009. How Software Developers Use Tagging to SupportReminding and Refinding. IEEE Transactions on Software Engineering (TSE), 2009.
  11. 11. Tagging in Studied introduction and adoption of tags by several teams for work items Findings: – Categorization (cross cutting concerns) – Organization – Finding and refinding – Team work practices emergedC. Treude and M.-A. Storey. Work Item Tagging: Communicating Concerns in Collaborative Software Development. In IEEETransactions on Software Engineering 38, 1 (January/February 2012). pp. 19-34.
  12. 12. Social Coding Reputation Tagging Wikis, social networking, etc. Question &Answer Websites MicroBlogging Blogging
  13. 13. Microblogging Why do developers tweet?
  14. 14. Microblogging Software engineers tweet (share) facts about software engineering topics and technology Should microblogging be integrated in the IDE for the enterprise?G. Bougie, J. Starke, M.-A. Storey and D. German. Towards Understanding Twitter Use in Software Engineering: Preliminary FindingsOngoing Challenges and Future Questions 2nd International Workshop on Web 2.0 for Software Engineering. 2011.A. Guzzi, M. Pinzger, A. van Deursen. Combining micro-blogging and IDE interactions to support developers in their quests.ICSM 2010.
  15. 15. Social Coding Reputation Tagging Wikis, social networking, etc. Question &Answer Websites MicroBlogging Blogging
  16. 16. BloggingWhy do developers blog?
  17. 17. BloggingDetermining requirements through blogs[Park and Maurer, CHASE 2009] How developers blog: domain concepts and functional requirements (linked to commits) [Pagano and Maalej, MSR 2011] Blogs play a role in documenting APIs [Treude and Parnin, Web2SE 2011]
  18. 18. Social Coding Reputation Tagging Wikis, social networking, etc. MicroBlogging Question &Answer Websites Blogging
  19. 19. Question and Answer WebsitesWhat role do Question and Answer websites play in software engineering?
  20. 20. Stackoverflow 160" 1,000,000"Millions 140" StackOverflow StackOverflow Website 800,000" Register 120" Traffic Users 100" 600,000" 80" views 60" 400,000" 40" 200,000" 20" visits 0" people 0" Jun+09" Aug+09" Oct+09" Dec+09" Feb+10" Dec+10" Feb+11" Apr+11" Jun+11" Aug+11" Oct+11" Dec+11" Apr+10" Oct+10" Aug+10" Jun+10" Jul+08" Dec+08" Jun+09"Dec+09" Jun+10"Dec+10" Jun+11"Dec+11" 140000" 3.1M 6.2M 1.5M 120000" StackOverflow 100000" Ques=onsPer Month 80000" 60000" Ques=ons Answers PersonJhours (es=mateof10minperpost) 40000" 20000" 0" Jul+08" Dec+08" Jun+09" Dec+09" Jun+10" Dec+10" Jun+11" Nov+11" 12M 3.5k 274th Comments Viewsperminute USAwebsiteranking (QuantcastJan2012)
  21. 21. Over 92% of the questions on Stackoverflow are answered, and for those 92% the median answer time is 11 minutesL. Mamykina, B. Manoim, M. Mittal, G. Hripcsak, and B. Hartmann. Design lessons from the fastest q&a site in the west.CHI 2011.
  22. 22. Stackoverflow How-to questions prevalent, and used frequently by novices Crowd documentation (API documentation)C. Treude, O. Barzilay and M.-A. Storey. How do Programmers Ask and Answer Questions on the Web? NIER/ICSE 2011.C. Parnin, C. Treude, L. Grammel and M.-A. Storey. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussionson Stack Overflow”. Under submission.
  23. 23. Social CodingReputation Tagging Wikis, social networking, etc. Question & Answer Websites MicroBlogging Blogging
  24. 24. ReputationWhy do developers and recruiters use reputation features in social networking sites?
  25. 25. Social Coding in GitHub Management of profiles and their visibility important for project success Explicit self promotion not valuedL. Dabbish, H.C. Stuart, J. Tsay and J. Herbsleb. Social coding in github: transparency and collaboration in an opensoftware repository. CSCW 2012.
  26. 26. Masterbranch and Coderwall Mutual Assessment in the Software EcosystemL. 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 To appear CSCW 2013. Blog: http://to.leif.me/devprofiles
  27. 27. Social Coding Reputation Tagging Wikis, social networking, etc. Question &Answer Websites MicroBlogging Blogging
  28. 28. Social CodingHow do social coding sites support collaborative processes in software engineering and improve project quality?
  29. 29. Social Coding in GitHub GitHub supports transparency Transparency may promote good testing practices; infrastructure for drive-by commits Valuable resource for researchL. Dabbish, H.C. Stuart, J. Tsay and J. Herbsleb. Social coding in github: transparency and collaboration in an opensoftware repository. CSCW 2012.G. Gousios and D. Spinellis, GHTorrent: Githubs data from a firehose, MSR 2012.R. Pham, L. Singer, O. Liskin, F. Figueira Filho, K. Schneider. On Testing Culture in GitHub Projects, To Appear ICSE 2012.
  30. 30. Social Coding Reputation Tagging Wikis, social networking, etc. Question &Answer Websites MicroBlogging/ Blogging Community Portals
  31. 31. Wikis etc...• Wikis useful for documentation, requirements engineering, knowledge sharing• Impact of social networking in software engineering (Codebook) - can also follow software artifacts• Crowdsourcing of coding (TopCoder) and testing (e.g. Google’s A/B testing approach)• Community portals in software communities• Facilitates end-user involvement in closed, open source and mixed initiative projects
  32. 32. Marshall McLuhanThe medium is the message. 1958 It is the framework which changes with each new technology and not just the picture within the frame. 1955 We shape our tools and thereafter our tools shape us. Laws of Media by Marshall McLuhan
  33. 33. Medium
  34. 34. Making sense of the social media ecosystem (the social era) in software engineering Social Coding Reputation Tagging Wikis, social networking, etc. Question & Answer Microblogging Websites Blogging
  35. 35. SocialMedia
  36. 36. EnhancesTask management, coordination Awareness, transparency Learning Personal portfolio development, expertise finding, recruitmentCrowdsourcing of content and peer curation ofknowledge
  37. 37. SocialMedia
  38. 38. Retrieves??Programmer “rock stars”Oral culture (talkbacks on blogs)End-user programmersPortfolios“On Twitter, I follow a few prominent software developers. For example, KellySommers from Canada, she’s constantly trying new things. I don’t think sheever sleeps. So she’s a great source of inspiration.”(From the Reputation study)
  39. 39. SocialMedia
  40. 40. Reverses??Geek cultureReliance on searchInterruptionsSecurity holesSpaghetti code “Google as the most important member on your programming team”, Brendan Cleary
  41. 41. SocialMedia
  42. 42. Obsolesces??Formal documentationIn-house expertise, certain jobsNeed for co-locationClassroom educationEmail listsCVs "Its always good to document a widget, but its more important in many cases to document a process [...]. Its the context of how you use the widget thats much more important."
  43. 43. (Distributed) Community formation, Community fragmentation,awareness, transparency, informal processes,knowledge curation, geek culture,learning, reuse, reliance on search,reputation security concerns, interruptions, advertisements Social MediaProgramming gurus,end users as developers, In-house expertise/jobs,verbal discussions, formal documentation,portfolios, classroom education,communities of practice CVs, email lists, need for co-location
  44. 44. Shift from the technology of social softwareto what it and a culture of participationenables... Social Coding Reputation Tagging Wikis, Q&A Microblog Blogging
  45. 45. Peer productionBeyond source code!Crowd documentationDeveloper profiles and portfoliosTechnology diffusionLearning materialsMotivations: personal and socialInnovation friendly!
  46. 46. The evolution of the social programmer Not just code writing ability Ability to search Ability to network Ability to document/publish to facilitate search KnowledgeAble rather than Knowledgeablehttp://www.academiccommons.org/commons/essay/knowledgable-knowledge-able, by Michael Wesch
  47. 47. Evolution of software engineering process?
  48. 48. Peer production Social programmer Software ecosystemsSocial networks and communities of practice Cambrian explosion of technologies User empowerment Semantics and quantification Social development process Social Programmer Ecosystem
  49. 49. SoftwareEvolution
  50. 50. Laws of software evolution Software that remains useful over time, will continually change… become more complex increase in size decrease in quality … Manny Lehman, 1925-2010
  51. 51. Fred BrooksNo silver bullet...Accidental versusessential complexity!
  52. 52. Essential complexitiesComplexity of softwareConformability (real world is complex)Changeability (success drives change)Invisibility (dynamic aspects)"there  is  no  single  development,  in  either  technology  or   management  technique,  which  by  itself  promises  even   one  order  of  magnitude  [tenfold]  improvement  within  a   decade  in  productivity,  in  reliability,  in  simplicity.“    Fred   Brooks,  1986
  53. 53. Software development as ahuman activityMythical man month, Brooks’ LawMany good designers, but only somany “great” designersProposes a hierarchical structurewith documentation for communication
  54. 54. Evolution challenges(human-centric) Requirements change, understanding Developer knowledge Team work (which process is best?) Documentation, knowledge management Testing, quality control Research on software evolution
  55. 55. Yesterday’s software evolution world.... Knowledge Programs Technologies Developers Teams Users Tools Processes
  56. 56. Today’s software evolution world.... Knowledge Programs Technologies Developers Teams Users Tools Processes
  57. 57. BUT: Are we doing any better?Are developers more productive, successful,creative today?Is social software closing gap between good andgreat designers?Is quality and variety of software anddocumentation improving?Are today’s users more satisfied?Is today’s software helping users become moreproductive (paradox of computing)?
  58. 58. Something to chew on...Was the problem of building an encyclopedia ofknowledge an essential complexity or an accidentalone?
  59. 59. Research opportunities andchallengesGreat resources out there to support research ofevolution! But software development landscapechanging rapidly, can research keep up?Are the laws/theories of evolution outdated?Is the social development ecosystem addressing“essential” complexities or just accidental ones?What risks are we facing? (IP, company assets,programmer time, ...)
  60. 60. Concluding remarkIf code is a form of communication, is theway we write software (process, culture andtools) a new medium?“If we understand the revolutionary transformations causedby new media, we can anticipate and control them; but if wecontinue in our self-induced subliminal trance, we will betheir slaves.” Marshall McLuhan, 1974
  61. 61. IEEE Software special issueBridging Software Communities through SocialNetworking, January/February 2013
  62. 62. http://www.thechiselgroup.orghttp://margaretannestorey.wordpress.com/ @thechiselgroup, @margaretstorey mstorey@uvic.ca Funded by NSERC/DRDC/IBM