IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

demkada

[Actualité] L'artisanat du logiciel

Noter ce billet
par , 12/03/2015 à 00h00 (1509 Affichages)

Dans mon billet précédent, je vous ai parlé de l'architecture logicielle et principalement des principes de base de la conception logicielle. Et nous avons vu que les deux indicateurs de qualité logicielle, les plus importants(La facilité d'utilisation et la maintenabilité) étaient les plus négligés car la plus part des architectes se limitent à la livraison de logiciels fonctionnels (Get It Done).



Et c'est tout là, la différence entre un industriel qui se contente de produire à la chaîne de manière répétitive des produits basés sur un modèle et un artisan qui use de son savoir faire pour créer des œuvres artistiques (Architecture des bâtiments, ..., Architecture des logiciels) et de ses fonctions cognitives pour s'améliorer au fil du temps. D'où le mouvement software craftsmanship.
Un artisan du logiciel est avant tout celui qui conçoit bien son logiciel, dans le sens de l'architecture logicielle bien sûr (Get it Right). D'où les quatre valeurs prônées par l'artisanat du logiciel:

  • Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus.
  • Pas seulement l'adaptation aux changements, mais aussi l'ajout constant de la valeur.
  • Pas seulement les individus et leurs interactions, mais aussi une communauté de professionnels.
  • Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs.

De ces valeurs que tout aspirant Artisan du logiciel doit respecter, Il ressort clairement l'envie de bien faire les choses, d'améliorer de façon constante, de partager le savoir faire et d’intégrer le client au cycle de vie du logiciel.


J'ai eu à lire sur de nombreux blogs des personnes qui disent qu'une entreprise a besoin d'industrialiser ses processus pour pouvoir produire et qu'un artisan n'a pas sa place au sein d'une entreprise, ces personnes ont entièrement raison, sauf que le but d'un artisan logiciel n'est pas de transformer une entreprise industrielle en entreprise artisanale mais plutôt de concevoir des logiciels dignes des plus grandes œuvres artistiques en:

  • Affectant au mieux les responsabilités dans le code (Principe de responsabilité unique)
  • Rendant le code le plus extensible possible (Principe d'ouverture/fermeture)
  • Permettant aux objets de la même famille de se substituer mutuellement (Principe de substitution de Liskov)
  • Limitant l'accès aux objets à des méthodes dont ils n'ont pas besoin (Principe de ségrégation des interfaces)
  • Assurant que les dépendances entre les différents modules sont gérées par abstraction (Principe d'inversion des dépendances)

Ces différents principes (SOLID) énoncés par Uncle Bob visent à simplifier les techniques de conception logicielle et à rendre les logiciels conçus maintenables et compréhensibles.
Pour revenir sur l'industrialisation des processus de travail, il est évident que la deuxième valeur du manifeste de l'artisanat du logiciel qui vise à créer constamment de la valeur ajoutée passe par la mise en place des processus d'automatisation des phases de test et de déploiement de l’œuvre créée (logiciel) mais n'équivaut en aucun cas à industrialiser la phase de conception elle même.


Pour conclure, je dirai que l'artisanat du logiciel est l'art de bien concevoir des logiciels (Get It Right) grâce à un savoir faire et un apprentissage continuel et peut être considérer comme un complément technique à l'agilité.


-----------------------------------
Soucre: http://blog.kadary.me

Envoyer le billet « L'artisanat du logiciel » dans le blog Viadeo Envoyer le billet « L'artisanat du logiciel » dans le blog Twitter Envoyer le billet « L'artisanat du logiciel » dans le blog Google Envoyer le billet « L'artisanat du logiciel » dans le blog Facebook Envoyer le billet « L'artisanat du logiciel » dans le blog Digg Envoyer le billet « L'artisanat du logiciel » dans le blog Delicious Envoyer le billet « L'artisanat du logiciel » dans le blog MySpace Envoyer le billet « L'artisanat du logiciel » dans le blog Yahoo

Commentaires

  1. Avatar de tyrtamos
    • |
    • permalink
    Ce sont vraiment des principes qui déterminent la réussite ou l'échec des activités. J'ajoute juste quelques points:

    - Pour donner une image qui caractérise l'écart entre le GID et le GIR, j'aime bien celle du billard. Quand on commence à y jouer, l'objectif est de réussir le coup qui se présente. Mais on voit par la suite que pour progresser, il faut non seulement réussir ce coup mais, en le faisant, positionner les boules pour que le coup suivant soit lui aussi réussi. C'est donc l'horizon de l'objectif qu'on se donne qui est déterminant et, sur ce point, c'est la même chose pour l’artisanat et l'industrie: à chaque fois qu'on a un travail à faire, il faut le faire pour que ça facilite en plus les travaux suivants.

    - Concernant la qualité du logiciel, il y a une caractéristique importante qui fait partie de la fiabilité: la capacité à résister aux erreurs de l'utilisateur ("tolérance aux fautes")... C'est particulièrement le cas pour tout ce qui est saisi au clavier. Il m'est déjà arrivé de travailler sur un programme de comptabilité pour une association, et j'ai imaginé que le comptable ayant quitté quelques instants son poste de travail à son domicile, son gamin (ou le chat!) venait taper au hasard sur le clavier... . Et en dehors des saisies au clavier, si une simple erreur d'appel d'un menu détruit des données, c'est vous qui porterez le chapeau...

    - Entre l'artisanat et l'industrie, il y a une différence importante: la taille de ce qu'on y fait. Pour de gros logiciels, un simple calcul de probabilité montre que même avec des gens compétents et un taux d'erreurs limité, la seule accumulation de ces erreurs fait que ce gros logiciel n'a aucune chance de fonctionner correctement à la fin. Microsoft avait d'ailleurs communiqué sur ce point il y a quelques années concernant les développements de ses gros produits comme Excel. Pour éviter d'avoir une trop longue période de déverminage (qui plante le budget et les délais), il faut donc se donner des méthodes et des contrôles beaucoup plus solides pendant tout le développement. C'est d'ailleurs une règle générale qui dépasse la seule activité du logiciel, et qu'on apprend rapidement quand on fait des audits d'entreprises: plus l'activité est grosse, plus ses résultats sont déterminés par son organisation. Et le contraire: plus l'activité est petite, plus ses résultats sont déterminés par la seule valeur des personnes qui s'y trouvent.