Interviewing Odoo Candidate | Tips for Recruiters
Odoo is a very specific software with very specific requirements. Odoo is ERP and Odoo developer should be an ERP developer. As Odoo is written on Python, an Odoo developer is a person who understands both ERP development and has a strong knowledge of Python programming language. It is not so easy to find ERP developer, as well as to find Python developer.
Based on our experience, creating Odoo developer from an ordinary Python developer, or from ERP developer is easier than finding an Odoo developer. This leads us to interview the candidates.
List of Things Every Odoo Developer Should Know
Odoo is written as “all in one”. This means that it has everything necessary inside and additional software is not needed. PostgreSQL is the only middleware used in Odoo, but all you need is to install it on server creating and specifying user, password, and port in Odoo configuration file. After that, your relationships with PostgreSQL are done.
Of course, there are few core skills which Odoo developer should have:
- The knowledge of Python itself. Before learning Odoo he must master the Python language. Besides, the knowledge of OOP and understanding of model-view-controller patterns are must-have, as these are strongly used by Odoo.
- SQL. Odoo has a great ORM layer, but sometimes you will have specific reports or situations when you would need query data directly. Or you may need to debug and understand some functionality that uses direct queries. That’s when SQL will come in-handy.
These are skills not specific only for ODOO developer, more for every Python web development framework developer. Django, Web2py, Flask developers are also familiar with the technologies described in the list above.
What Are Specific Skills of Odoo Developer
First of all, It would be better if your candidate had experience in ERP development. It could be Microsoft Dynamics NAV, IBM MAXIMO, SAP, ORACLE Business Suite, or even young Odoo concurrent – NextERP, which is also written in Python.
What if your candidate says that he has Odoo skills and has already developed in Odoo? Here the list of skills to test him during the interview:
- ORM API – API for creating data models in Odoo. The model is a representation of the entity that will be stored or used in some operations. It will be stored as a table in a database. Odoo developer must have knowledge about field types, model types, and specific methods and inheritance.
- QWEB – templating engine of Odoo. Developers must know its rules and directives. Also, he/she must know how to add its own parsers to handle specific functions.
- UI/Menus/Views/Actions – specific objects for user interface. Everything seen by the user while working with Odoo except the website is handled by these. Each menu points to action leading to view which describes the generated form finally shown to users.
- Modules. Every application in Odoo is one separate module. Of course, they can be connected and often depend on each other. But they have some separated specific functionality. Odoo developer must know the module structure and be able to create or read manifest files.
- Controllers. Odoo is a web-based system. And it will listen to the network, get requests, generate and send responses. All of this is done by controllers. This is the easiest part to learn if you have experience with Python web frameworks like Django and Flask. Odoo developer must be able to create his own controllers or inherit the present one.
These are skills specific to Odoo implementation. They are well pointed out in Odoo developer documentation and reading these manuals must be strongly required for candidates.
Top 10 Questions About Odoo to Ask Odoo Developer
Below are just examples of questions that will show the experience and skills of the interviewed candidate.
What is the purpose of key “data” in the manifest file?
It contains the predefined data records in XML or CSV formats. They can contain menus and views and predefined configuration data (payment types, charts of account, etc).
Which type of models used for wizards?
Wizard models are not stored in a database. Records are created temporary and removed when operations are finished. Special class TransientModel is used for them.
What is the purpose of record rules?
Record rules let you configure access based on record data. For example, you can see products only with specific tags, or invoices created only by the user or his subordinates.
How to make your custom function be parsed by the “t-esc” directive of the QWeb engine?
I need to inherit from report_sxw.rml_parse, and then add this class as _wrapped_report_class in the abstract report model.
For creating One2many relation to other models what additionals you need?
Many2one fields in relation model.
Which fields used for a model inheritance?
Internal fields _inherit, _inherits, _name are used to specify the inheritance type.
What different types of model inheritance are used in Odoo?
- Class inheritance with the same name and parent name inherit used to add features. Compatible with existing views and stored in the same table.
- Prototype inheritance. New _name and parent name in _inherit. Used to copy features. Stored in different tables. Ignored by views.
- Delegation inheritance. New _name and using _inherits. Multiple inheritances with created embedded instances of inherited objects.
What will be the “id” attribute in the “record” tag of the XML file?
With the prefixed module name, it will be a unique external identifier in the Odoo database. It will be accessible by self.env.ref(“id”) in any part of the code.
Describe the developer mode of Odoo.
In this mode, the administrator will get several additional menus and operations. Able to read and edit views, see metadata, read information about each field, etc.
You added a new field in the inherited model. How you will add this field to view?
I will inherit the base view and add field specifying its position by XPath or by linking it to a unique element.
Samples of Practical Tasks for Odoo Candidates
Here there are several test tasks for new candidates. Each of them covers all sides of Odoo development views, controllers, models.
Task #1 Create Courses module with the following functionalities:
Courses – each course has an instructor, room, and lists of attendees and lessons. Each lesson is linked to the room.
- Rooms – locations where lessons will be performed. Each room has its capacity. And a number of attendees can not exceed capacity.
- Modify Contacts model: add fields “instructor” and “courses” in a contact form. Check that person can not be an instructor and attendee of the same course and the same lesson.
- At the website add menu and page where external users can read the description, locations, and schedule. Create a report about courses including a number of lessons.
Task #2 Modify Survey module adding a new type of question. Change frontend templates to correctly process data from users and for creating correct statistics. A new question can be:
- A new type of matrix. Textboxes or dropdown lists.
- Formatted enter of information containing several fields like address or formula.
- Selection of one or more images.
The result should be separated module depending on the Survey.
Task #3 Create module “Scheduled reminders” where user can create notes with the following info:
- List of scheduled reminds.
Create cron task which will check records and will create and send an e-mail message to recipients in scheduled time.
How Mobilunity Can Help Hiring a Professional Odoo Developer
As you can see, being an Odoo developer, as well as finding a good Odoo developer is not easy. We are here to help you find and test the right Odoo developer who would meet all your project requirements. Our experts of IT recruiters with more than 8 years of experience in outstaffing are ready to provide you with the best candidate within 2-4 weeks.