Skip to Content
Use AI for Odoo Development The Right Way
Being suspicious for profit and pleasure
10 September, 2025 by
Use AI for Odoo Development The Right Way
Jared Kipe
 

In my last article, I mention troubling trends I see where businesses promoting AI coding tools are convincing other businesses that they don't need developers. 

Yet, it is undeniable that these tools can be useful or helpful in the art of software development. 

What can you do to have your cake and eat it too?

Being Suspicious

Much like a "sponsored content" creator, you need to understand that these tools have many biases and weaknesses. They work by generating "the most likely output" to questions (just token input) not by serious introspection or trial and error, but by condensing text "knowledge" into a form that is convenient for the task.

Again the task is to "generate the most likely outcome".

They seem to be so knowledgable and smart because they are tuned to "brain dump" at a rate that deceives the user into turning off the critical thinking part of their brains and just accepting the outcome. "buy this revolutionary air-conditioning device!"

I'm also not alone in thinking that they are also being tuned to be overly self aggrandizing of itself and the user. Practically every question I type in is immediately responded to with platitudes like "Oh great question!" or "What a great idea you just had!". The "the most likely outcome" of a sycophant.

But just in the last week, we have some fantastic examples from reddit.

URGENT - my girlfriend used chatGPT for her work. Now her boss wants her to explain the calculations. I think the calculations were a hallucination. What to do?

Opposing Counsel Just Filed a ChatGPT Hallucination with the Court

What do they have in common? The user didn't think that the AI could be wrong. I mean it is so authoritatively vain, how could it be so wrong?

Starting a Mushroom Farm

I have a personal example.  I have an abundance of grass clippings, and wanted something to do with it.  Well ChatGPT has some ideas, but my example is one that demonstrates a calculation so incorrect that it stands out in my mind.

When making basic organic compost, one of the most important concepts is the ratio of Carbon to Nitrogen, commonly abbreviated C:N.

We will accept that Grass clippings has a C:N of about 20:1, and hardwood chips 400:1, and that the ideal compost C:N should be 30:1.

It should be obvious that you must mix the wood chips with the grass as either alone are not ideal and that they are off of the ideal in opposing directions.

ChatGPT 5 tries to sneak this bullet point past me. (emphasis from itself)

Roughly 1 part grass : 20 parts wood (by dry weight) lands you near a 30:1 composting ratio.

Now, you do not need to do any math, but it should be pretty obvious that if you mix 1 part grass (at 20:1) and 20 parts wood (at 400:1), then you MUST get a C:N that is much much closer to 400:1 than to 20:1. This fact was so obvious that instead of "just moving on and doing my own math", I confronted ChatGPT with my napkin math that arrived at about 382:1 as the final ratio.

Thought for 1m 48s

You’re right to call that out—my earlier “1 part grass : 20 parts wood ≈ 30:1” was wrong. Thanks for the nudge.

Then it proceeds to lay out formula that is basically just what my napkin math was but with fancy ∑ summation notation...  But it also tries to gas-light me about the moisture content mattering.  Which is pretty rich given its own earlier quote of "(by dry weight)".

But also notice the "thought for 1m 48s" part? Thats ludicrous amount of compute time for confirmation of what would be intuition to most people.

What about Odoo Development?

I hear you asking...

Well, generally you shouldn't just let the AI do the thinking, here is a non-exhaustive list of things we have seen that AI's do poorly related to development, and especially Odoo.

Models or Relationships that do not exist:  You ask it to add something like partner tags to sale orders.  Something a seasoned developer might immediately jump to a related="partner_id.category_id" M2m relationship, or maybe just a whole new M2m relationship but using the res.partner.category model. The AI might just make up a new model, like partner.tag, often times without any accompanying model definition.

Typos that a static analyzer could find: things like @api.on_change or fields.Bool or fields.Many2One - the biggest problems with these are when you're trying to get it to write a whole module and maybe not running the code until you have a whole lot of them.  Imports that don't exist.  Generally things that result in  name errors or attribute errors.

Performance issues, especially with database use: I gave an example of a naive use of the ORM in the last example, but I've also seen things like using math in SQL that forces full table scans when the math could have been done in advance and the results inlined in the query (or just use the ORM at that point). These are not always easy to spot, but are worth the time - literally.

Unchecked Call Result Soup: A lot of code can be generated that might work on first inspection or isolation, but gives you a lot of confidence in "what it does" that is undue, especially when there is a problem. Generated error messages like, "X already exists in the system", when it clearly doesn't and is a result of things like methods named "findSomethingByX" nested in "findOtherByX" that calls the former, but doesn't never checks the result. If you debug the "findSomethingByX" method, you see that it is working, but you don't consider all the call sites leading you to confidently claim "we need a way to see all the X's in the system because we need to delete the one we already have".

Advice That Goes Nowhere: More on the functional side, but LLMs are pretty good at telling you things like you can "in Odoo navigate to Actions > AvaTax Functions -> Tax Override" - which does not and has never existed - to accomplish a "tax override function".  In this example, you can practically see the AI turn your question into an incorrect answer.

Inability To Follow Directions: Whenever we scope a task that we don't actually develop, there is the chance for independent thinking.  Sometimes that is a good thing, experience of the developer steering the work towards superior solutions. With AI, this drift has no meaning at all (which is of course possible with real people as well), and can either completely derail the project, or cause further delays as corrective efforts must be made.  A simple example is if you know that you could accomplish your task through only in-database solutions like actions and inherited views, but the AI takes this advice and spits out python code with maybe a data.xml file that defines a server action that calls it. 

Lack of Responsibility

These problems are not specific to Odoo, but rather the idea that experience can or will be replaced by charlatan tricks. 

At the end of the day, these tools seem to be the most useful for the people that already have the experience or knowledge to accomplish the task, but saves you the time to read the code to find "the where" or "the how".  Usually not so much on "the why" side (you already know the "why" right?!).

These AI agents routinely get things wrong, but we give them a pass because they are so good at "everything". But you as an individual do not get that pass.  You cannot, or - again from the last article - should not, be absolved of your responsibilities because "the AI said...". What would you do with a support agent that "occasionally" gives completely incorrect advice? You can coach them on trying their own advice or double checking their results with other privilege levels. But you cannot do that with an LLM.  They cannot grow, or learn to write better tests.

There is no substitute for running code. 

There is no substitute for actually understanding the needs of the client.

The AI, is the Expert, right? (... but it will try)




Use AI for Odoo Development The Right Way
Jared Kipe September 10, 2025
Share this post
Tags
Archive
Sign in to leave a comment