Actualités

[08/09/2017] Breaking news ! Smile décroche le label Happy Trainees 2018

Après le label HappyAtWork, Smile s’offre celui décerné par ses stagiaires et alternants !

[21/07/2017] Smile lance les premiers vélos solaires connectés à l’occasion du Sun Trip Tour 2017

Smile, leader des solutions IoT et open source, confirme sa solide expertise sur le marché de l’embarqué en participant activement à la course de vélos solaires du Sun Trip Tour.

[03/07/2017] Smile remporte le Drupagora d'Or 2017 du meilleur site e-commerce

Le vendredi 30 juin, la 3ème édition des Drupagora d'Or s'est déroulée à Paris.

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

TinyERP: y'a moins bien mais c'est plus cher...

Smile vous propose un tour d'horizon de TinyERP. Un ERP très complet qui tire partie d'une redoutable avance technologique pour poposer des fonctionnalités toujours plus poussées et de mainière soutenable en terme de développement.

 

Nous vous avons déjà parlé dans ce blog des ERP open source J2EE et notamment de OpenBravo, société et logiciel très dynamiques et très intéressants. Nous allons vous parler ici d'un autre ERP open source, cette fois-ci en environnement Python, TinyERP.

TinyERP n'a de 'tiny' (minuscule) que la concision de son code source, pour le reste il s'agit d'un sacré challenger qui nous a emballé malgré toute la froideur de notre analyse que nous allons détailler dans ce post. Mais d'emblée nous voudrions insister sur les enseignements principaux:

  • TinyERP est très riche fonctionnellement. Sans doute l'ERP libre le plus riche et il a de quoi inquiéter les mastodontes du marché.
  • Comme nous allons l'expliquer, TinyERP possède environ 5 ans d' avance technologique sur ses concurrents libres. En fait ses fonctionnalités découlent naturellement des gains de productivité engendrés par ce saut technologique. Et de surrcoît la modularité de la plateforme a permis l'émergence de tout un éco-système d'acteurs qui contribuent des modules toujours plus avancés.
  • Cet eco-système de partenaires et contributeurs bâti par Tiny frappe lui aussi par son efficacité. Déjà 200 modules d'extension, une véritable forge et des stratégies de business model telles que le 'shared funding' qui maximise totalement le retour sur investissement.Contribuer au développement de TinyERP garantit que les coûts seront partagés au maximum et que votre argent ne servira pas qu'à financer des campagnes marketting!
  • Des références qui s'accumulent; dont les plus grosses: Whirlpool, Costes Hostels, IR-Microsystems...
  • Une interface web complète (ainsi qu'un client lourd GTK).
  • Une vraie license libre: GPL.

Les fonctionnalités principales:

Il faut tout de suite que vous voyez TinyERP comme une plateforme saine accueillant diverses plugins et personnalisations. Ceci diffère des ERP classiques dont on dit qu'ils ont ou n'ont pas telle ou telle fonctionnalité que chaque éditeur fait payer au prix fort. Nous parlons d'ici également d'une plateforme très saine, un peu à la manière de l'IDE Eclipse.

Il y a donc un coeur de fonctionnalités natives autour duquel gravitent des fonctionnalités plus spécifiques qui sont développées, par spécificité croissante:

Ce qu'il est important de noter, c'est que Tiny a une vision clairvoyante de l'open source et garantie la meilleure mutualisation possible des investissements de développements. Tiny répartit intelligemment ces développements selon ces différents modèles en fonction du degré de spécificité de ces modules et garantie la récuparation par la communauté des efforts partagés partout ou c'est possible.

Outre ce système éprouvé de forge de fonctionnalités, TinyERP peut déjà se targuer des modules centraux suivants:

  • CRM : Gestion de la relation client
  • Account : La comptabilité analytique et financière
  • Stock : Gestion flexible des stocks et points de ventes
  • Sales : Gestion des ventes, commandes et opportunités commerciales
  • Purchase : Gérer les achats et les devis
  • Logistique : Organisation de la logistique interne
  • HR : Gestion des ressources humaines, présences et notes de frais
  • Projet : Gestion de projets (MS Projet simplifié)
  • Marketing : Gestion des campagnes marketing
  • Produits : Gestion des produits (avec variantes), liste de prix, contrats
  • Production : Nomenclatures gammées, calcul de besoins MRP et Just In Time, tracabilité.
  • Network : Gestion de configuration, matériel, logiciel, réseaux
  • Webshop : Gestion des boutiques internet

 

Difficile de rentrer dans plus de détails fonctionnels dans un post de blog, vous devrez patienter pour attendre notre livre blanc ou écumer le site de TinyERP pour cela. Sachez néanmoins qu'on trouve ici tout le standard auquel on doit s'attendre pour un ERP milieu de gamme classique. Précisons encore que TinyERP est multi-sociétés, multilingue et possède un système de rôles classique.

Comme sur tout bon ERP, 80% des fonctionnalités attendues sont au rendez-vous nativement. Mais le principal intérêt de TinyERP, c'est de minimiser le coût des 20% des fonctionnalités restant à implémenter.

Disons encore que les 80% des fonctionnalités recherchées ici sont présentes nativement. Comme vous le savez déjà, le problème de tout ERP c'est de savoir combien vont couter les 20% de fonctionnalités que veut telle ou telle entreprise spécifiquement. Le problème avec beaucoup d'ERP commerciaux, est que ces 20% de fonctionnalités vont coûter 80% ou plus du budget !

Eh bien avec Tiny, nous pouvons affirmer que le côut d'implémentation de ces 20% de fonctionnalité sera le coût minimal. En premier lieu, parmis les 200 modules (et cela s'agrandira!) disponibles sous license GPL, il est déjà très probable que l'un s'approche de vos besoins.

Notamment, on trouve des modules optionnels pour:

  • de l'ecommerce, des interfaces ez-publish, joomla, virtuemart ou encore eBay...
  • un module de messages EDI
  • un module de GED intégré à un module de gestion par affaire
  • un module d'import comptable depuis Sage
  • un certain niveau de reporting de business intelligence et comptabilité analytique; on peut pousser la BI à fond en s'interfaçant par ailleurs à SpagoBI
  • des modules aussi spécialisés que pour de production l'agro-alimentaire...

En second, lieu, il faudra paramétrer les meta-données de l'ERP. Celles de TinyERP sont relativement simples à paramétrer. Par l'interface graphique, sans aucune phase de re-déploiement, on peut chager les menus, les vues, ajouter des méta-données, altérer les droits d'accès. Certes, cette architecture générique se fait au prix d'une ergonomie légèrement moindre que des logiciels spécialisés (en compta par exemple) mais qui vous demandent in fine de financer le développement spécifique couteux de chacun de leurs écrans retravaillés spécifiquement. C'est le modeste prix à payer pour l'émancipation de l'éditeur et une meilleure inter-opérabilité.

Si ceci paraît assez classique, là ou Tiny va vraiment plus loin, c'est:

Les factures et autres rapports personnalisables avec le plugin Openoffice:

Tous les rapports, factures, reçus, bilans etc.. peuvent également être modifiés à l'aide de simple boutons dans le traitement de texte libre OpenOffice par un utilisateur confirmé (ensuite .pdf et .doc sont générés). Rappelons que les concurrents de TinyERP utilisent plutôt des outils de reporting tels que JasperReport qui impliquent à coup sûr l'intervention d'un intégrateur spécialiste pour modifier les rapports. Pas sur Tiny!

TinyERP, très avancé également sur les workflows (BPM):

Le succès des entreprises d'aujourd'hui réside en grande partie dans l'agilité. C'est à dire la faculté de s'adapter aux contraintes du marché (mondialisation, Internet, changement de fournisseurs, externalisation de prestations...). Qui peut aujourd'hui prétendre qu'on peut figer les process au seul moment où on intègre un ERP? C'est précisément tout l'enjeu du BPM que de rendre souple l'élaborations de nouveaux porcessus dans une entreprise. Par exemple: une proposition commerciale devra être validée par tel manager, puis si le client la refuse, alors tel autre manager pourra éventuellement effectuer une remise...
Et question BPM, TinyERP est encore une fois le grand gagnant. En effet, sans rien coder ni rien compiler, on peut mettre en relation absolument toutes les données de l'entreprise selon des graphes de processus aussi complexes qu'on le souhaite, avec autant d'écrans de validation et de saisi qu'on le souhaite et en assignant telle ou telle tâche à n'importe laquelle des personnes référencées par l'ERP. De surccroît, le BPM de TinyERP est compatible XPDL, l'un des deux grands standards (avec BPEL) du marché du BPM! Enfin à chaque instant, on peut monitorer la progression de tout processus dans un graphe très lisible.

 

Une architecture inégalée

Je suis sûr qu'autant de fonctionnalités vous poussent à vous demander comment tout ceci est possible dans un logiciel GPL qui ne possède pas encore les centaines de milliers d'euros d'investissement des éditeurs d'ERP installés. Eh bien nous allons montrer que ceci résulte d'un percée technologique encore jamais vue, du moins dans l'ERP libre qui a pour conséquence de maximiser la mutualistation des efforts à tous les niveaux.

Les fondamentaux d'un ERP: comment TinyERP s'est affranchi d'un fardeau historique:

En fait technologiquement, un ERP, c'est d'abord une bonne base de donnée qui sert de référentiel unique pour l'ensemble des données de l'entreprise. Les premiers ERP se sont développés dans les années 70 avec l'essort des bases relationnelles telles qu'Oracle. A l'aire du libre, payer pour du bon relationnel est dépassé et la base libre PostgreSQL suffit généralement amplement (par exemple la RATP vient d'en préconiser l'usage pour ses applis métiers ). Or dans les années 70/80, l'heure ou les grands de l'ERP ont tissé leur toile, on ne faisait pas de programmation objet, mais que du procédurale dans la base de données (PL/SQL). Or tout le monde a appris à l'école que la programmation objet a été créé pour permettre l'abstraction et l'encaspulation des concepts. Ainsi garantir la stabilité et l'évolutivité du code ou encore l'appréhension des concepts par des acteurs externes. Presque tous les logiciels compétitifs d'ajourd'hui sont basé sur l'objet. Tous sauf ceux pour lesquels l'existence d'empires financiers colossaux et d'existants in-migrables ont fait stagner les éditeurs vers le support des solutions du passés qui elles demandes des efforts de développement colossaux pour le moindre paramétrage. En fait, même les ERP libres tels que Compiere (OK, Compiere n'est plus libre) et ses forks (Adempiere, OpenBravo) traînent encore aujoud'hui ce poid historique: créé comme projet interne chez Goodyear Germany, Compiere est essentiellement programmé en relationnel très bas niveau. La migration vers l'objet de ces produits n'a été que très partielle.

Au contraire, TinyERP qui n'avait pas les contraintes financières d'un éditeur a directement pris le parti de partir sur une plateforme de nouvelle génération. D'une part, les fonctionnalités n'ont été développées qu'après coup et donc à coût relativement bien plus faible. Et d'autre part, le bond en avant en terme de modularité de la plateforme TinyERP a permis à tout un éco-système de modules de se développer autour de l'offre de base.

Plus précisément, la supériorité technique de TinyERP réside dans:

  • un ORM (Object Relationnal Mapping, permet de travailler sur des bases relationnelles en langage objet) puissant. Les Compiere et forks n'ont pas d'ORM aussi avancé. Open For Business et ses extensions (Opentaps, Neogia) ont certes un ORM, mais celui-ci n'est pas un standard reconnu et n'est pas scriptable non plus. Au final il ajoute surtout de la complexité sans bénéfice aussi grand. ERP5, quant à lui, a fait le parie de Zope et sa base objet. Bien que ce soit une solution intéressante au plan technique, nous estimons que certaines entreprises hésiteront à confier leurs données à une base de données non relationnelle, telle que la base Zope utilisée par ERP5, une base dont la part de marché en termes de diffusion dans le monde est extrêmement faible au regard des bases relationnelles telles que MySql ou bien PostgreSql.
  • cet ORM est scriptable, c'est à dire qu'on peut modifier des règles métier sans aucun redéploiement/compilation. C'est ce qu'on fait quand on édite les workflows, les rapports. Si vous avez entendu parlé de Ruby on Rails pour le web, alors dites vous qu'en gros TinyERP est le Rails de l'ERP. OpenBravo prévoit bien une migration vers l'ORM Hibernate, mais même quand ils l'auront fait, cet ORM ne sera pas scriptable et cela rendra toujours l'expression des règles métiers plus fastidieuses et dépendantes d'un programmeur spécialisé.
  • L'ensemble du code est scriptable puisque écrit en Python. Ceci raccourci les cycles de développements et donc le 'time to market' Dans un ERP, la comparaison brutale Java/Python ne tient pas trop car: ce qui limite c'est surtout les SGBD et non les couches vues/contrôleur, donc la relative lenteur de Python devant Java est négligeable en pratique. En revanche, ce qui importe, c'est bel et bien le côut de la personnalisation de l'ERP. Or disposer de scripting permet à la fois de disposer de méta-language de très haut niveau (comparable à la génération de code java dite 'WAD' des Compiere-like) et à la fois de raccourcir les cycles de développement. Si l'usage généralisé de Python peut être critiqué, les concurrents du J2EE eux ne pourront pas être compétitif sans offrir de possibilité de scripter leur ERP. Or dans le monde Java, le scripting sur la JVM est assez nouveau pour les non avertis. Jython, même s'il a été utilisé commercialement était confidentiel. Groovy ou JRuby font aujourd'hui plus de bruit et apporteront cette souplesse requise pour le paramétrage de haut niveau. En attendant, même si OpenBravo a fait des déclarations dans ce sens, TinyERP reste celui qui a vu juste avant les autres. Notons enfin que des grands noms de l'Internet tels que Google n'hésitent pas à avoir recours au Python là où c'est intelligent.
  • Absolument tout le modèle de données de TinyERP est exposé en webservices XML-RPC. Aucune vue ni aucun controlleur n'échappe à l'interface XML-RPC. Cela rappelle "l'application dictionnary" des Compieres-like, mais ceux si, s'ils passent par des modèles XML intermédiaires n'en exposent pas pour autant l'ensemble du modèle de donnée par webservice. A l'instar d'OpenBravo, l'exposition des services est partielle et doit être codée. Ceci explique pourquoi TinyERP a pu être interfacé aussi facilement avec autant d'autre produits, tels que les boutique d'e-commerce sur eZ-Publish ou VirtueMart. C'est encore le XML-RPC qui a été mis à profit dans eTiny, le module web GPL qui a été développé justement par un partenaire TinyERP (Axelor).
  • La plateforme de TinyERP est très avancée. Elle garantie des dépendances de plugins en couches concentriques tout en évitant les cycles. On dirait un système de paquets d'une bonne distribution Linux. De plus chaque plugin peut être installé facilement en cliquant sur un bouton, on est sur une ergonomie très avancée. Ce système bien défini de couches rend facile l'apprentissage du coeur de TinyERP et permet à tout éditeur de module de réutiliser facilement les fonctionnalités apportés par d'autres modules. OpenBravo pourrait s'approcher de cet idéal en migrant vers Spring comme ils l'affichent, mais en attendant TinyERP tient le haut du pavé à ce niveau.

Nous le voyons donc, la plateforme de TinyERP est donc à la fois légère, modulaire, facile à étendre. Et enfin, si on n'aime pas le Python ou qu'on veut interfacer les services de son choix, en quelques lignes de XMLRPC, on peut communiquer avec notre ERP dans le langage de notre choix. Pour un comparatif plus poussé et beacoup plus de détails sur les fonctionnalités de TinyERP, rendez-vous dans un peu plus d'un mois pour le livre blanc ERP de Smile.

Raphael Valyi
picto

Commentaires

       
frederic
ERP5 n'est-il pas construit sur les mêmes fondamentaux que Tiny ?
lundi 07 janvier 2008 @ 12:30
       

       
Raphaël Valyi - http://rvalyi.blogspot.com
Frederic,

En effet, ERP5 est également l'un des très rares ERP à bénéficier d'une modélisation d'aussi haut niveau (en fait nous n'avons trouvé que TinyERP et ERP5 dans ce cas). Ceci dit, ERP5, avec sa base objet Zope nécessite un pas technique que nous préférons ne pas franchir à cette heure. Nous doutons d'ailleurs que les DSI soient prêt à abandonner leurs données d'entreprise critiques à d'autres types de bases que les bases relationnelles réputées avec lesquelles ils ont l'habitude de travailler, sans préjuger pour autant de ce type de technologie. De plus, nous avons senti une dynamique moins favorable pour ERP5 que TinyERP. Bref voici pourquoi notre coup de coeur se porte plutôt sur TinyERP; nous souhaitons par ailleurs bonne chance à ERP5 qui est loin de démériter.
jeudi 28 février 2008 @ 21:20
       
Ecrire un nouveau commentaire