r/Odoo • • 6h ago

Experienced Python developer tried Odoo and couldn’t get comfortable with it. Am I missing something?

I’m a software engineer with 10+ years of experience, mostly with Python (Django, FastAPI), PostgreSQL and more recently TypeScript, NestJS and React.

I recently had a great job opportunity at an Odoo-focused company. Good people, good salary, everything seemed right.

So I spent several evenings learning Odoo and working on their coding challenge. But the more I worked with it, the less I liked it.

Coming from Django, I kept recognizing familiar concepts, but everything felt more restrictive, implicit and unnecessarily complicated. The XML views, inheritance mechanisms and some apparent code smells gave me a pretty poor developer experience.
At times, it felt like developing features for a less enjoyable version of Django Admin.

I understand Odoo’s value for businesses, and I know there’s an entire industry of skilled developers working with it. I’m nobody to judge a mature ecosystem after just a few evenings but I simply couldn’t imagine spending my working days in this ecosystem.

Finally I decided to quit the application process despite I liked the company and overall job conditions.

Am I the only one who feels this way? Has anyone coming from Django or other frameworks had a similar experience? Does it get better once you understand Odoo, or is it simply a different kind of development that isn’t for everyone?

14 Upvotes

4 comments sorted by

9

u/Some_Act_9631 6h ago

You’re not alone. I work with Odoo on OCA, custom modules, integrations and some of the friction you describe is real.

The biggest adjustment is that knowing Python only gets you part of the way. You also have to learn how Odoo assembles behavior across installed modules, model extensions, XML views, permissions and context. Reading one class often doesn’t explain what actually happens. That can be frustrating when you’re used to more explicit application code.

For example, we’ve investigated fields that looked editable in the model definition but required checking the effective view and browser widget to understand the UI behavior. We’ve also dealt with invoice reversal logic where the framework’s generic default needed a small, country-specific extension to choose the correct credit note. The Python change was small; understanding the business rule and the existing extension chain was most of the work.

Where Odoo starts making sense is when a requirement crosses sales, inventory, accounting and access control. Having those systems already connected can save substantial work. You spend more time understanding and extending an existing business application, and less time designing an application from scratch.

Does it get better? In my experience, yes: the mechanisms become more predictable, and you get better at finding where behavior comes from. But understanding the framework doesn’t automatically make XML inheritance enjoyable or remove the debugging overhead.

I’d also ask how that company handles upgrades, tests, custom modules and code review. Those practices have a huge effect on the daily experience.

A few evenings probably aren’t enough to judge your eventual productivity, but they can tell you something about the kind of work you enjoy. Declining a good opportunity because you don’t want that work to be your everyday job is a reasonable decision.

1

u/sachingkk 1h ago

You should try Sugar CRM and Vtiger CRM as a great example for worst developer experience especially with file structure , entity relationship and views.

These systems was built long long ago when the concept of developer experience didn't exits and they didn't bother to upgrade themselves as time passed.

Same with Odoo as well. XML is a very old concept and they mostly didn't move to better representation like Json , YML or classes etc..

0

u/Alto-cientifico 6h ago

I come from java springboot and do not have such a big restrictive issue with the environment.

2

u/alextakacs 2h ago

I know i will be downvoted but Claude is your friend here. Give it a try. As an assistant it can really be helpful to get into the Odoo dev 'mindset'.