Gaurav Mantri's Personal Blog.

Attitude Matters (When It Comes To Winning Users Over)!

Earlier this month we deprecated our flagship product (Azure Management Studio) and replaced that with a brand-new product (Cerulean). You can read more about the deprecation on our website at https://blog.cerebrata.com/azure-management-studio-is-being-deprecated-please-upgrade-to-cerulean/. We wanted our Azure Management Studio users to upgrade to Cerulean and for that I have been reaching out to our users asking them to start using Cerulean and providing us feedback.

Here’s what I received from one of our users:

Going to use abbreviations so I don’t have to type them over and over (I’m a developer, so I’m lazy by nature 😊 )

Azure Management Studio (AMS)

Cerulean (C)

Microsoft Azure Storage Explorer (MASE)

After a cursory run through here’s a few things I noticed:

The “Jump To” feature in Azure Management Studio (AMS) is replaced with a “Find” in Cerulean (C). However, the feature in AMS auto searched as I was typing so I wouldn’t have to exactly remember spelling in the thousands of table names we have on our Azure Table storage accounts. In C I have to type exactly what it starts with and press find, if that’s not correct then I have to try to figure out where I messed up and try again. This has the potential of taking much longer, and the way that C implements it isn’t much different than in the free Microsoft Azure Storage Explorer (MASE), albeit C is faster with its results.

AMS allows me to right click an item in a queue and move that item to another queue without having to copy and locate and paste myself (useful in trying to requeue poison messages to debug them). C does it similar to MASE in that you have to open both queues and copy and paste over and then delete from the original queue.

AMS supports LINQ (sorta) and gives me auto completion while C and MASE only support OData with no completion.

AMS allows me to query up to 10000 results. This is useful in the times that we have multiple PartitionKey styles in a single table and I’m trying to get a good sample of them to determine a better query. C and MASE max at 1000.

Honestly, I stopped using C and went back to using AMS after only ~10 minutes due to these misses, so there may be more. For our use, I’m not sure there’s a reason for us to spend $10/mo/developer on something that isn’t that much different than the free product offered by Microsoft. It was an easy sell for me to my company to purchase AMS, even though Microsoft had a free product, mainly because of the features I mentioned above. I truly hope Cerebrata implements everything that AMS has before they completely force people off of it.

Again, this was only after ~10 minutes, so if there are settings to make what I mentioned above more in line with your previous product then please point me in that direction.

I would be lying if I say I wasn’t disappointed. We have been building the new product for 2 years and all it took was just 10 minutes for this user to write off this product for him.

As I saw it, I had two options at that point of time:

  • Ignore the user and the feedback email.
  • Take the feedback in a positive way and at least try to convince the user to give our product a 2nd

I opted for the 2nd option fully realizing that I may have already lost the user and would never hear back from him. Nevertheless, this is what I wrote back to him:

This is great feedback! Thank you for taking time and writing it down. I really appreciate it.

Let me start by saying that we are not done with the development of Cerulean. We are constantly adding new features to it. Our goal is to include as many features as possible from Azure Management Studio into Cerulean and then add features which are not there in Azure Management Studio. 

Now coming to your feedback:

“Jump To” Feature: I agree that we made a mistake by omitting this feature. We have included it in our roadmap and it should be there in next release or release after that.

Move Messages: Mea Culpa! We took an easy way out and I am sorry about that. We have also included it in our roadmap and again it should be there in next release or release after that.

LINQ Support: Unfortunately, it won’t be possible for us to include this in Cerulean at least as of today. This issue has been brought up a few times before as well but because of lack of any available node packages which offer LINQ capabilities, we are unable to include it in Cerulean. Kindly accept my most sincere apologies for the inconvenience caused because of this.

10000 Records: We have not included this on purpose. One of the biggest complaints we have received with Azure Management Studio is severe performance degradation when more records are displayed (despite virtualizing the grid). That’s why we have limited the maximum number of records in a table to 1000 and that for blobs to 5000. However, let me take a second look at this and see if we can avoid performance degradation with higher number of records. If we don’t hit the bottleneck, I see no reason for not including this.

My humble request is not to give up on Cerulean so soon. There are certain improvements that we have done which I think you may find useful. For example, uploads/downloads happen through a background task so that the UI doesn’t become sluggish. Furthermore, because these are background tasks, once an upload task starts you can simply close the application without impacting the background process. It will continue to run. I agree that there are certain things which have been implemented in a way that you would not normally expect in a desktop app but I see those things as minor issues that can be fixed easily.

Please continue to use Cerulean and send us any feedback that you may have. It is going to be immensely helpful.

I’m looking forward to hear back from you.

Quite frankly I never expected to hear back from the user but to my surprise he responded and responded very positively! This is what he wrote back:

Let me start off by saying that your response is a huge boon to what ails me in this transition. To be honest, I truly thought that my feedback would not only get ignored, but that you wouldn’t even take the time to respond to it. You are an example to how every company should operate! Not saying to 100% accept everything that is suggested, but to at least give them a thought.

The LINQ support I can honestly do without, it’s more of the auto completion that is missed. I hope you guys at least consider a query builder similar to the free Storage Explorer. However, the exclusion of this alone is not a deal breaker.

In regards to the 10000 records. I completely agree that it is a slow result set. However, it was an option that I could opt into, not on by default. I had to manually type in 10000 in order for it to attempt that. There will definitely be that bottle neck, as you put it, but it’s one that the user is choosing to experience. Maybe just a warning of “setting this value larger than 1000 will incur a speed hit, clicker beware”?

Either way, your response to my concerns speaks volumes to the type of company Cerebrata is, and for that alone I will continue to give Cerulean a fair attempt.

This whole story was a great learning experience for me. Some of the things I learnt are:

  • Respond: It is really important to communicate! Behaving like an ostrich won’t get you far. Don’t shy away from answering hard questions and provide appropriate responses in a timely manner. This will take you very-very far.
  • Be Honest: Often times in order to win over users/customers/business, we make promises that we know we won’t be able to keep yet we make them anyways. This, to me is wrong at so many levels. Be honest and upfront with your users (while being respectful). If something can’t be done, tell the users so obviously with appropriate reasons. In my experience a lot of times we get solutions that we never thought of. Setting up false expectations with your users are only going to hurt you (and they will hurt you badly).
  • Accept Mistakes: There should be absolutely no shame in accepting mistakes and owning them. No point deflecting them or blaming others. It will make the matters worse. Do remember that the person on the other side is also a human being much like you.

Whether this user switches completely to the new product, I can’t say for sure today. But at least now we have a 50% chance at it. If I had opted to ignore that user I would have lost that user forever.

And that to me is a BIG SUCCESS!!!

Oops! I Deleted My Blobs! What Can I Do?

Honestly, Nothing! But that’s before reading this post. After reading this post, you don’t have to worry about a thing. In this post we will talk about Soft Delete functionality recently announced by Azure Storage. This super cool functionality will … [Continue reading]

Zone Redundant Storage (Preview v/s Classic)–Compared & Contrasted

Recently I ran into this blog post by Azure Storage Team: Azure Zone Redundant Storage in public preview. When I saw this post, the first thought that came to my mind was “it must surely be a mistake” , after all Zone Redundant Storage (ZRS) has been … [Continue reading]

Understanding Azure Storage Blob Access Tiers

It has been really-really long time that I have written a blog post. Past year or so has been simply crazy. From acquiring Cerebrata back to building a brand new product (Cerulean) from scratch, things kept me quite busy. In this blog post we will … [Continue reading]

My Thoughts On Current Euphoria Over Startups In India

Nowadays everyone wants to do a startup. There is a general feeling that if they are not doing a startup, they are not doing anything . I was listening to an old song by Amitabh Bachchan and took the liberty of modifying it to reflect the current … [Continue reading]

Azure Storage – Shared Access Signature Enhancements

Over the past few months, Azure Storage Team released two major upgrades. Both of these upgrades involve some really interesting new features and improvements. Among these new features and improvements include changes to Shared Access Signature (SAS) … [Continue reading]

Azure Icon Font For Your Web Application

For both Cloud Portam website and application, when it comes to icons we don’t use images. Almost invariably, we use vector icons and icon fonts (like Font Awesome which BTW are very aptly named; they are indeed really-really awesome :)). Where … [Continue reading]

What’s New In Azure Storage

It’s been a while that I wrote a blog post about Azure Storage :). Earlier this month, Azure Storage Team released a new version of Storage Service and included a lot of awesome goodness! In this blog post, I will try to summarize those. So … [Continue reading]

Azure Service Bus – As I Understand It: Part II (Queues & Messages)

Continuing from my previous post about Azure Service Bus, in this post I will share my learning about Queues & Messages. The focus of this post will be about some of the undocumented things I found as we implemented support for Queues and … [Continue reading]

Azure Service Bus – As I Understand It: Part I (Overview)

Recently we started working on including support for Azure Service Bus in Cloud Portam. Prior to this, I had no experience with this service though it has been around for quite some time and I always wanted to try this out but one thing or another … [Continue reading]