XRebel: Commoditising the profile market
XRebel, an innovative new “always-on” interactive Java profiler was officially promoted by creators ZeroTurnaround to GA status yesterday. In this interview, CEO Jevgeni Kabanov explains how the new tool promises to upturn the profiler market as we know it, and why making things 'simple' is a paradoxical process.
JAX: What makes Xrebel different to other profilers out there?
Kabanov: There are several differences. I really think of it as the first bird in the new generation of profilers. Today, profilers are highly specialised tools, meant to be used by experts. Typically in a team, one person in ten will have a licence, and he will be responsible for basically doing profiling sessions from time to time and usually when there's a report from production or there's an issue or sometimes if they can see with their naked eyes that something is terribly flawed - they'll do profiling session. They'll go through a mountain of data, find the root cause, identify and implement the solution. This is how it is today.
The difference in XRebel is that, in this case, everyone on the team is running it. It runs all the time in the background, so there's no dedicated session. There's no expert requirement. If you have a performance issue - which you might not even notice because it's not necessarily enough to cause a slowdown in development, though it might cause a slowdown or inefficiency in production, then it will notify you about that slowdown or performance issue. It will expose the metrics as you're coding, as you're testing your changes, and if you click on it, it will allow you right away to drill down to root cause, and you can fix it there and then.
So this is why we consider that it's a new kind of profiler, because it takes the tool to a completely different level, where everyone can use it, and where, instead of being dedicated sessions, it just runs all the time. But you only interact if you have an actual problem. You can say that we're commoditising the profiler market. We're taking it to everyone, taking a specialised tool, and giving it to everyone to use.
What was the development process like for this tool?
We use Agile internally, but for me, the more important part of development was not so much the engineering process, but the product management - you know, the product development process. Here, we apply a variation of goal directed design with the lean methodology, where we analyse the market, and then create feedback so that we can increase the process as we go along. We have two phases of product data: we have many prospects from early prototypes and gathering feedback from early days - and then behind that the team is iterating on the versions so that we can improve them quickly. And that was kind of the process. So I'd say that Agile is a small part of it, it's the whole process. Not just the development part of it.
So this made everything pretty smooth?
Well, every product development is quite turbulent. You always have a lot of disagreements in the team, because your information about the market and what people want isn't perfect, so you have to actually have conflict - and that's where truth is born. There were a lot of disagreements, there was definitely a lot of tension between the product team and the engineering team. Not in a bad way -
...Conflict is a pretty healthy thing in the creative process, I guess...
Yeah - I don't mean it in a bad way! But there was a lot of friction, like we removed a lot of features for example, and engineers aren't terribly happy about removing features. But in the end, I think all of them understood. In hindsight, everyone agrees that this was the right thing to do, but you know, at that time, it was sometimes difficult.
Looking to the future for XRebel, can we see a lot of these initially discarded features appearing down the road?
Yes, my good friend Cameron Purdy has a good expression: Whenever you release a product, you never look back. It's just the beta. The next thing, that's always going to be the big thing. The next version. So we have grand plans. I think we established the concept, and now we really need to flesh it out and figure out how to bring XRebel to this next level.
Most of the next steps are pretty obvious. We want to support NoSQL databases - specifically MongoDB and maybe Cassandra - and web services. Right now, we're supporting SQL user sessions and exceptions. Quite natural expansions. There are other things in the works which are more interesting, but those I can't share now!
Personally, what's you're favorite aspect of interacting with XRebel?
I'm just incredibly proud of how easy it is to install. It literally takes minutes, which is an amazing achievement, because there are many ways we could have messed it up! And generally, I think the biggest feature is just the simplicity, and how everything works as it should. Everything displays the right amount of information at the right moments - and this is my favorite thing about it. It's very easy to put together something which looks complex, but it's really hard to build something that appears to look and behave like it's really simple. Hiding all that complexity, and there is a lot of underlying complexity, is what I'm most proud of.