Publié par

Il y a 8 années -

Temps de lecture 7 minutes

Xebia, une sociologie de Craftsmen ou Craftsmen en devenir

Disclaimer : ce billet est une promotion pour notre société et ses valeurs professionnelles !

A l’instar des guildes néerlandaises de la fin du moyen âge, notre communauté s’organise autour de communautés d’intérêt, toutes porteuses de valeurs et de bonnes pratiques. Ces regroupements de professionnels ont tous pour vocation de faire progresser la collectivité et d’accompagner ainsi le long, très long, trop long même, mouvement de maturation de l’industrie logicielle.

Des groupes d’experts techniques tels que le Paris Java User Group, le Scala User Group, pour ne citer qu’eux, se regroupent autour des technologies qui les passionnent. Nous dirons que ces groupes là partagent leur amour de la connaissance.

D’autres groupes, comme Agile France ou le Scrum User Group par exemple s’intéressent plus particulièrement eux, aux méthodes comme les méthodes agiles. Nous dirons d’eux qu’ils s’intéressent aux processus.

Une question d’attitude

Nous assistons depuis quelques temps, notamment dans les pays anglo-saxons, à la naissance d’un troisième type de groupe, très complémentaire des deux autres, les Software Craftsmen.

Ces Craftsmen, ou artisans en français (nous préférons chez Xebia le terme de compagnons qui semble approprié car moins réducteur) sont des praticiens aguerris, mus par le désir de partager leur passion du travail bien fait grâce à une expérience acquise au fil des années, parfois au prix de douloureux apprentissages.

Des années de pratiques et des milliers d’heures de développement ont fait d’eux des artisans auprès desquels il fait bon apprendre. Qui n’a pas rêvé de passer du temps aux cotés d’un ébéniste pour apprendre à travailler le bois ou aux cotés d’un grand chef pâtissier pour apprendre l’art de faire de bon gâteaux ?

Le mouvement du Software Craftsmanship complète avantageusement les groupes intéressés par la connaissance et les processus et se focalise sur l’expérience et l’attitude.

craftsmanship-attitude

Il ne s’agit bien entendu pas de dire que les deux premiers groupes comportent des membres dénués d’expérience. Bien au contraire nous trouvons dans les communautés Java et agiles des personnes très expérimentées. Il s’agit juste de souligner ici leur positionnement un peu différent et très complémentaire.

Le Software Craftsmanship est un état d’esprit qui considère le développement logiciel comme un art en quête de perfectionnement permanent. L’humilité devant les plus expérimentés, le désir permanent de s’améliorer et la volonté de transmettre en sont l’ADN.

Pour reprendre la métaphore d’Alistair Cockburn, nous pouvons apparenter le développement logiciel à l’apprentissage des Katas dans les Arts Martiaux, il s’agit de démarrer en suivant les règles (le SHU) puis de les comprendre (le HA) et enfin, après des années de pratique, de s’en détacher (le RI) pour les adapter à chaque contexte.

shu-ha-ri

Le Software Development Done Right est la Tagline de Xebia. Nous nous inscrivons donc tout naturellement dans la promotion des valeurs du Software Craftsmanhip.

Qu’est ce que veut dire un logiciel fait correctement ?

Selon la norme ISO/IEC 9126, un logiciel conçu correctement, a les qualités suivantes :

  • Capacité fonctionnelle : Le logiciel répond aux besoins fonctionnels exprimés.
    • Pertinence.
    • Exactitude.
    • Interopérabilité.
    • Sécurité.
    • Conformité.
  • Fiabilité : Le logiciel maintient son niveau de service dans des conditions précises et pendant une période déterminée.
    • Maturité.
    • Tolérance aux pannes.
    • Facilité de récupération.
    • Conformité.
  • Facilité d’utilisation : Le logiciel requiert peu d’effort à l’utilisation.
    • Facilité de compréhension.
    • Facilité d’apprentissage.
    • Facilité d’exploitation.
    • Pouvoir d’attraction.
    • Conformité.
  • Rendement / Efficacité : Le logiciel requiert un dimensionnement rentable et proportionné de la plate-forme d’hébergement en regard des autres exigences.
    • Comportement temporel.
    • Utilisation des ressources.
    • Conformité.
  • Maintenabilité : Le logiciel requiert peu d’effort à son évolution par rapport aux nouveaux besoins.
    • Facilité d’analyse.
    • Facilité de modification.
    • Stabilité.
    • Testabilité.
    • Conformité.
  • Portabilité : Le logiciel peut être transféré d’une plate-forme ou d’un environnement à un autre.
    • Facilité d’adaptation.
    • Facilité d’installation.
    • Coexistence.
    • Interchangeabilité.
    • Conformité.

Nos engagements en tant que Craftsmen

Face à ces exigences, chez Xebia, nous prenons, quand un client décide de nous confier la responsabilité de réaliser l’intégralité d’un logiciel, selon nos méthodes et nos principes et uniquement dans ce cas précis, les engagements suivants :

Justesse : Nous livrons régulièrement des fonctionnalités utiles, faciles d’usage

  • En associant étroitement le métier à chaque étape du développement.
  • En priorisant rigoureusement les développements.
  • En utilisant des cycles de développement très courts – une ou deux semaines.
  • En intégrant en permanence le feedback des utilisateurs.
  • En adoptant une démarche de modélisation centrée sur le domaine métier (DDD).
  • En mobilisant systématiquement des experts en ergonomie et en interfaces homme-machine.

Fiablilité : Les logiciels que nous livrons ont très peu de défauts

  • En automatisant les tests unitaires et d’intégration.
  • En intégrant les système continuellement, heure par heure.
  • En utilisant des cycles de développement courts, incrémentaux.
  • En prenant en compte les problématiques de sécurité à chaque étape du développement.
  • En mettant à votre disposition des équipes d’authentiques professionnels, animés par le souci du craftsmanship.
  • En réalisant une recette incrémentale des développements.
  • En nous engageant à corriger gratuitement tous les bugs découverts après la mise en production.

Robustesse : Les architectures que nous proposons sont robustes, résilientes et scalables

  • En mobilisant la connaissance collective des consultants Xebia sur certaines des architectures les plus ambitieuses de la planète.
  • En nous assurant que nos logiciels ne présentent aucune faille de sécurité.
  • En suivant les principes de conception d’architectures build for failure.
  • En concevant des architectures scalables horizontalement.
  • En identifiant les fonctionnalités les plus importantes et en protégeant les chemins critiques.
  • En réalisant des tests de vieillissement et/ou de résilience.

Performances : les applications que nous développons sont rapides et efficientes

  • En utilisant des technologies matures, adéquates et performantes.
  • En simplifiant autant que possible l’architecture logicielle et physique.
  • En prenant en compte les problématiques de performances et de volumétries dans la conception et le développement.
  • En réalisant régulièrement les tests de performance et de montée en charge.
  • En intégrant dans les équipes des développeurs expérimentés, rompus aux techniques d’optimisations.

Exploitabilité : les logiciels que nous développons sont faciles à exploiter

  • En mettant en œuvre des architectures simples, à l’état de l’art.
  • En automatisant intégralement l’installation et le déploiement des applications.
  • En intégrant dans votre système de supervision des indicateurs pertinents et efficaces.
  • En mettant en place une politique de journalisation rigoureuse et pertinente.
  • En adoptant une gestion d’exceptions rigoureuse et consistante.

Maintenabilité : les logiciels que nous livrons sont évolutifs et faciles à prendre en main

  • En mettant à votre disposition des équipes d’authentiques professionnels, animés par le souci du craftsmanship.
  • En mettant en œuvre de pratiques de développement systématiquement orientées vers la plus grande simplicité.
  • En plaçant le domaine métier au cœur de la programmation et de la conception.
  • En utilisant la juste technologie pour le juste besoin.
  • En considérant le test et la qualité logicielle comme partie intégrante du métier de développeur.
  • En fournissant une documentation technique juste et pertinente.

Comment les Xebians deviennent ils des Craftsmen ?

La culture du partage de la connaissance est une valeur fondatrice de notre société grâce à la tenue de nos sessions appelées XKE que certains d’entre vous connaissent.

Nous allons encore un peu plus loin cette fois-ci et à raison de deux fois par mois, nous organisons des sessions en soirée de Craftsmanship dont le fil conducteur est la réalisation d’une application que nous voulons parfaite. Durant ces sessions, nous allons aborder tous les aspects précédemment cités avec patience et passion.

Dès Janvier 2011, nous ouvrirons ces sessions de Craftsmanhip à l’extérieur et espérons vous y trouver nombreux(ses).

Enfin, nous avons le plaisir de vous annoncer que nous travaillons avec Uncle BOB !

En effet, Robert C. Martin et Xebia ont signé un partenariat destiné à proposer sur 2011 trois formations exclusives, destinées aux passionnés de l’état de l’art du développement logiciel.

Nous vous donnerons le détail de ces formations dans un prochain billet.

Publié par

Commentaire

3 réponses pour " Xebia, une sociologie de Craftsmen ou Craftsmen en devenir "

  1. Publié par , Il y a 8 années

    >> Dès Janvier 2011, nous ouvrirons ces sessions de Craftsmanhip à l’extérieur et espérons vous y trouver nombreux(ses).

    Super initiative, les « sans XKE » font être très content ! Merci !

  2. Publié par , Il y a 8 années

    Bientôt une « Certification Craftsman » ?

  3. Publié par , Il y a 8 années

    Hello,
    auriez-vous une (des?) références d’applications en ligne « faite correctement » ?

    Merci,
    Messaoud, http://www.twitter.com/AboutMess

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.