A successful ERP implementation is like a relationship.
Technical debt is one of the most important factors to consider before partnering with a solution long term. Like poor communication in a marriage, technical debt in ERP implementations can cause serious strain on a relationship over time, and lead to a significant drop-off in satisfaction.
What is technical debt, you might ask? Technical debt is a concept in software development that reflects the implied cost (both now and in the future) of additional rework caused by choosing an easy (limited) solution now, instead of using a better approach that would take longer. In a nutshell, it's the coding that developers have to do tomorrow to maintain the software that was delivered today.
Let's use Odoo's user documentation as an example. With each new version of Odoo we make many improvements to the software, and as a consequence of these improvements, the way certain features work in Odoo can change. Because the value of the user documentation is highly dependent on the way certain features work in Odoo (user documentation that does not align with how the product works fails to serve its purpose), it is fair to say that when we make improvements and change the way Odoo behaves, we also need to modify the user documentation to reflect these changes. The cost of updating that user documentation can be referred to as documentation debt. When it comes to technical debt, it's the same concept, except it's existing code that needs to be updated in order to accommodate/reflect the changes brought forth by the custom code.
Because it's extremely difficult to quantify "technical debt," the cost of refactoring/maintaining this code over time is not always apparent at the start of the marriage, and oftentimes is not communicated until after our partners have wedded. Without this communication, the foundation for a good marriage crumbles, which causes major problems and impacts the relationship immensely.
Why Can Technical Debt Drag Down Your Company?
Technical debt can quickly snowball out of control. Year after year, it can accumulate, and abstractions can become evermore entangled. Inheriting technical debt is a vicious cycle; for example, companies will rack up technical debt because they are stuck in an old version of the software, but they're stuck on that old version because the technical debt load makes it too cost-prohibitive to upgrade to a newer version. In addition, it might be a project that no one has time to get to, or doesn't want to start because it seems overwhelming.
At the start of the relationship, it's very easy to overlook these important considerations and start writing custom code to appease the demands from your new, paying customer. The customer wants the software to work exactly as they envision it, and the implementation team wants to make the customer happy in the short term. Also, quantifying technical debt is difficult to do, so bringing up technical debt and the added costs with your new customer can be a difficult conversation to have. It's usually easier to put it off, and ignore it until it becomes a problem. This is a very bad idea! Remember, this is not what makes a successful partnership: we need to communicate! When these debts are overlooked, they lead to unwanted surprises such as unforeseen expenses and delays. Eventually, they can jeopardize the whole marriage!
What's the Solution?
Odoo provides a maintenance service that ensures our customers don't get blindsided by technical debt. To do this, we provide a unit of measure to project costs of maintaining custom code (pre-marriage), and we also provide the technical services to deliver this maintenance. This is our way of ensuring we remain honest, transparent, and communicative.
To gain access to these services, Odoo has introduced Standard Maintenance Contracts. These contracts act as insurance for you, so you don't have to worry about unwanted surprises associated with technical debt any longer. A maintenance contract is an agreement between you and Odoo, stating that we will cover any support, bug fixes, and upgrades of any custom code you wish to install in your Odoo environment.
One contract covers the ongoing maintenance of any technical debt brought forth via any custom code. This makes things simple and transparent from the beginning. Odoo S.A. guarantees that maintenance services will be performed by Odoo directly, or a partner if you wish, so you can rest assured that there will be no costly surprises when it comes time to upgrade.
Additionally, you will have one main point of contact, which reduces the risk of miscommunication and ensures the project runs smoothly. We've also extended our support, upgrades, and bug fixes to include the maintenance of 3rd party modules. All of these changes can be found in the Odoo Enterprise Agreement (go to odoo.com/legal for more information).
Pricing
In exchange for this service, we charge affordable monthly installments. Here are the rates per region:
Europe/Oceania 16€ / 100 lines of code Spain/Eastern Europe 12€ / 100 lines of code North America/Oceania $18 / 100 lines of code Africa/Asia $6 / 100 lines of code HK/ Middle East $12 / 100 lines of code
As for keeping tabs and projecting your maintenance expenses each month: it's straightforward to audit from the server, customer portal, or by contacting us directly for assistance.

You don't ever have to be stuck with old versions of software or inadequate support ever again! Your company, large or small, needs guarantees so you can plan for the future. Maintenance contracts will make your implementation more successful in the long-run, and also increase your overall satisfaction. This is just one more tool in your kit to achieve success!