As Artificial Intelligence and predictive behavior permeate the news, I wanted to take a moment to talk about analytics, in many ways the root of these concepts. Specifically, let’s talk about the good of analytics and how to bring it into use with open source software. It is a key tool to understand and harness to improve software usability. Having access to even basic analytics builds the foundation for code that responds to users without the guesswork.
Looking for the SIGGRAPH 2017 presentation? Scroll down a little more…
Analytics – a Developer’s “Future Vision”
The focus here is python addons for Blender 3d, though the ideas apply to all areas of development. The key concept is that collecting user data (responsibly!) to understand their behavior is an enabler for better software. When used correctly, it’s akin to seeing the future.
While open communities often see user tracking used by tech giants or data hungry corporations, analytics can be used for objective good (while being privacy sensitive). Leverage aggregated information and understand more about user behavior than users themselves could explain. Analytics is feedback. Pilots get feedback in the form of resulting pitch and roll during a flight, artists get feedback in the form of audience engagement or viral sharing of work. Software has feedback in the form of analytics (and bug reporting, but bug reporters are only a small sample of an overall userbase and won’t tell you the less obvious problems).
Collect Data with a Purpose
Analytics is a broad term which means different things in different contexts, fields, and industries. One way to view analytic capabilities is through the maturity of analysis. Specifically I am talking about what you can actually do with the data collected.
This previous post on MCprep stats is a great example of basic reporting breaking into that second pillar. While quantifying userbase growth is nice, knowing what the users actually uses is obviously important. Case in point: one MCprep operator accounted for 80% of all user actions, but I only really devoted 20% of my time or less to improving it. This indicates to me a couple appropriate actions:
- Put more time and energy into the operator most used and polish its surrounding workflow
- Explore what might drive users away from the other operators, or test different releases of workflow and measure analytic impact of the changes.
If MCprep had not reached that reporting maturity level, no data would exist to realize the situation. If MCprep had not reached the actioning maturity level, the data would not have been doing me real good other than indicating the general trend that “more people are using the addon”. Had the analysis not been done, I would still be spending too much time developing seldom used features. Advancing to the third level of maturity would allow me to seek ahead and truly augment workflows and user needs. It could expand core capabilities and transform the true workflow for how users do what they do.
The Goal – and a Live Proof of Concept
I want to make analytics a more accessible capability for blender addon developers. I have made the first steps with the MCprep addon creating what may become the precursors of a general analytics modules. This will address the first critical gap of actually reporting and visualizing behavior within blender addons. Next, developers will naturally ascend to the higher maturity levels and start building more efficient and effective code. Graphics shown above: Operator use per week (indicating the most critical operator to support), and percentage of addon installs per blender version (indicating what blender versions to actively support).
SIGGRAPH Addon Analytics Presentation
I presented this topic of analytics at the SIGGRAPH 2017 Birds of a Feather. See it below! Presentation created with the support of the great folks at CGCookie.com
Full Presentation + Download
Want to integrate analytics into your own addons? Want to get involved with making a safe and universal module to bring analytics to more developers? Let’s get in touch or comment below.