Diffusion de la connaissance et outils collaboratifs associés : Comment diffuser et pérenniser la compétence au sein d'une équipe de développeurs, quels outils collaboratifs utiliser? Question: appliquer le modèle de développement Open Source au domaine plus large de la diffusion de la connaissance...une idée farfelue?
Sommaire Le développement logiciel en quelques diagrammes L'organisation d'une communauté Open Source Création et captation de valeur dans les modèles propriétaires et Open Source Diffusion de la connaissance : modes opératoires Présentation de Janua et problématiques Les outils collaboratifs des équipes de développeurs Ce qu'implémente Janua : retour d'expérience
L'équipe de développement projet
Modèle de développement logiciel
L'organisation d'une communauté Open Source
Modèle de développement propriétaire Création de la valeur du logiciel déterminée par la qualité et l'efficacité du seul développement dans l'entreprise. R&D assurée en interne de l'entreprise Activités/investissements aux fins de commercialisation et vente très importantes Captation de valeur par paiement d'une redevance Clients "dédiés" à la captation de valeur plutôt qu'à la création (de valeur) car peu impliqués par les éditeurs dans le processus de développement.
Modèle de développement des logiciels libres Implique un mode de production coopératif organisé (E.Raymond La cathédrale et bazar ) Création de la valeur du logiciel déterminée par la coopération des utilisateurs et développeurs. R&D assurée en interne et en externe (developpeurs bénévoles). Pas de commercialisation : on parle plutôt de diffusion Le logiciel est payé une fois (cf ADULLACT) puis est "libéré". La captation de valeur se fait par les activités de service Clients associés à la création des logiciels, coopérants au développement, d'où une grande adéquation à la demande.
Création et captation de valeur dans l'industrie logicielle : Singularité des biens numériques : Coûts variables de reproduction proche de zéro, Coûts fixes de développement très élevés. Sur l'ensemble du cycle de vie d'un logiciel, il existe Des points de création de valeur Des points de captation de valeur
Dans le modèle traditionnel (propriétaire) Création de valeur : Essentiellement en interne (chez l'éditeur)
Dans le modèle propriétaire Captation de valeur :
Dans le modèle Libre Création de valeur fait appel à des ressources externes (coopération)
Dans le modèle Libre Captation de valeur :
Un petit peu de théorie : Appliquer le modèle de développement Open Source au domaine plus générique de la diffusion de la connaissance...une idée pas si farfelue... Quelques petits dessins valant mieux que de grands discours...
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Source : J M Garcia, W E Steinmueller SPRU University of Sussex
Présentation De Janua Société de services (SS2L) fondée en 2004 à Sophia Antipolis Notre métier : l'expertise Notre crédo : l'open Source Notre force : les hommes, leur vécu et leur motivation Notre problématique : Comment diffuser et pérenniser la compétence au sein d'une équipe de développeurs, quels outils collaboratifs utiliser?
Les compétences de Janua Consulting, implémentation et déploiement de solutions de gestion de l'identité Etudes d'opportunités et accompagnement à la migration Open source, déploiement de solutions d'infrastructures, virtualisation. Développement au forfait et expertise sur des composants Open Source, Embarqués et Temps Réel. Editeur de logiciels (CmakeBuilder, Jaguards, JAC, KressourcesWCAP et EZ-Slony)
Les problématiques de Janua Comment gérer une équipe de développeurs décentralisés, Plusieurs projets en même temps Des projets de petite taille La réutilisation maximale de la connaissance accumulée et des composants développés.. => des méthodologies et des outils
Méthodologies utilisées dans le monde Open Source Les principes popularisés par l Open Source (mode de production coopératif organisé cf E.Raymond La cathédrale et bazar ) : "Release Early, Release Often" "Keep It Simple Stupid" Les concepts de l extreme Programing (base théorique SCRUM) applicables en entreprise : peer review, build automatique, tests unitaires, auto-documentation, etc.. Une spécificité du monde Open Source (le métier des SS2L), les méthodologies d'assemblage (la «glue») : QSOS (atos), OSMM (cap), QUALOSS (CETIC/EU), etc... Une méta-méthodologie, simple, rapide et efficace pour les POCs et les «petits» projets : MAJ (Méthodologie d'assemblage Janua).
L environnement des développeurs / concepteurs Les ateliers de conception UML : Netbeans, Eclipse, Umbrello,... Les ateliers de développement : Eclipse, Netbeans,... Source code manager, règles d utilisation et politique de versionning : CVS, Subversion, Mercurial Automatisation des builds et stratégie : nightly-build, snapshot, (Maven, etc...)
L environnement des développeurs / concepteurs Les tests automatiques : Maven/Cruise Control, Canoo WebTest, etc. Les outils de suivi des bugs : JIRA, Mantis, Bugzilla. Les mailings lists Users, Developpers, Announcement, Commit.
Des outils collaboratifs à la gestion de la connaissance.. Gestionnaires de projet : Project, EGW, Kplato, OpenProj Repository documentaires : Webdav, Alfresco, EGW, Wiki,portails, CMS... => aucun outil miracle, de la méthodologie, de la volonté et de l'organisation...
Où en est Janua? Méthodologies : MAJ, XP Modélisation : Eclipse, Netbeans, Umbrello Ateliers : Eclipse et Netbeans Versioning : SVN (=> Mercurial?) Test : Junit, TestNG Bug Tracker : Mantis Gestion de la connaissance : Webdav/Ftp, Google Block Note
Conclusions : L'homme et son intelligence doivent rester au coeur du système (pas de taylorisme, chaque développeur doit gérer un projet de A à Z...) Pour chaque projet se poser les bonnes questions : quelle méthodologie, quels outils, quels composants réutiliser.. La pédagogie est fondamentale : les méthodologies et outils ne marchent que si toute l'équipe marche dans la même direction
Merci pour votre attention, Avez vous des Questions? Pascal FLAMAND infos@janua.fr +33(0) 950 260 370