Support and Maintenance Policy
Let's first mention who is entitled to support:
- Any evaluator during the first 30 days of evaluation (free trial period).
Most of our customers manage to solve their initial integration problem in that time period. You should talk to us about an extension or buy a starter kit if you need a longer evaluation period.
We should also mention that we understand congressional budget cycles and competitive PoCs and have in the past gladly granted extended evaluation periods to our governmental and military customers, with the understanding that we would figure out a way to eventually get compensated for the extended support in case of a purchase.
- Any paying customer in good standing.
We like to be paid and reserve the right not to provide support if you haven't held up your side of the deal.
What Do You Get?
We occasionally deviate from our standard license terms, but the following items are included in our standard support & maintenance package:
- Minor and major updates
When you report a problem to us, we will do our best to fix it. When the issue is due to our bug, our turnaround is usually outstanding: from report to fix within a couple of days, sometimes even same day. 99.9% of Codemesh product bugs are related to obscure code generator corner cases that you will encounter early in development. We have not had a runtime bug since 2016.
- Support by phone and email during Codemesh's regular business hours.
As we are a middleware company whose customers frequently are other middleware companies, it is important to understand whom we are supporting: we support our customer, i.e. you, but not your customers. Clearly we will work with you to fix a Codemesh product bug that occurs on one of your customer's machines, but we don't provide free tech support to every one of your customers who runs into a configuration problem; that's your job.
Customer satisfaction with our tech support is extremely high. When you contact us, you immediately get access to someone who knows the product and all involved technologies inside-out. There is no first-line support team that you have to beg to escalate the issue to the people who know what's going on.
We occasionally get requests for 24x7 support. In general, these requests go away once we explain our product's characteristics or—if pressed—provide a totally outrageous quote.
The key is that we sell developer products. This means we support your developers, not your customers. Your own developers are your 24x7 support team and we support them, on occasion even after hours or on weekends. By the time they have figured out that a customer problem is due to a Codemesh component, it is not a real-time issue anymore and fits well within our normal support policy.
Furthermore, we are a small company and simply not staffed to provide good 24x7 support. While we always try to do our best, we can't guarantee availability every day of every year. Sure, we could hire a call center to take your call and then still handle it during our regular business hours, but this approach would benefit neither you nor us.
In over twenty years of existence we've only had a couple of instances where an application using Codemesh products was deployed to customers and the customer experienced an outage due to a bug in the Codemesh runtime. One was due to a breaking change in the .NET environment and one was a 64-bit issue in the C++/.NET integration layer for JuggerNET that slipped through testing because it only exhibited on Windows Server 2016 with a particular Java Runtime Environment. Before that, the last runtime bug was a buffer overflow in a configuration API that was found through
valgrindtesting but had not caused any issues to customers.
The vast majority of Codemesh bugs have impacted early development, for example a code generator crash when encountering a particular Java type or the generation of code that does not compile for a particular Java type. These types of bugs can almost always be worked around to unblock the affected development team while Codemesh works on fixing the issue.
As long as you are in good standing, you always have access to the latest and greatest code base. No need to to repurchase because we put a new major version number on the product.
Over the past few years we have not issued many releases, mostly due to the fact that the product was stable and worked well. We will issue more releases in the not too distant future when we hope to bring a new C++ runtime library to market.
Do You Need to Purchase Support and Maintenance?
No, you don't, though I will never understand why people who are willing to spend money on a tool that becomes a part of their product do not also purchase support and maintenance, particularly if it's not that expensive.
When you choose to go unsupported you do not lose your license to use the code generator or deploy your application, but you lose access to bug fixes and new releases. After you have been unsupported for a year, we do not allow you to pay up for past support if you find yourself in need of assistance. Instead, you have to repurchase the current version of the code generator to become supported again.
We recently had the unpleasant case of a 10+ year customer who had stopped paying for support and maintenance several years ago because they only had one client for the Codemesh solution and it had been working flawlessly for many years. They figured that they could save $599 per year without risk. Then their customer made a change in their code which necessitated a change in the integration code and they found that they could not regenerate the proxy types because the Java bytecode specification had changed since they created the integration. They had to repurchase the code generator to fix the customer issue, only to move off the entire integration within the next three months.
We leave it up to you whether you purchase support and maintenance, but we've made it clear what the consequences are if you choose to forgo it. We don't like playing hardball but we have to make a living too and we cannot if we only get paid when someone has a problem.
So How Much Is It?
We typically charge 20% of a regular developer license cost per year for Support & Maintenance.
This means that—if you're willing to gamble—you save money by not paying for Support & Maintenance if, for a period of five years:
you never have a problem that requires support, and
you never discover a bug in our product, and
nothing changes in the compilers you use that breaks you, and
nothing changes in the Java Runtime Environment that breaks you, and
nothing changes in the operating system that breaks you.
May the odds be ever in your favor!