Étude de cas : la reprise de SOGo 5, groupware open source
SOGo est une messagerie collaborative open source utilisée par des entreprises et des communautés depuis plus de vingt ans. Sébastien Mizrahi, architecte logiciel à Lyon, a accompagné Alinto dans l'internalisation de la solution : reprise du code, support, évolutions et formation des équipes.
Le contexte
SOGo réunit webmail, agendas et carnets d'adresses, avec partage de ressources et gestion des droits. Il s'appuie sur des standards documentés (IMAP, CalDAV, CardDAV) et se connecte nativement à de nombreux clients : Microsoft Outlook, Apple Calendar, iPhone, Thunderbird et une foule d'appareils mobiles.
La version 5 est écrite en Objective-C sur le framework SOPE et rassemble plus de 2 100 étoiles sur GitHub. Alinto, qui édite SOGo, a souhaité internaliser la solution : en reprendre la maîtrise plutôt que d'en dépendre.
L'enjeu
Reprendre un produit open source installé depuis des années, c'est s'approprier une base de code dense et des choix historiques, tout en continuant à servir les clients sans interruption. Il fallait à la fois maintenir et faire évoluer la version 5, et transmettre cette maîtrise aux équipes.
Cette reprise a aussi préparé le terrain de la refonte complète en SOGo 6, en donnant une connaissance fine de l'existant et des standards à préserver.
Reprendre, maintenir, transmettre
L'objectif n'était pas de tout réécrire, mais de rendre Alinto autonome sur sa propre solution.
Prise en main du code
Lecture et cartographie de la base Objective-C sur le framework SOPE, pour en reprendre la maîtrise en interne.
Support et évolutions
Correction d'anomalies, évolutions fonctionnelles et maintien de la compatibilité avec les clients existants.
Formation des équipes
Transfert de compétences aux équipes d'Alinto sur une base de code dense et ancienne.
Communauté et anti-spam
Animation de la communauté open source et développement d'outils anti-spam.
La plateforme SOGo 5
Un serveur applicatif Objective-C qui parle les standards de la messagerie et des agendas.
Source : dépôt public Alinto/sogo et sogo.nu.
Ma contribution
- Reprise de la base de code Objective-C (framework SOPE) et cartographie des modules.
- Support et évolutions : correction d'anomalies et évolutions fonctionnelles.
- Formation des équipes d'Alinto pour les rendre autonomes sur le produit.
- Communauté et anti-spam : animation de la communauté open source et développement d'outils anti-spam.
Le code de SOGo est public, sous licence GPL v3 : il reste consultable sur le dépôt Alinto/sogo.
Ce que ce projet illustre
- Internaliser une solution open source, c'est en maîtriser la base de code plutôt que d'en dépendre.
- Reprendre un code existant volumineux sans tout réécrire, en préservant la continuité de service.
- Transmettre : la formation des équipes pérennise la reprise.
- Préparer l'avenir : cette maîtrise a ouvert la voie à la refonte SOGo 6.
Un projet exigeant ? Parlons architecture.
Depuis Chaponost, à côté de Lyon, sur place ou à distance. Réponse rapide avec une première analyse de votre besoin.