We anonymize all events and remove personal information. However, in order to find related events together, we would like to group all events for a single developer that are generated during one work day. To achieve this, we generate a random session id each day and attach it to each event generated on that day.

The session Id helps us, but can be removed if developers are uncomfortable with it (see anonymization).

The collected feedback is tied together with information about the corresponding session. This session is just a reference to a particular workday. Each session contains several events that represents single actions.

Data Flow

The KaVE Feedback Extension allows a detailed inspection and control over your collected feedback. If you decide to provide your feedback, it is submitted to our central server and stored anonymously.

The following diagram shows the data flow of your feedback:

After the installation of the KaVE extension, feedback is automatically collected while you use Visual Studio. All data is locally stored on your machine. You can use the feedback manager to inspect the captured data, you can review all events and delete them, even partially. At this point, nobody else can access your feedback.

You have two options, if you decide to provide us with your feedback:

  • The "Direct Upload" is a convenient way to provide your feedback from within Visual Studio. Everything is combined in a compressed archive first and then submitted to the KaVE Server.
  • The "ZIP Export" creates a compressed archive of all collected feedback, but it is stored locally. You can review the contents of the archive, before you have to upload it with a simple web form to the KaVE server.

In both cases, the feedback will be deleted locally and stored in the KaVE database. After the submission, it is not possible to identify the developer who generated a specific event.


Anonymization option enables the developer to disguise various aspects of the collected feedback instead of deleting feedback entirely.

The option page gives control over these settings which are discussed below:

  • Remove identifiers related to your project: Each event stores information about the active document and other project-related information. If this option is checked, the original information will be hashed. This operation is irreversible, we cannot recover the original information.
  • Remove the event's timestamp: Every event stores the timing information (e.g., when the event was started). If this option is checked, this information will be removed.
  • Remove the event's duration: Every event stores the information how long it lasted - if this option is checked, this information will be removed.
  • Remove the session-information: Every event is assigned to a coding session - this allows us to relate all events created during one work day. If this option is checked, this information will be removed.

The upload wizard also maintains these controls mentioned above (See Figure 1). So developers can adjust the options during each export time. Note, that the options will be saved each time making the export much simpler.