ABB Dev Interaction Data

Over 30,000 hours of developer interaction data in Visual Studio captured with the Blaze tool.

See sample » Get data » Get tool »

Details

Dataset was captured during developers' daily interactions with Visual Studio, consisting of:
  • 32,811 development hours
  • 196 different developers, ranging in contribution from 7 hours to 3,129 hours
  • 400+ different messages, representing developer actions and events from the IDE

**Please cite the following:

K. Damevski, D. Shepherd, J. Schneider, L. Pollock."Mining Sequences of Developer Interactions in Visual Studio for Usage Smells".IEEE Transactions on Software Engineering. 2016. PDF DOI

W. Snipes, A. Nair, E. Murphy-Hill."Experiences Gamifying Developer Adoption of Practices and Tools".Proceedings of the 36th International Conference on Software Engineering (ICSE 2013) -- SEIP Track pp.1-24. PDF DOI


Samples of data

Below we provide two example videos of Visual Studio usage and their corresponding log files. Viewing the video and comparing it with the log output provides insight into the type of information captured by Blaze. For more detail on log format see Data Format.

Example #1 - Find in File



In the above video the user is interested in finding all instances of the string "command" in his/her open file. To do this they press "Crtl + F", which initiates the Find and Replace dialog. The user then enters "command" into the search box. Upon each press of the "Find Next" button the user's cursor is placed at the next instance of "command" in the open file. The Blaze log created during this sequence is shown below.

2017-04-12 13:35:07Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:35:09Z,125,View.Find and Replace,WindowView,Find and Replace,View
2017-04-12 13:35:09Z,125,Edit.Find,Immediate,Find and Replace,Navigation.Unstructured
2017-04-12 13:35:14Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:35:14Z,125,View.Find and Replace,WindowView,Find and Replace,View
2017-04-12 13:35:15Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:35:15Z,125,View.Find and Replace,WindowView,Find and Replace,View
2017-04-12 13:35:16Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:35:17Z,125,View.Find and Replace,WindowView,Find and Replace,View
2017-04-12 13:35:18Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:35:18Z,125,View.Find and Replace,WindowView,Find and Replace,View
2017-04-12 13:35:19Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:35:19Z,125,View.Find and Replace,WindowView,Find and Replace,View

Example #2 - Call Hierarchy



In the above video the user wants to see which methods call the method HashModel.Compute. To do this, he/she uses the context menu to select the "Call Hierarchy" command. This opens the Call Hierarchy view, which shows the callers and callees of HashModel.Compute. The user clicks on several callees in the Call Hierarchy view, which opens them in the code editor. The Blaze log created during this sequence is shown below.

2017-04-12 14:01:44Z,125,View.File,WindowView,2d5f566d26f4a9dde79488d4106317681011edbc,View
2017-04-12 14:01:48Z,125,View.Call Hierarchy,WindowView,Call Hierarchy,View
2017-04-12 14:01:48Z,125,EditorContextMenus.CodeWindow.ViewCallHierarchy,Immediate,Call Hierarchy,Navigation.Structured
2017-04-12 14:01:53Z,125,View.File,WindowView,2d5f566d26f4a9dde79488d4106317681011edbc,View
2017-04-12 14:01:55Z,125,View.Call Hierarchy,WindowView,Call Hierarchy,View
2017-04-12 14:01:56Z,125,View.File,WindowView,51471e6912d5cdbf46f582e2a2cf0ea8d5e7ad6b,View
2017-04-12 14:01:57Z,125,View.File,WindowView,2d5f566d26f4a9dde79488d4106317681011edbc,View
2017-04-12 14:01:57Z,125,View.Call Hierarchy,WindowView,Call Hierarchy,View

List of data uses

The following research papers have used this dataset:

K. Damevski, D. Shepherd, J. Schneider, L. Pollock."Mining Sequences of Developer Interactions in Visual Studio for Usage Smells".IEEE Transactions on Software Engineering. 2016. PDF DOI

V. Singh, L. Pollock, W. Snipes, N.A. Kraft. "A Case Study of Program Comprehension Effort and Technical Debt Estimations"In Proceedings of the 24th IEEE International Conference on Program Comprehension (ICPC'16) DOI

K. Damevski, H. Chen, D. Shepherd, L. Pollock."Interactive Exploration of Developer Interaction Traces using a Hidden Markov Model".In Proceedings of the 13th International Conference on Mining Software Repositories (MSR’16) PDF DOI

W. Snipes, E. Murphy-Hill, T. Fritz, M. Vakilian, K. Damevski, A. Nair, D. Shepherd."A Practical Guide to Analyzing IDE Usage Data".The Art and Science of Analyzing Software Data. 2015. Elsevier. ISBN: 9780124115194. Book Source-Code-Examples

K. Damevski, D. Shepherd, L. Pollock."A Field Study of How Developers Locate Features in Source Code".Journal of Empirical Software Engineering pp.1-24. PDF DOI

V. Singh, W. Snipes, N.A. Kraft. "A Framework for Estimating Interest on Technical Debt by Monitoring Developer Activity Related to Code Comprehension"In Proceedings of the 6th IEEE International Workshop on Managing Technical Debt (MTD'14) PDF DOI

W. Snipes, A. Nair, E. Murphy-Hill."Experiences Gamifying Developer Adoption of Practices and Tools".Proceedings of the 36th International Conference on Software Engineering (ICSE 2013) -- SEIP Track pp.1-24. PDF DOI


Data Format

Blaze records user interactions with Visual Studio as an event stream. Below is an example, which we will use to explain the format of the stream.
2017-04-12 13:43:58Z,125,View.VisualStudioBgOrFg,VisualStudioBackground,VisualStudio:Background,NA
2017-04-12 13:44:22Z,125,View.OnChangeCaretLine,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2/9,View
2017-04-12 13:44:36Z,125,View.OnChangeCaretLine,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2/12,View
2017-04-12 13:44:45Z,125,View.OnChangeCaretLine,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2/4,View
2017-04-12 13:44:45Z,125,Edit.NavigateTo,Immediate,VisualStudio:Background,Navigation.Structured
2017-04-12 13:44:46Z,125,View.Solution Explorer,WindowView,Solution Explorer,View
2017-04-12 13:44:47Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:44:47Z,125,View.OnChangeCaretLine,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2/8,View
2017-04-12 13:44:48Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
2017-04-12 13:44:47Z,125,View.Solution Explorer,WindowView,Solution Explorer,View
2017-04-12 13:45:03Z,125,View.OnChangeCaretLine,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2/15,View
2017-04-12 13:45:07Z,125,View.Find Symbol Results,WindowView,Find Symbol Results,View
2017-04-12 13:45:07Z,125,Edit.FindAllReferences,Immediate,Find Symbol Results,Navigation.Structured
2017-04-12 13:45:10Z,125,View.File,WindowView,b6b68c59973bdf1415a79d79875faeffaa7d50d2,View
Each entry in the log has the following format:
timestamp, user ID, message, category, file hash / view name*, category
timestamp when the event occured (UTC)
user ID unique identifier for the user
message message describing the interaction event
category basic categorization, such as whether the event was a window view or an edit
file / view name*    hash of the relevant file name with linenumber or the view name
category experimental categorization of event

*The file name hash is not present in the dataset, but is recorded by the Blaze tool.


Download Blaze

Download Blaze
Blaze, the Visual Studio extension that was used to collect the data, is available for download, purely to support reproducability of research (i.e., not for use during development). To use Blaze, first ensure that Visual Studio 2010 is installed, and then open the .vsix file. To inspect the logs that Blaze creates visit C:\Users\USERNAME\AppData\Roaming\blazeLog