Interopérabilité et Logiciels Libres
Toutes nos solutions sont Libres. L'utilisation de Logiciels Libres, lorsqu'ils sont aussi performants que les logiciels propriétaires (ils le sont souvent d'avantage), nous semble être intéressante pour les services publics afin d'assurer leur indépendance, leur maîtrise sur les solutions, la meilleure gestion possible de l'argent public et l'interopérabilité.
Des projets libres et pas simplement des logiciels « Open Source »
Les solutions que nous développons sont des projets libres, réellement réversibles. C'est différent d'une solution « Open Source » que beaucoup de sociétés, non spécialistes du logiciel libre, peuvent proposer. Le terme « Open Source », tout à fait respectable à l'origine, est aujourd'hui galvaudé par des sociétés qui l'utilisent comme un argument marketing, en feignant de ne pas comprendre les véritables enjeux qui se cachent derrière l'ouverture du code de leur solution :
- Un logiciel libre est ouvert dès la première ligne de code et développé de façon collaborative tandis que le code d'un logiciel « Open Source » est souvent ouvert a posteriori. Cela a des incidences majeures sur la qualité du code. On ne porte pas la même attention à la lisibilité et à la structure du code lorsque l'on développe dans son coin et lorsque que l'on est soumis à l'œil critique d'une communauté de développeurs extérieurs.
- Un logiciel libre doit être accompagné d'une documentation elle-même libre et son code doit-être clairement documenté pour permettre une appropriation aisée. Les logiciels décrétés « Open Source » récemment satisfont très rarement à ces critères.
- Un logiciel libre doit avoir son code source accessible par n'importe qui, posséder une liste de discussion spécifique, une communauté d'utilisateurs. Entr'ouvert est très impliquée dans la communauté du logiciel libre, maîtrise parfaitement son mode de fonctionnement. Ce n'est pas le cas des sociétés qui découvrent l'« Open Source ».
Il en résulte que seul un projet libre est susceptible d'assurer une véritable réversibilité de la solution : le jour où le client n'est plus satisfait de son fournisseur, il a toutes les armes nécessaires pour en changer facilement. Là où les vendeurs de solutions « Open Source » cherchent à réintroduire des biais leur assurant que leurs clients demeurent captifs dans une large mesure, nous nous efforçons de faire en sorte que l'indépendance de nos clients soit totale et que leur volonté de travailler avec nous ne repose sur rien d'autre que sur la qualité des services fournis.
La Méthode de Développement Libre
Dans le monde les logiciels libres, il n'existe pas de méthodologie formalisée pour la gestion de projet. La Méthode de Développement Libre (MDL) est le résultat d'une capitalisation par nos soins, au fur et à mesure que s'affine notre expérience du développement de solutions libres ou communautaires. Elle n'est ni originale, ni figée. Elle ne fait que mettre en exergue ce que nous avons retenu des méthodes que nous avons pratiquées, volontairement ou non, mais en conservant à l'esprit quelques fondamentaux évoqués ici.
Si les phases de réflexion et de modélisation sont un préalable indispensable aux développements proprement dits, nous savons d'expérience que des spécifications pléthoriques ne sont pas la garantie d'une solution adaptée. Il arrive fréquemment que l'on perde en épaisseur de la réalité des usages, ce que l'on gagne en modélisation théorique. Il en résulte un certain nombre de principes qui forment notre méthodologie de développement :
- Développement itératif : c'est une forme de développement dans laquelle on crée rapidement un prototype de l'application pour le soumettre aux utilisateurs et les autoriser ainsi à préciser ces spécifications. Ceci permet de fournir un prototype plus élaboré, pour converger vers l'application finale. Les projets informatiques ont tendance à se tourner trop tard vers leurs utilisateurs, à un stade du développement où les changements possibles sont souvent d'ordre « cosmétique ». C'est ce ce que nous essayons d'éviter.
- Utilisation de forges logicielles pour l'ensemble de nos projets depuis notre création.
- Ouverture et publication du code dès le début des développements pour tous nos projets.
- Respect des standards.
- Choix de solutions simples, le moins de code possible pour éviter l'overengineering.
- La réalisation de paquets (Debian) de façon très régulière.
- Un contact privilégié du client directement avec les développeurs.
Cette méthode se veut dans la lignée des méthodes "agiles" et orientées vers l'humain ("people-first"). Elle est pilotée par les tests.