Oren Eini

CEO of RavenDB

a NoSQL Open Source Document Database

Get in touch with me:

oren@ravendb.net +972 52-548-6969

Posts: 7,592
|
Comments: 51,223
Privacy Policy · Terms
filter by tags archive

On XHEO Conduct

time to read 3 min | 589 words

XHEO responded to my open letter. This is my running commentary during reading their post.

Let us start from this:

While I can understand the frustrations of a developer under the gun from a manager, or anxious to meet a deadline we really can't work with so little information - who can?

Here is some of the email exchanges that went by.

image

Note that every email with an attachment is including details such as screen shots, assemblies, crash dumps, etc.

I want to point out that I did use their tool to generate a support request with all the details about my system that they could possibly want. I submit all exceptions to them as they came, although I run into several instances where the crash was so severe that the error reporting itself fail to kick in.

I know that customers world wide have been conditioned to expect refunds for any reason at any time.

No, customers has grown used to companies respecting signed contracts.

Looking at the timeline that XHEO provides, it seems that they totally ignored the attachments that I sent, which contained full reproductions of the actual problems. That is strange to say, because during my conversation with support, we continually referred to those screen shots, so I fail to see how they can ignore them or claim that I sent an email with just "it doesn't work either".

In fact, here is that particular email:

image

He is also missing the part that I did updated to the latest version, only to find other bugs:

image

At this point, I have spent over a week trying to resolve this issue, has been forced to wait for days to get someone from support, got not even a hint of resolution, but what seems like a flurry of "let us try to turn off this setting and see if this works".

I was already investing way too much time into the product, and it was holding back my own work on NH Prof, not to mention the adverse affect on my ability to actually ship something.

I want to specifically respond to this:

The post includes issues never reported to support and in far more detail then ever provided to us. Demonstrating Ayende is quite capable for expressing the information but simply chose not to.

I don't just keep screen shots of broken software around, I extract the images that I have shown in the original post from the emails that I sent them.

XHEO also provide more of the email correspondence that went between us. I recommend that you would read them. Part 1 | Part 2

Someone in the comments pointed out that doing the entire exchange over email was likely a factor. I agree. And I said so:

image

I never got a reply to this email.

And finally, there is this:

  • We have not ignored the terms of the contract and continue to honor our obligations and offer support.

I honestly don't even know how to approach this statement. The contract that we both signed clearly states that their product should work. It doesn't, and they have failed to provide me with a working product. Hence, we fall back to the refund alternative, which they refuse, thereby breaching our contract.

time to read 2 min | 208 words

I am a firm believer in laziness. But as a contra weight to that, I also believe in responsibility.

I made a mistake with the back office for NH Prof. Instead of setting the trail date for 30 days, I set it for one month. It wouldn't matter that much, except that this is February now, and the month is only 28 days.

It was pointed out to me, and I realized that I had, inadvertently, misled my users. It is acceptable to make mistakes that counts against you, that is just tough luck. It is not acceptable to make mistakes that counts against your users.

Going back to the title of the post, obviously I needed some motivation to work on NH Prof backend. To be fair, I consider the NH Prof backend to be really annoying side tracking, but that is not a good excuse for this.

Something needed to be done!

So, anyone who got a shorten trial period is automatically extended to 35 days (they would need to download the license again) and everyone who is coming to the site is going to get 31 - 33 days of trial.

Hopefully this will motivate me to pay more attention during my midnight coding.

time to read 1 min | 179 words

XHEO has finally decided to respond to my open letter.

I haven't read it yet, but I can point out one critical mistake that they have made so far.

They were silent.

I posted this on the 2nd. They responded on the 5th. Aside from demonstrating their lackluster response times, they made an even bigger mistake. They let the perception settle.

My open letter post has 97 comments at this point. It has been picked up by DotNetKicks and Reddit, it has been read by eight thousands plus subscribers to my blog.

And during all that time, XHEO was silent. Just to be clear, about 5 seconds after I posted the post, I have sent the link directly to XHEO's owner. That was around 8 AM, in his time zone, I believe, during a business day.

As I said, I haven't read their response yet, but by sitting quite and "collecting their thoughts", they have created a huge PR problem.

Regardless of the actual fact of the matter, waiting was exactly the wrong response.

time to read 1 min | 152 words

I many situations, I see people trying to look for technical solutions in order to prevent bugs. Typical example are "how do I prevent users of my API to do XYZ" or "how do I force developers to always do things in a certain order" or "how do I validate [complex state] at every point".

The intent is good, but the problem is that the issues that is trying to be solved is usually big and complex. The solution, as well, going to be complex. Moreover, the solution is likely to be fragile. At any event, it is going to be costly.

Those are admirable goals, but I don't like this approach at all. The issue from my point of view is that I would much rather have a bug in my code than introduce this complexity into the code base. Bugs can be fixed, but it is hard to reduce complexity.

time to read 1 min | 130 words

I have a Google alert setup for NH Prof.

I got the following alert.

image

I was willing to mutter a few choice curses and let it go, because there really isn't much that you can do about this. But then I followed up on the rest of the thread.

image

Um... thanks? I mean, I sure appreciate the sentiment.

But the fun continues...

image

And the replies...

image

Honestly, I wouldn't believe it if I didn't see it with my own eyes.

acexman & cluka, thanks.

Oufti, I don't think that I like you very much.

time to read 3 min | 401 words

Continuing the XHEO saga, I finally replaced the licensing component for NH Prof.

Yes, there is Rhino Licensing, I am sadden to say. Although an open source licensing component seems to be... an interesting contradiction. It would be a great joke to make it GPL as well, and see what happens.

Anyway, this is not the point of this post. Currently, the change is committed to the repository and I already updated the NHProf.com backend to generate the new licenses instead of the old ones.

That is where we get into a problem. We don't have UI for the new licensing scheme yet. So for now, I disabled the auto-deploy part. However, people are still (thanks :-) ) buying the product, which means that the license they get and the actual software they can download are not compatible.

This is not much of a problem, to be fair. We will have the licensing UI and resume auto deploy very shortly. But it is annoying to any customer who happened to get caught in the interim.

I just had a question coming to me from a customer regarding just this issue. In light of my recent XHEO support nightmare, I find support to be so much more important. You may have a great product, but your support can ruin the experience very quickly.

A few things to note about this mail:

  • I answered it within one hour of it being sent. Sorry, I am still having horrible time shaking off jet lag.
  • It was sent using the contact us form in the NH Prof site. This is just another thing that I did to make it as easy as possible to get the user's feedback. One thing that I will not do is to force users to go through a multi page support "wizard" nightmare.
  • A quick solution for the customer problem would have been: "wait a day or two, and there will be a version that supports the new licensing scheme". That, however, is not acceptable. And that leads me to the main point of this post.

The underlying assumption is that it is not the customer's fault, and even if it is, if you can, you fix it.

In this case, the scenario was completely my issue, not question about it. And leaving a customer dangling for a few days is an unacceptable action, in my view.

FUTURE POSTS

  1. Semantic image search in RavenDB - about one day from now

There are posts all the way to Jul 28, 2025

RECENT SERIES

  1. RavenDB 7.1 (7):
    11 Jul 2025 - The Gen AI release
  2. Production postmorterm (2):
    11 Jun 2025 - The rookie server's untimely promotion
  3. Webinar (7):
    05 Jun 2025 - Think inside the database
  4. Recording (16):
    29 May 2025 - RavenDB's Upcoming Optimizations Deep Dive
  5. RavenDB News (2):
    02 May 2025 - May 2025
View all series

Syndication

Main feed ... ...
Comments feed   ... ...
}