Introducing the Kentico Improvement Program

   —   
Kentico 8.2 and all upcoming versions from here on offer you the opportunity to join us for the Kentico Improvement Program. On a basic level, this means that you can send us anonymous data about the tools you use in the system. We obviously respect your privacy, so joining the program is totally optional. Also, since Kentico has always been a transparent company, we will explain all of the details about this program in this post, from both a business and technical point of view.
Joining this program doesn't come with any sort of compensation in terms of license discount, direct payments or partner points. But, you have an opportunity to influence the future of Kentico by participating! Despite the fact that we talk with our solution partners and clients on a regular basis, use valuable resources such as ideas.kentico.com, and host worldwide Kentico Connection events, we are still missing some important information about the market. At present, we don't have any hard data on what functionalities are most used, or how many users or pages you typically have in the system and so on. As you can imagine, having data of this sort would help us a lot in making important decisions on very specific matters – for example, if we should invest into module xyz, or if we should test Kentico with 1,000 pages or 100,000 pages and so on— and this where the Kentico Improvement Program comes in. By getting involved, you will assist us in making these big decisions and help optimize the product for all Kentico users across the globe!
 
Kentico 8.2 is the first version we will be acquiring data for, so we will only be collecting key statistics. Once we’ve collected the most pertinent information, we will dig deeper and acquire more details. The data we will be collecting for Kentico 8.2 is very basic – we want to know how many people will enable the sending of data. In other words, we need to know how many people will join the program. We consider this to be the most important information for now. Besides that, this is the data we will be collecting for Kentico 8.2.
 
General information
  • Operating system
  • ASP.NET version of the Kentico project
  • Highest license edition
Scalability and performance - number of objects in the database
  • Pages
  • Users
  • Sites
  • Chat rooms
  • Projects
  • Customers
  • Orders
  • Products
  • Product variants
  • Web farm servers that are registered in the system
  • Web farm servers that are enabled
  • Web farm tasks that are in queue that are unprocessed
  • Web farm tasks that are in queue that are unprocessed because WF server is inactive
  • Web farm tasks that are in queue that are in a failed state
  • Product pages
  • Department administrators
  • Exchange tables with "exchange rate from global main currency"
  • Wireframe pages
  • MVC templates
  • Device profiles
  • Web parts
  • Number of objects with custom CSS
 Functionality and features
  • Authentitication type (Forms, Windows, ...)
  • Type of webfarm synchronization mechanism used
  • Type of storage provider used(Amazon S3, Azure blob storage, external storage)
  • Type of CDN used if any
  • Type of Azure hosting option if any (Cloud services, Websites)
  • Enabled Staging (task logging)
  • Enabled Object versioning

Joining the program

Joining the program is very simple: When installing Kentico 8.2 or an upgrade, you will be able to check "Send anonymous usage records to Kentico" on the last screen of the setup wizard. If you don't want to make this decision during the installation process, you can join the program anytime after by checking "Send anonymous usage records to Kentico" in Settings->System. You have the option to leave the program at any given point in time (no questions asked!) by unchecking this same option.

Anonymity of data

Let me explain what we mean by anonymous. During the data collection process, we won’t acquire any data that identifies where the information is being sent from, such as:
 
  • Domain name or IP address
  • Computer name
  • Site name (s)
  • Any object names or object contents (including the names of the pages and their content)
 
Technically speaking, we are primarily interested in Booleans and integers. We might capture some strings as well (e.g. license edition name) – but as I stated previously, it’s nothing content-specific or any other such information that can be connected with your project or company.

Data frequency

 When speaking about data frequency with our partners, one of the main concerns people mentioned was that this program could potentially influence the performance of the website, or that the data may be sent during peaks (resulting in skewed or bogus data collection). To put everyone’s mind at ease, we’ve tested the functionality very heavily in order to make sure that it will not affect performance in any way, shape or form – it will handle corner cases like network unavailability. Moreover, the data will be collected and sent through a scheduled task called "Send module usage data". The default period is set to one week, which is ideal from our point of view. But you can change the data less often and you can also adjust the time of sending according to your preference.

How it works

I don't want to go into too much detail just yet, but I would like to give you a basic idea on how it works behind the scenes. The solution relies on the base engine and its set of data sources. These data sources are pieces of code where data collection is performed (e.g. information about your ASP.NET version). Then, when the scheduled task runs, the base engine calls all the data sources, serializes the data and sends them to our service. It also logs information to the Kentico Eventlog where you can see the data that has been sent to us. The service for receiving data will be the Microsoft Azure cloud, which saves and organizes the data into Azure tables. We can identify data from one source using the GUID, which is randomly generated in Kentico so that we don't need to track any data related to the source in order to couple it.
  ModuleUsageTracking.png

The future

For now, we will track only the key statistics that are most important to us, and as mentioned above, how many people will join the program. In the future, we will obviously be looking to gather much more information (e.g. track more statistics, metrics and possibly user behavior patterns such as user clicking). But we are also planning data configuration, so you will be able to tell us what type of data you want to send to us, and which data you would like to remain confidential.

Feedback

We have spoken with several partners about the Kentico Improvement program over the past couple of months, and we are happy to report that nobody believes it will pose any problems, so long as we are transparent, that it remain optional, and that it doesn't have any negative impact on website performance. The truth is that a mechanism like this is not unique in our market, and we find that its implementation will yield only benefits to all.
 
We always love to get as much feedback as possible from our partners, so in case you have any questions, comments or concerns regarding this program, please let me know in the comments below or shoot me an email at dominikp@kentico.com.
Share this article on   LinkedIn Google+

Dominik Pinter

I'm a fan of cloud computing (primarily Windows Azure) and I really like to dig into web application security. My blog is focused on everything related to Kentico, .NET Framework, Cloud platforms and web application security.

Comments