Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Lenses of Empirical Software Engineering

The Lenses of Empirical Software Engineering

Keynote at ESEM 2015 in Beijing, China.

http://eseiw.iscas.ac.cn/eseiw2015/esem/

Thomas Zimmermann

October 22, 2015
Tweet

More Decks by Thomas Zimmermann

Other Decks in Research

Transcript

  1. © Microsoft Corporation Customer feedback • Bring back the "Up"

    button from Windows XP, • Add cut, copy, & paste into the top-level UI, • More customizable command surface, and • More keyboard shortcuts.
  2. © Microsoft Corporation trinity of software analytics Dongmei Zhang, Shi

    Han, Yingnong Dang, Jian-Guang Lou, Haidong Zhang, Tao Xie: Software Analytics in Practice. IEEE Software 30(5): 30-37, September/October 2013. MSR Asia Software Analytics group: http://research.microsoft.com/en-us/groups/sa/
  3. © Microsoft Corporation history of software analytics Tim Menzies, Thomas

    Zimmermann: Software Analytics: So What? IEEE Software 30(4): 31-37 (2013)
  4. © Microsoft Corporation Alberto Bacchelli, Olga Baysal, Ayse Bener, Aditya

    Budi, Bora Caglayan, Gul Calikli, Joshua Charles Campbell, Jacek Czerwonka, Kostadin Damevski, Madeline Diep, Robert Dyer, Linda Esker, Davide Falessi, Xavier Franch, Thomas Fritz, Nikolas Galanis, Marco Aurélio Gerosa, Ruediger Glott, Michael W. Godfrey, Alessandra Gorla, Georgios Gousios, Florian Groß, Randy Hackbarth, Abram Hindle, Reid Holmes, Lingxiao Jiang, Ron S. Kenett, Ekrem Kocaguneli, Oleksii Kononenko, Kostas Kontogiannis, Konstantin Kuznetsov, Lucas Layman, Christian Lindig, David Lo, Fabio Mancinelli, Serge Mankovskii, Shahar Maoz, Daniel Méndez Fernández, Andrew Meneely, Audris Mockus, Murtuza Mukadam, Brendan Murphy, Emerson Murphy-Hill, John Mylopoulos, Anil R. Nair, Maleknaz Nayebi, Hoan Nguyen, Tien Nguyen, Gustavo Ansaldi Oliva, John Palframan, Hridesh Rajan, Peter C. Rigby, Guenther Ruhe, Michele Shaw, David Shepherd, Forrest Shull, Will Snipes, Diomidis Spinellis, Eleni Stroulia, Angelo Susi, Lin Tan, Ilaria Tavecchia, Ayse Tosun Misirli, Mohsen Vakilian, Stefan Wagner, Shaowei Wang, David Weiss, Laurie Williams, Hamzeh Zawawy, and Andreas Zeller
  5. © Microsoft Corporation 2010-2012: Information Needs for Analytics Tools FOSER

    2010 ICSE 2012 2012-2014: Questions that Software Engineers have for Data Scientists ICSE 2014 2014-now The Emerging Role of Data Scientists Technical Report tom’s data science research
  6. © Microsoft Corporation Obsessing over our customers is everybody's job.

    I'm looking to the engineering teams to build the experiences our customers love. […] In order to deliver the experiences our customers need for the mobile-first and cloud- first world, we will modernize our engineering processes to be customer-obsessed, data- driven, speed-oriented and quality-focused. http://news.microsoft.com/ceo/bold-ambition/index.html
  7. © Microsoft Corporation Each engineering group will have Data and

    Applied Science resources that will focus on measurable outcomes for our products and predictive analysis of market trends, which will allow us to innovate more effectively. http://news.microsoft.com/ceo/bold-ambition/index.html
  8. © Microsoft Corporation Miryung Kim, Thomas Zimmermann, Robert DeLine, Andrew

    Begel: The Emerging Role of Data Scientists on Software Development Teams. Microsoft Research Technical Report MSR-TR-2015-30, April 2015. Miryung Kim Robert DeLine Andrew Begel
  9. © Microsoft Corporation Methodology • Interviews with 16 participants –

    5 women and 11 men from eight different organizations at Microsoft • Snowball sampling – data-driven engineering meet-ups and technical community meetings – word of mouth • Coding with Atlas.TI • Clustering of participants
  10. © Microsoft Corporation Background of Data Scientists Most CS, many

    interdisciplinary backgrounds Many have higher education degrees Strong passion for data I love data, looking and making sense of the data. [P2] I’ve always been a data kind of guy. I love playing with data. I’m very focused on how you can organize and make sense of data and being able to find patterns. I love patterns. [P14] “Machine learning hackers”. Need to know stats My people have to know statistics. They need to be able to answer sample size questions, design experiment questions, know standard deviations, p-value, confidence intervals, etc.
  11. © Microsoft Corporation Background of Data Scientists PhD training contributes

    to working style It has never been, in my four years, that somebody came and said, “Can you answer this question?” I mostly sit around thinking, “How can I be helpful?” Probably that part of your PhD is you are figuring out what is the most important questions. [P13] I have a PhD in experimental physics, so pretty much, I am used to designing experiments. [P6] Doing data science is kind of like doing research. It looks like a good problem and looks like a good idea. You think you may have an approach, but then maybe you end up with a dead end. [P5]
  12. © Microsoft Corporation Activities of Data Scientists Collection Data engineering

    platform; Telemetry injection; Experimentation platform Analysis Data merging and cleaning; Sampling; Data shaping including selecting and creating features; Defining sensible metrics; Building predictive models; Defining ground truths; Hypothesis testing Use and Dissemination Operationalizing predictive models; Defining actions and triggers; Translating insights and models to business values
  13. © Microsoft Corporation Insight Providers Play an interstitial role between

    managers and engineers within a product group Generate insights and to support and guide their managers in decision making Analyze product and customer data collected by the teams’ engineers Strong background in statistics Communication and coordination skills are key
  14. © Microsoft Corporation Insight Providers P2 worked on a product

    line to inform managers needed to know whether an upgrade was of sufficient quality to push to all products in the family. It should be as good as before. It should not deteriorate any performance, customer user experience that they have. Basically people shouldn’t know that we’ve even changed [it].
  15. © Microsoft Corporation Insight Providers Getting data from engineers I

    basically tried to eliminate from the vocabulary the notion of “You can just throw the data over the wall ... She’ll figure it out.” There’s no such thing. I’m like, “Why did you collect this data? Why did you measure it like that? Why did you measure this many samples, not this many? Where did this all come from?”
  16. © Microsoft Corporation Modelling Specialists Act as expert consultants Build

    predictive models that can be instantiated as new software features and support other team’s data-driven decision making Strong background in machine learning Other forms of expertise such as survey design or statistics would fit as well
  17. © Microsoft Corporation Modelling Specialists P7 is an expert in

    time series analysis and works with a team on automatically detecting anomalies in their telemetry data. The [Program Managers] and the Dev Ops from that team... through what they daily observe, come up with a new set of time series data that they think has the most value and then they will point us to that, and we will try to come up with an algorithm or with a methodology to find the anomalies for that set of time series.
  18. © Microsoft Corporation Platform Builders Build data engineering platforms that

    are reusable in many contexts Strong background in big data systems Make trade-offs between engineering and scientific concerns
  19. © Microsoft Corporation Platform Builders P4 worked on platform to

    collect crash data. You come up with something called a bucket feed. It is a name of a function most likely responsible for the crash in the small bucket. We found in the source code who touch last time this function. He gets the bug. And we filed [large] numbers a year with [a high] percent fix rate.
  20. © Microsoft Corporation Polymaths Data scientists who “do it all”:

    − Forming a business goal − Instrumenting a system to collect data − Doing necessary analyses or experiments − Communicating the results to managers
  21. © Microsoft Corporation Polymaths P13 works on a product that

    serves ads and explores her own ideas for new data models. So I am the only scientist on this team. I'm the only scientist on sort of sibling teams and everybody else around me are like just straight-up engineers. For months at a time I'll wear a dev hat and I actually really enjoy that, too. ... I spend maybe three months doing some analysis and maybe three months doing some coding that is to integrate whatever I did into the product. … I do really, really like my role. I love the flexibility that I can go from being developer to being an analyst and kind of go back and forth.
  22. © Microsoft Corporation Team Leaders Senior data scientists who typically

    run their own data science teams Act as data science “evangelists”, pushing for the adoption of data-driven decision making Work with senior company leaders to inform broad business decisions
  23. © Microsoft Corporation Team Leaders P10 and his team of

    data scientists estimated the number of bugs that would remain open when a product was scheduled to ship. When the leadership saw this gap [between the estimated bug count and the goal], the allocation of developers towards new features versus stabilization shifted away from features toward stabilization to get this number back. Sometimes people who are real good with numbers are not as good with words (laughs), and so having an intermediary to sort of handle the human interfaces between the data sources and the data scientists, I think, is a way to have a stronger influence. [Acting] an intermediary so that the scientists can kind of stay focused on the data.
  24. © Microsoft Corporation The Long Tail of Questions Build tools

    for frequent questions Use data scientists for infrequent questions Frequency Questions
  25. © Microsoft Corporation Andrew Begel, Thomas Zimmermann: Analyze this! 145

    questions for data scientists in software engineering. ICSE 2014 Andrew Begel
  26. © Microsoft Corporation It Will Never Work in Theory Ten

    Questions for Researchers Posted Aug 22, 2012 by Greg Wilson I gave the opening talk at MSR Vision 2020 in Kingston on Monday (slides), and in the wake of that, an experienced developers at Mozilla sent me a list of ten questions he'd really like empirical software engineering researchers to answer. They're interesting in their own right, but I think they also reveal a lot about what practitioners want from researchers in general; comments would be very welcome. 1. Vi vs. Emacs vs. graphical editors/IDEs: which makes me more productive? 2. Should language developers spend their time on tools, syntax, library, or something else (like speed)? What makes the most difference to their users? 3. Do unit tests save more time in debugging than they take to write/run/keep updated?
  27. © Microsoft Corporation 3. Do unit tests save more time

    in debugging than they take to write/run/keep updated? 4. Do distribution version control systems offer any advantages over centralized version control systems? (As a sub-question, Git or Mercurial: which helps me make fewer mistakes/shows me the info I need faster?) 5. What are the best debugging techniques? 6. Is it really twice as hard to debug as it is to write the code in the first place? 7. What are the differences (bug count, code complexity, size, etc.), if any, between community-driven open source projects and corporate-controlled open source projects? 8. If 10,000-line projects don't benefit from architecture, but 100,000- line projects do, what do you do when your project slowly grows from the first size to the second? 9. When does it make sense to reinvent the wheel vs. use an existing library? 10. Are conferences worth the money? How much do they help junior/intermediate/senior programmers?
  28. © Microsoft Corporation raw questions (provided by the respondents) “How

    does the quality of software change over time – does software age? I would use this to plan the replacement of components.”
  29. © Microsoft Corporation raw questions (provided by the respondents) “How

    does the quality of software change over time – does software age? I would use this to plan the replacement of components.” “How do security vulnerabilities correlate to age / complexity / code churn / etc. of a code base? Identify areas to focus on for in-depth security review or re-architecting.”
  30. © Microsoft Corporation raw questions (provided by the respondents) “How

    does the quality of software change over time – does software age? I would use this to plan the replacement of components.” “How do security vulnerabilities correlate to age / complexity / code churn / etc. of a code base? Identify areas to focus on for in-depth security review or re-architecting.” “What will the cost of maintaining a body of code or particular solution be? Software is rarely a fire and forget proposition but usually has a fairly predictable lifecycle. We rarely examine the long term cost of projects and the burden we place on ourselves and SE as we move forward.”
  31. © Microsoft Corporation raw questions (provided by the respondents) “How

    does the quality of software change over time – does software age? I would use this to plan the replacement of components.” “How do security vulnerabilities correlate to age / complexity / code churn / etc. of a code base? Identify areas to focus on for in-depth security review or re-architecting.” “What will the cost of maintaining a body of code or particular solution be? Software is rarely a fire and forget proposition but usually has a fairly predictable lifecycle. We rarely examine the long term cost of projects and the burden we place on ourselves and SE as we move forward.” descriptive question (which we distilled) How does the age of code affect its quality, complexity, maintainability, and security?
  32. © Microsoft Corporation ❷ Discipline: Development, Testing, Program Management Region:

    Asia, Europe, North America, Other Number of Full-Time Employees Current Role: Manager, Individual Contributor Years as Manager Has Management Experience: yes, no. Years at Microsoft
  33. © Microsoft Corporation Microsoft’s Top 10 Questions Essential Essential +

    Worthwhile How do users typically use my application? 80.0% 99.2% What parts of a software product are most used and/or loved by customers? 72.0% 98.5% How effective are the quality gates we run at checkin? 62.4% 96.6% How can we improve collaboration and sharing between teams? 54.5% 96.4% What are the best key performance indicators (KPIs) for monitoring services? 53.2% 93.6% What is the impact of a code change or requirements change to the project and its tests? 52.1% 94.0% What is the impact of tools on productivity? 50.5% 97.2% How do I avoid reinventing the wheel by sharing and/or searching for code? 50.0% 90.9% What are the common patterns of execution in my application? 48.7% 96.6% How well does test coverage correspond to actual code usage by our customers? 48.7% 92.0%
  34. © Microsoft Corporation Microsoft’s 10 Most Unwise Questions Unwise Which

    individual measures correlate with employee productivity (e.g. employee age, tenure, engineering skills, education, promotion velocity, IQ)? 25.5% Which coding measures correlate with employee productivity (e.g. lines of code, time it takes to build software, particular tool set, pair programming, number of hours of coding per day, programming language)? 22.0% What metrics can use used to compare employees? 21.3% How can we measure the productivity of a Microsoft employee? 20.9% Is the number of bugs a good measure of developer effectiveness? 17.2% Can I generate 100% test coverage? 14.4% Who should be in charge of creating and maintaining a consistent company-wide software process and tool chain? 12.3% What are the benefits of a consistent, company-wide software process and tool chain? 10.4% When are code comments worth the effort to write them? 9.6% How much time and money does it cost to add customer input into your design? 8.3%
  35. © Microsoft Corporation Take your time to defining ground truth

    You have communication going back and forth where you will find what you’re actually looking for, what is anomalous and what is not anomalous in the set of data that they looked at.
  36. © Microsoft Corporation Operationalization of models is important They accepted

    [the model] and they understood all the results and they were very excited about it. Then, there’s a phase that comes in where the actual model has to go into production. … You really need to have somebody who is confident enough to take this from a dev side of things.
  37. © Microsoft Corporation Translate findings into business values In terms

    of convincing, if you just present all these numbers like precision and recall factors… that is important from the knowledge sharing model transfer perspective. But if you are out there to sell your model or ideas, this will not work because the people who will be in the decision-making seat will not be the ones doing the model transfer. So, for those people, what we did is cost benefit analysis where we showed how our model was adding the new revenue on top of what they already had.
  38. © Microsoft Corporation Choose the right questions for the right

    team (a) Is it a priority for the organization (b) is it actionable, if I get an answer to this, is this something someone can do something with? and, (c), are you as the feature team — if you're coming to me or if I'm going to you, telling you this is a good opportunity — are you committing resources to deliver a change? If those things are not true, then it's not worth us talking anymore.
  39. © Microsoft Corporation Work closely with consumers from day one

    You begin to find out, you begin to ask questions, you being to see things. And so you need that interaction with the people that own the code, if you will, or the feature, to be able to learn together as you go and refine your questions and refine your answers to get to the ultimate insights that you need.
  40. © Microsoft Corporation Explain the findings in simple terms A

    super smart data scientist, their understanding and presentation of their findings is usually way over the head of the managers…so my guidance to [data scientists], is dumb everything down to seventh-grade level, right? And whether you're writing or you're presenting charts, you know, keep it simple.
  41. © Microsoft Corporation David Lo, Nachiappan Nagappan, Thomas Zimmermann: How

    practitioners perceive the relevance of software engineering research. ESEC/SIGSOFT FSE 2015: 415-425 David Lo Nachi Nagappan
  42. © Microsoft Corporation Feedback-Driven Conferences Organizers Assess/improve industrial relevance Publicity

    for the conference Authors Additional feedback on research More visibility Practitioners Overview of latest research
  43. © Microsoft Corporation Summarize 571 Papers Empirical study of using

    software defect data from one project to predict defects in another project.
  44. © Microsoft Corporation Proof-Of-Concept In your opinion, how important are

    the following pieces of research? Please respond to as many as possible. (at least 1 response is required)* (40 randomly selected summaries)
  45. © Microsoft Corporation Proof-Of-Concept On the previous page, you selected

    the following research idea as “Unwise”: “Technique to identify bugs that contain a bug from a bug report.” To help us better understand your response, could you please explain why.
  46. © Microsoft Corporation Response Statistics 3,000 randomly selected Microsoft practitioners

    working in technical roles 512 responded (17% response rate) developers (291), testers (87), and PMs (102) 17,913 ratings, 16-47 ratings per paper 173 reasons why papers are “unwise”
  47. © Microsoft Corporation Data Analysis E-Score: Proportion of ratings that

    are “Essential” EW-Score: Proportion of ratings that are “Essential” or “Worthwhile” U-Score: Proportion of ratings that are “Unwise” In your opinion, how important are the following pieces of research? Please respond to as many as possible. (at least 1 response is required)*
  48. © Microsoft Corporation Practitioner Perception 0% 10% 20% 30% 40%

    50% 60% 70% 80% 90% 100% Ratings Demographics Essential Worthwhile Unimportant Unwise
  49. © Microsoft Corporation Highly Rated Research (1) An approach to

    help developers identify and resolve conflicts early during collaborative software development, before those conflicts become severe and before relevant changes fade away in the developers' memories. Technique that clusters call stack traces to help performance analysts effectively discover highly impactful performance bugs (e.g., bugs impacting many users with long response delay). Symbolic analysis algorithm for buffer overflow detection that scale to millions of lines of code (MLOC) and can effectively handle loops and complex program structures.
  50. © Microsoft Corporation Highly Rated Research (2) Automatic generation of

    efficient multithreaded random tests that effectively trigger concurrency bugs. Debugging tool that uses objects as key abstractions to support debugging operations. Instead of setting breakpoints that refer to source code, one sets breakpoints with reference to a particular object. Technique to make runtime reconfiguration of distributed systems in response to changing environments and evolving requirements safe and being done in a low- disruptive way through the concept of version consistency of distributed transactions.
  51. © Microsoft Corporation Relevance of Conferences 0% 10% 20% 30%

    40% 50% 60% 70% 80% 90% 100% 2010 2011 2012 2013 2014 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 2009 2010 2011 2012 2013 ICSE FSE Essential Worthwhile Essential Worthwhile
  52. © Microsoft Corporation Barriers to Relevance • A tool is

    not needed • An empirical study is not actionable • Generalizability issue • Cost outweighs benefit • Questionable assumptions • Disbelief in a particular technology/methodology • Another solution seems better or another problem more important • Proposed solution has side effects
  53. © Microsoft Corporation Lightweight Approach Summarize the papers: 80 hours

    $ 8,000 Paper rating by practitioners. 512 participants, 22.5 minutes2 on average. Total of 192 hours $ 19,200 Analysis of the survey results: 40 hours $ 4,000 License of Survey tool (Enterprise Plan, 1 month) $ 199 Amazon gift certificates as incentive to participate in the survey (3 certificates, each $75) $ 225 GRAND TOTAL $ 31,624 “Thanks for that summary, it is actually interesting by itself” “Reading through just the titles was a fascinating read – some really interesting work going on!”
  54. © Microsoft Corporation Researchers Data scientists are *now* in software

    teams. They need your help! Better techniques to analyze data. New tools to automate the collection, analysis, and validation of data. Translate research findings so that they can be easily consumed by industry. Learn success strategies from data scientists.
  55. © Microsoft Corporation Educators We need more data scientists. :-)

    Data science is not always a distinct role on the team; it is a skillset that often blends with other skills such as software development. Data science requires many different skills. Communication skills are very important. Data scientists very similar to researchers.
  56. © Microsoft Corporation FSE 2016: 24th ACM SIGSOFT International Symposium

    on the Foundations of Software Engineering Seattle, WA, USA, November 13-19, 2016
  57. © Microsoft Corporation Measurements Surveys Benchmarking Qualitative Analysis Clustering Prediction

    What-if analysis Segmenting Multivariate Analysis Interviews Many Ways to Get to Insight