Kentico 1 on 1 - Kentico Improvement Program


This blog kicks off a new series I will be doing once a month where I interview a Kentico expert on a specific feature of the platform. The idea is to bring some real depth to the conversation and understand the functionality from a developer perspective. 

“Hi Dominik. Before we get started, let’s give everyone a background on what your role is at Kentico.”

“Hi. I started at Kentico almost 8 years ago as a tester, then became a developer, and then promoted to a team leader. 2 years ago I started this position in Product Management where I prioritize requirements from the market and put them into the product. I work with a development team where I am responsible for telling them what to build and they are responsible for producing it. I follow a lot of trends on the market and talk with a lot of our existing clients. My main area is Platform, which includes macros, import/export, staging, and deployment. I use the feedback from our partners and the trends to decide what we should work on in these areas.”

“Awesome! I also know you are responsible for the Kentico Improvement Program which was introduced in 8.2. What kind of data are we collecting with this program?”

 “We are collecting 2 types of information. The first type is whether or not you are using a particular feature. Things like whether or not you are using Online Marketing, Staging, and other features of the platform.  The second type of data is about performance and scalability. This includes how many users are in the system, how many pages are in the system, and other types of data that could affect the performance of the site”

“OK. I know in the documentation it states that the program is anonymous. Is this really true? Is there any part of the data that identifies the person when the data is sent?”

“No, we only have GUIDs that allow us to segment information when it comes back. We need to associate different parts of the data with a particular client posting to us so we create a GUID behind the scenes to identify them. We do not store the domain names or client information with the GUID. Typically we are only interested in booleans and strings, not real site data.

“So it really is basic information. The system is just creating this GUID when it comes in so we can associate it together?”

“Right. When the initialization happens for the first time, the GUID Is created on the client’s server. Then when the data is sent to us this GUID is included in the post’.”

“How often is this data posted back to Kentico?”

“The system uses a Scheduled Task to send the data. The default configuration is once per week, but clients can set this task to whatever they want. You can decide what time of day and how often the data is sent by changing the task.”

“So the Scheduled Task is a standard task within the system that they can really change to run whenever they want to.”

“Yes, exactly.”

“Where is the data actually being stored once it’s sent to us?”

“That is actually one of the coolest parts of the program. We store the data in Azure tables. There is no SQL database so we can store a very large amount of data that we are running the cloud. I’m very proud of this part of the program because I think it works really great for all of the data we are getting.”

“OK, last question and the one people probably really want to know. What is Kentico actually doing with this data and how are we using it?”

“This information helps us in the Product Management team make decisions for the future. I can give you a few examples. Let’s say that our client base has on average 1 million users in their system. Before the program we talked with our clients to find out this type of data, but never had any hard data. Using the Kentico Improvement Program we can see what the instances really look like. We can see that it actually is more like 100,000 users instead of 1,000,000. Based on that data we can test and optimize the system to perform better now that we know what the actual numbers are. ”

“We also can use the program to see trends. We can use the data to see that more and more people have EMS enabled so we know that is an area of the site that more and more people are using. This helps us plan our development and improvements to make sure we are enhancing the areas we know people are using.”
“Another use of the data is to show us whether or not we made the right investment in the product. Let’s say in v9 we will be releasing a Continuous Integration solution. We will track how many people turn on this functionality. We would then know if we made the right choice in investing money into that area if a lot of people use it. Some functionality may not be used so we can identify if something is not successful.”

“That’s really interesting. So really, the program is helping our end users more than it is helping Kentico because it tells us what parts of the system they want and use and what parts they don’t want. And with a product like ours, the more code we have the more we support, which takes resources away from what making new features. It also shows us trends and helps us identify areas we definitely need to focus on in the future.”

“Right. This program is not for our internal usage. It helps us deliver a better product to you. My last thoughts would be to please turn this on. You will send us very useful data and it will help us make our product better and better.”

Dominik had a lot of great insight into the program and really broke down how the system, works. If you want to learn more about the Kentico Improvement Program, check out the document here.

Hopefully you enjoyed learning more about the program from this blog. I’ll be bringing you more interviews like this one each month, covering all areas of the platform. Until next time, turn on that program and help us make Kentico even better for you!

Share this article on   LinkedIn

Bryan Soltis

Hello. I am a Technical Evangelist here at Kentico and will be helping the technical community by providing guidance and best practices for all areas of the product. I might also do some karaoke. We'll see how the night goes...