tldr;
Odoo is sold as an enterprise solution but in my opinion fails quite miserably in the way it forces developers to work with it.
Hi I'm Martin!
I'm a fairly experienced web developer (10+ years) and have worked with different kinds of frameworks/languages (drupal, vue, nodejs, wordpress,...). In the last months I worked on a reasonably small project with odoo.
In general I like the idea behind odoo a lot. I also like the commitment to backwards compatibility which makes the maintainers lifes harder. Kudos for that!
That being said I wonder how you guys deal with all the unnecessary obstacles odoo seems to put in our way?
This is my rant on the developer experience working with odoo.
This will hurt a little.
1. Errors in qweb templates
Errors mostly do not give you any hint as to what or where exactly the problem is.
2. Adapting templates
Removing elements from templates causes errors because other modules inherited the same template and expect a certain element in a specific place, or throw errors, which brings you back to 1.
3. Changing template changes made by other modules
As far as I know, removing changes to templates by inheriting them made by other modules is not possible. How do you do this?
4. Updating templates
This needs a server restart and possibly module upgrades.
The collective amount of developer time wasted by not realising that you need to restart or upgrade a module must be huge.
Why not do it like almost any other web technology and allow for quick change cycles?
Even with --dev, changes that literally take seconds to make in php applications often take minutes because some xpath selector did not match.
5. Getting information / community culture
If you search for issues on google you mostly get results from this forum - which could be fine. But quite often the answers there are simply posted code snippets that do not actually answer the question. How are others supposed to get a grasp of best practices?
6. Documentation
The general tenor (by reading 100s of forum issues) seems to be that developers are supposed to check out odoo's code to get a grasp of how things work.
If you really want developers to be able to work with your software, complete and accessible documentation is key in 2021.
Here's an example:
Setting/changing values on a related field. There's a specific way of updating a record with int constants which updates the relation. The official documentation does not (as far as I'm aware) tell you how this actually works. The one place I found that does, is: https://www.odoo.com/forum/help-1/many2many-write-replaces-all-existing-records-in-the-set-by-the-ids-148267
7. Quality/comments of odoo's code
Since developers are kind of supposed to learn how to use odoo from odoo's source it's even more depressing that most code is poorly documented and at the same time unclear in its intentions in many places.
8. General stability/brittleness
I've had several issues that came up on only a single odoo instance (e.g. only on staging) even though all instances where exact copies of one another.
Another example: Pdf generation with whtmltopdf.
Odoo 13 works with a single (and quite outdated) of wkhtmltopdf. If you try to use any other version you will have a bad time.
9. Adding fields to models sometimes throws errors when upgrading the module
Adding fields to models sometimes tells me that the newly defined column does not exist. Before even using the new field in templates.
Either the developer does something wrong and it should never work, or it should always work. But hunting after obscure issues like this is a huge timesink.
Googling (again) for issues like this returns solutions like to reinstall the module, which is a workaround at best if it works at all.
---
Odoo is sold as an enterprise solution but in my opinion fails quite miserably in several aspects in allowing developers to work with it.
So my question is this:
How do you guys deal with all that?
How do you justify the amount of time changes take to your bosses and customers?
In which ways do you improve and speed up the whole development process?
You are free to subscribe to the enterprise edition and have access to Odoo's support. Else you have to spend some efforts to learn Odoo. The documentation has very much improved the last 2-3 years. Anyway, this is a help forum only, for discussions please use the corresponding mailing lists at www.odoo.com/groups