Happy Friday! Today I wanted to walk through an option for tracking ROI. It’s much easier to make the business case for the work you do if you understand how it’s impacting people’s every day process. Thankfully, you can log just a few pieces of information and receive a lot of insight!
There are three main parts to tracking ROI data: the platform to track the data, the configuration file with the link, and the data you are tracking. There are multiple options for platforms to track this data. One option is Slack. You will want to create a web hook with Slack or your chosen platform. As always, before implementing processes with 3rd party applications, read and follow the license agreements.
You may want to create a configuration file for your project so you don’t hard-code API keys or credentials. I would recommend building projects without the keys entered into the configuration files and then copy and pasting this information when you deploy it. This is more secure. Of course, it is important to know that the configuration file with this information will need to be on the computers of everyone who is using your plug-in and sending telemetry. Anyone with the credentials can send information to that channel. If your project is exclusively internal, this is an acceptable set-up, just know that this is how it works.
Once you have the configuration file you will need to add a method to read it. Our method is a public method and returns the Configuration. We need the location of the file as well as the tag we used. In my case, I called the URL “telemetryURL”. We can simply search through each of the elements in our config file and if the element has a tag “telemetryURL” we want to assign this value to the Configuration.
Then you can consider what data you would like to collect. Some options include the file name, date and time, and the name of the plug-in that was run. These are general pieces of information that can be included in our SendTelemetryData method. The ROI calculation is plug-in specific and can be added in the Execute method within the plug-in. Because I want to add plug-in specific information I have a parameter called “message” that allows me to also send any additional information that I want.
We can then format the information so it is easier to read and add any required description. I collect the username, date and time, and plug-in and format it into an easy to read string. Then I place the message on the next line. This is a utility method that I added to my Utility file so I can use it for all plug-ins.
The ROI calculation is entered as the message parameter in the above described method. This allows me to customize the information for each plug-in and still send the data I need. There may be slight differences in calculating ROI depending on the plug-in. Generally, I actually take the stop watch feature on my phone and time myself completing the tasks that the plug-in automates. I record it at least a few times to make sure there aren’t any outliers. Then, I find the appropriate relatable metric and multiply to get the total time saved.
For example, for the Automate Interior Elevations Plug-In, I timed myself creating elevations, renaming them, adjusting the crop, adding the view template, and adding the masking region for one room. In my ROI calculation, I take this time and multiply it by the number of rooms that the program goes through to get my total time saved.
I send data both when the plug-in started running and then ROI data when it has completed. This way I also know if people are canceling after opening it. When the plug-in is started, I read the config file and then simply send the message “Started”. This code lives in the Execute method of the plug-in.
When a plug-in finishes running successfully, I record the ROI information. For interior elevations, I calculated an approximate time savings of 8 minutes per room. I multiply this by the number of rooms in the project and return the time saved in hours and minutes.
And these are the steps to start tracking the ROI of the plug-ins you make. I hope this will be helpful in understanding how your work impacts the time spent on projects.
Disclaimer: This post is intended to explain how to collect data relevant to tracking and understanding ROI. Please review any relevant privacy and protection policies before collecting data.