Can we make developers care about operations?
Can we make developers care about operations? Jrgen Cito shares real-world experience of developers struggling with operations and details a journey to incorporate runtime performance aspects into the developer's daily workflow and reduce performance problems reaching production.
Talk Title | Can we make developers care about operations? |
Speakers | Jurgen Cito (University of Zurich) |
Conference | O’Reilly Velocity Conference |
Conf Tag | Build Resilient Distributed Systems |
Location | London, United Kingdom |
Date | October 18-20, 2017 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
Jürgen Cito shares real-world experience of developers struggling with operations and details a journey to incorporate runtime performance aspects into the developer’s daily workflow and reduce performance problems reaching production. Operations observes software deployed in a production environment to capture interactions and behavior at runtime through monitoring and instrumentation. The collected runtime information is used to make informed decisions, usually under the umbrella term “analytics.” Most of this information, but especially performance metrics (e.g., execution times, throughput, CPU utilization), comes in the form of time series graphs in dashboards or numbers in reports. However, this is exactly the representation of analytics that software developers struggle with. In interviews, almost all software developers go by gut-feeling when investigating performance issues rather than consulting any existing operations data. This situation is quite frustrating, considering enough data would be available to investigate the issue properly. When asked about the precedence that gut-feeling takes over data, the answer almost always was about usability and convenience: It is hard to comb through all possible logs, find the right dashboards, and go back and forth to code in the IDE. In other words, traditional operations analytics does not fit into the work of software engineers, whose daily workflow involves producing high volumes of code in an IDE. Current analytics solutions do not present runtime operations data in the right abstraction for software engineers, who require tighter feedback loops between code and production runtime. Jürgen explains why performance metrics should be intertwined with source code artifacts (e.g., method calls and loops) in the IDE to provide this information in the right context and aid the software development workflow. Augmenting source code with dynamic operations data from runtime yields enough information to the software developer to make informed, data-driven decisions on how to perform code changes. Jürgen shares a prototype of this approach—an open source IDE plugin that combines runtime performance information with source code and leverages machine learning to provide performance predictions for small code changes (adding methods and foreach loops).