Consultant technique Odoo: un engagement qui a du sens

jordi-rieraCela fait maintenant six mois que j’ai rejoint l’équipe des solutions ERP au sein de Savoir-faire Linux. Dirigé par Maxime Chambreuil, notre département a pour mission de fournir des solutions métiers efficaces et personnalisées en s’appuyant sur le logiciel libre de gestion d’entreprises Odoo. Je n’avais alors aucune connaissance de ce framework mais, armé de sept ans d’expérience de Python, Django, PyQt et les cadres d’applications maison des entreprises pour lesquelles j’avais travaillé, j’ai pris le pingouin par le bec sans trop de pression. Après tout, il s’agissait juste d’un environnement logiciel de plus à apprendre. En réalité, le pingouin cachait son jeu et le défi était ailleurs. C’est ainsi que j’ai découvert le sens caché du métier.

Commençons par les fondamentaux. Odoo est une application ERP développée dans ce plat pays qu’est la Belgique, basé sur Python pour la logique, XML pour les vues et d’autres technologies qui lui sont spécifiques. Par exemple, l’ORM et le moteur d’édition des vues sont nouveaux. Même si l’on n’a pas réinventée la roue, quelques améliorations y ont été apportées au passage. On y trouve ainsi un système d’héritage qui évite toute prise de tête avec les importations récursives et un système de vues permettant d’éditer celles-ci en tout point sans avoir à prévoir de point d’entrée en amont.

En plus de ces technologies, Odoo tire sa puissance d’un très grand nombre de modules gravitant autour du cœur de l’application. Ces modules permettent d’y ajouter des fonctions telles que la gestion de la comptabilité et du recrutement, les chaînes de ventes et d’achat, etc. En fait, toutes les fonctions clés d’une solution ERP répondent à l’appel.

En passant d’OpenERP à Odoo, la solution s’est également forgé une nouvelle arme : un gestionnaire de site web hautement personnalisable, prêt à inclure une boutique en ligne, un CRM et un blogue. En bref, c’est une solution complète et solide pour la gestion d’entreprise.

En réalité, le pingouin cachait son jeu et le défi était ailleurs…

Si Odoo était une voiture, notre travail, en tant que consultant technique, ne consisterait pas à la fabriquer. Ça, nos amis de Belgique s’en occupent déjà. Nous nous concentrerions plutôt sur l’installation de phares directionnels pour les clients qui roulent la nuit en montagne, ou sur l’ajout d’un système d’ouverture de coffre automatique pour les familles avec un siège de bébé et des provisions plein les bras.

La complémentarité d'Odoo, Savoir-faire Linux et leurs ses clientsNotre mission première, ef effet, c’est de bien comprendre les besoins des clients et leur fournir toutes les options qu’il faut, là ou il faut. Nous devons faire en sorte que la voiture devienne leur voiture. Mon principal défi, en tant qu’intégrateur et développeur appuyé par mes collègues consultants fonctionnels, c’est d’être à l’écoute et totalement ouvert d’esprit. Ce n’est qu’ensuite que mon expérience sera mobilisée afin d’assembler le mieux possible la solution qui rendra la vie plus facile (et la plus rentable) à mon client.

Certains jugeront peut-être cette finalité triviale, pas assez glamour à leur goût et c’est leur droit. En ce qui me concerne, ma satisfaction de consultant se nourrit avantageusement de celle des clients auxquels je livre un système informatique fonctionnel répondant parfaitement à leurs besoins. Leur reconnaissance est mon ultime récompense, mais cela ne m’empêche pas, au passage, de continuer à développer mon expertise dans de multiples directions. Et puis, il y a le plaisir d’œuvrer dans une communauté ouverte et d’y contribuer. Tout cela est très enrichissant!

Animation, VFX et jeu vidéo : un python dans le moteur

Lavender Albino PythonL’industrie du divertissement numérique, comme Christian Beauchesne l’appelle judicieusement, a des besoins bien spécifiques découlant de ses modèles d’affaires. Soumise à une intense compétition rythmée par les saisons commerciales et les bilans annuels, elle doit produire des films, jeux vidéo et autres livrables à un train d’enfer, dans un grand roulement de tambour personnel. Pour réussir ce tour de force, elle dispose heureusement d’une épée magique : Python.

Générant un chiffre d’affaires galactique de l’ordre des 100 milliards de dollars US en 2014 (1), l’industrie du jeu vidéo est la première industrie culturelle dans le monde et une importante locomotive de l’économie numérique, du Japon aux USA en passant par la France et le Québec (2). Mais le secteur de l’infographie (Computer graphics, en anglais) ne s’arrête pas à la porte des studios de jeux comme Gameloft ou Ubisoft. Il franchit celle des studios d’effets spéciaux, comme Hybride Technologies ou Industrial Light & Magic (auteur des effets spéciaux de Star Wars et Transformers) et pénètre aussi dans les studios d’animation comme Digital District Montreal ou Pixar.

Un langage qui se glisse partout

Or, Python est un langage de programmation ouvert comptant un très grand nombre de modules et bibliothèques logicielles (libraries) qui lui donnent le pouvoir magique de s’adapter à de nombreuses situations. On le retrouve abondamment sur le Web, notamment avec le framework Django et derrière des sites tentaculaires comme Youtube et Google. Dropbox a basé son système sur Python et la NASA elle-même l’utilise, comme le montre l’une des success story du site de la Python Software Foundation.

Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers” — Cuong Do, Software Architect, YouTube

Les studios d’infographie font partie de ces entreprises friandes de Python. Elles ont besoin d’être réactives à cause des échéances fluctuantes et de délais de plus en plus courts. Python permet justement de produire rapidement du code facile à maintenir. C’est donc un langage de choix pour développer ce que l’on appelle le « pipeline », le flux de données du studio. Ce pipeline va principalement gérer de très gros fichiers et y associer des attributs (ou tags) dans une base de données.

Python est certes plus lent que ses grands frères, C ou Java, mais ce n’est pas un problème, ici. Le principal goulot d’étranglement, c’est le chargement des fichiers et non la lenteur d’exécution du code. C’est pourquoi Python est présent dans toutes les grandes technologies: Maya, Nuke, Shotgun, Houdini, 3ds Max, Arnold, etc. Cette omniprésence fait en sorte que les pipelines peuvent dialoguer avec leurs composantes grâce à un seul et même langage. Cela réduit considérablement la complexité.

Enfin, il y a la philosophie de Python, résumée par ce célèbre aphorisme de Tim Peters :

There should be one– and preferably only one –obvious way to do it.” — Tim Peters (The Zen of Python)

Photo: affiche japonaise "Zen of Python"En d’autres termes, Python permet de sauter rapidement dans le code et de le comprendre. C’est ce que cherchent les studios qui doivent recruter très fréquemment de nouveaux développeurs.

Le choix de Python est d’autant plus logique que, sans être nécessairement le plus répandu, c’est l’un des langages de programmation les plus populaires au monde(3). Du fait de sa grande lisibilité, toutes les universités l’enseignent dans les cours de sciences informatiques et un grand nombre d’autodidactes le maîtrisent parfaitement. À Montréal, le cours DEV401 – Programmer en Python est l’un des plus populaires du centre de formation de Savoir-faire Linux et l’association Montréal Python n’est jamais en manque de présentateurs pour ses soirées-conférences mensuelles.

 
Voilà pourquoi, finalement, lorsque l’École Nad nous a contacté pour nous parler d’un Meetup Python spécifiquement dédié à cette communauté, il nous a semblé tout à fait naturel de nous y associer.