Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'informaticien, artisan des temps modernes
Ou le développement est-il plus proche d'un processus industriel ?

Le , par hugo123

23PARTAGES

5  0 
L'informaticien, artisan des temps modernes ?
Non, le processus complet est plus proche d'un processus industriel

Salut,

Je viens de lire à l'instant un billet sur l'informatique et un parallèle avec l'artisanat. C'est un sujet qui revient souvent. Peut-on comparer notre métier avec la pratique de l'artisanat ?

Personnellement je ne le pense pas, notre métier peut couvrir un large spectre, du technicien spécialisé à l'expert dans son domaine mais en aucun cas je ne le comparerai à de l'artisanat.

En fait je compare l'évolution des pratiques de création logicielles à celle de l'automobile du début du siècle (le 20ème évidemment ^^).
En prenant les grandes phases de l'industrie automobile on retrouve (très) schématiquement les suivantes :



Le système actuel est encore un mix entre fordisme et toyotisme.

Pour les logiciels informatique on retrouve une évolution quasi similaire :
  • l'ordinateur personnel voit l'arrivée d'OS créé par des amateurs (Steve Wozniak, Bill Gates, Paul Allen). De cette période c'est bien souvent des petits logiciels très simples et concu par des amateurs toujours qui marqueront l'histoire (pong par exemple).
  • transposition des méthodes industrielles et/ou venant du batiment dans l'informatique avec l'arrivée d'un vocabulaire nouveau : architecture, cycle en cascade (équivalent du fordisme), MOA/MOE pour la France.
  • arrivée du développement lean (transposition du toyotisme dans l'informatique) et des méthodes agiles qui, comme pour le toyotisme, "se base à nouveau sur les compétences et la qualification des ressources humaines"


En suivant cette petite comparaison rapide, vous comprendrez que je n'adhère pas à cette vision de "l'artisan informatique". Tout simplement parce que le processus de développement informatique s'inscrit depuis longtemps maintenant dans un contexte qui dépasse le simple fait de réaliser le logiciel : la vente, la production, la distribution, la maintenance sont désormais des phases à part entières et qui ne sont pas dans les mains des mêmes équipes (ou tout du moins très rarement).

Le Fordisme dans l'informatique

Peut-on cependant comparer le fordisme avec ce qui se fait actuellement dans le développement logiciel ?
Oui dans les grandes lignes, on retrouve :

  • la division du travail entre conception et réalisation ainsi que la parcellisation des tâches et la chaine de montage (conception, réalisation, tests, assemblage etc...)
  • la standardisation (les standards informatiques, les protocoles de communication etc...)


De plus dans le fordisme on a deux choses :

  • la parcellisation du travail qui entraine une spécialisation des individus et qui nécessite des profils moins élévé (et donc moins chers)
  • l'évolution du pouvoir d'achat, car le fordisme insiste sur le fait de motiver par une meilleure paye les salariés afin de lutter contre le turnover


En informatique la parcellisation des tâches a entrainé une spécialisation par activité : le test, le développement dans un langage spécifique etc... Les profils peuvent être moins qualifiés. A l'extrême on peut même voir de l'offshore focalisé sur un type de tâche très spécifique : création de pages web, test sur outil spécifique etc...
Quand au pouvoir d'achat, si les profils qualifiés sont désormais mis de côté parce que plus nécessaire, les profils moins qualifiés sont eux par contre payés au dessus des standards. Le parallèle est simple avec l'offshore où on cherche des profils moins qualifiés à l'étranger que l'on paiera correctement selon les standards locaux. (1)

Alors oui, on pourra argumenter que les chaines de montage informatique sont bien moins caricaturale que celles aperçu dans "Les temps modernes" de Chaplin. Effectivement, mais il ne faut pas minimiser l'industrialisation croissante des méthodes de production (MDA, ORM etc...), l'amélioration constante des outils et la spécialisation toujours plus extrême demandé à ceux qui réalisent.

Cette approche "rationnelle" de la chaine de production logicielle est cependant mise en défaut :

  • il est très difficile de décorreller la conception et la réalisation (2)
  • la division du travail dans sa forme cascade ne permet pas d'avoir une vue d'ensemble sur le processus


C'est d'ailleurs l'analyse du faible taux de succès de cette approche qui a mené vers les méthodes agiles.

Le toyotisme en informatique

Le parralèle est bien plus simple puisque le développement lean est la transposition pure et simple du toyotisme dans la gestion de logicielle. Et l'agile partage plusieurs valeurs en communs avec le Lean.

On retrouve parmi les principes qui motivent ces deux mouvements :


Ces principes sous tendent donc que l'on se base à nouveau sur les compétences individuelles et on met en avant le principe d'autonomisation. On redonne les moyens aux équipes d'être autonomes.

Mais ce n'est toujours de l'artisanat !

Cependant, même dans un projet en mode lean/agile je ne partage pas l'avis d'un développement artisanal pour les raisons suivantes

1) Artisanal présuppose un travail manuel sans aide automatisée

Artisanal dans l'esprit de certain c'est l'excuse pour ne pas utiliser d'outils pour les tests, la qualimétrie, voire pour ne pas faire tests du tout.
En fait pour ces personnes l'utilisation même du mot "usine logicielle" les choque. On est un artisan talentueux et on travaille sans filet ici monsieur !

La reflexion type :

"ça fait x années que je compile moi-même mes packages et que je fais mes zips à la main pour livrer, je ne vois pas le souci."

2) Artisanal présuppose un travail personnel sur lequel on gardera la paternité ad vitam eternam

Pour d'autres encore, la vision artisanale c'est une vision proche du compagnonage. C'est le maitre d'art qui cajole son bébé pendant des années avec éventuellement des compagnons pour l'aider mais c'est le maitre qui régule tout. Sa méthode est originale, unique et sera reconnu comme tel plus tard par la postérité (3).

Ce comportement conduit à deux choses :

  • l'enfermement vis à vis des solutions pronées par d'autres et le fait de privilégier uniquement le travail de son propre atelier. Exit donc les patrons de conception, l'open source etc...


La reflexion type :

"écoutes, les design patterns, le découplage des couches etc... c'est surement bien beau dans les livres mais tu sais ici on a besoin de perf et on sait ce qu'on fait de toute façon."

  • des solutions non maintenables par les autres. On accumule la dette technique et on oublie deux points fondamentaux "80% du temps de vie d'une application est passé en maintenance" et "Rarement une application est maintenue toute sa vie par son auteur"


La reflexion type :

"Oui mon fichier fait 10000 lignes mais il super génial, ça fait 4 ans que je suis dessus, je sais exactement ce qui est fait où et quand. Bon c'est un peu complexe mais c'est super perf !"


Bon et puis tout simplement, l'art présuppose une création qui s'adresse aux sens, aux émotions et à l'intellect. Faire un mapping objet relationnel n'éveille pas d'émotions en moi, même s'il est bien fait ^^ En fait, je n'imagine pas encore dans un musée voir le listing d'un programme cobol, C ou Java (4)

(1) Encore que la logique actuelle tend à déléguer la gestion des ressources humaines localement et donc à tirer sur les prix ce qui créé un turnover important...
(2) On y a longtemps cru avec MDA http://fr.wikipedia.org/wiki/Model_d...n_architecture mais au final, la formalisation UML n'a pas tant percé que cela.
(3) Evidemment je caricature, dans l'artisanat aussi on respecte un état de l'art
(4) Par contre j'avoue que certaines créations d'interface utilisateurs peuvent éventuellement se ranger dans cette catégorie. Il y a quelques ergonomes/designers que je pourrais éventuellement ranger dans la catégorie artistes.

Source originale: un billet sur http://hakanai.free.fr

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de highleaf
Membre à l'essai https://www.developpez.com
Le 26/05/2010 à 20:07
"free-to-play en waterfall" j'adore ces nouveaux termes qui ne veulent rien dire typique des gens hypes de Paris .

Les gars, il faut savoir rester pro-actifs et effectuer des synergies pour un meilleur reporting et une campagne de benchmarking efficace , je voudrais pas vous mettre en kick off et provoquer une spiel krieg, et oui moi aussi je traîne avec des merdeux.

En un mot c'est tout de la merde ce verbiage de marketeux informatique.
2  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 25/05/2010 à 15:55
Aucune comparaison n'est pertinente à 100%. Néanmoins, je pense qu'on est à l'intermédiaire entre l'artisanat pur et l'équipe de R&D industrielle.

L'erreur fondamentale, à mon sens, n'est pas de parler d'industrie, mais de se tromper d'échelon : on est toujours en R&D. Parcequ'en informatique, une fois le produit conçu et validé, la suite est facile : on copie/duplique/installe...... Quand je bossais en R&D automobile, une fois le produit R&D conçu, il restait des milliards d'étapes(hormis trouver les clients) : créer un moule "de production", mettre en place les gammes de fabrication, gérer la qualité de chaque pièce(et non pas simplement du design en lui-même), trouver des améliorations de méthodes pour augmenter la productivité, etc..... Toutes ces étapes n'ont pas vraiment de sens en développement logiciel : mon truc il est prêt, je le livre en prod/à graver/que sais-je.

Le Toyotisme est une comparaison interessante, mais limitée : les opérateurs fabriquent toujours la même voiture. On ne fabrique jamais deux fois le même logiciel, on fait Ctrl-C Ctrl-V......

Fabriquer un moule d'injection thermoplastique, c'est un travail à plusieurs centaines de K€. Faire un "gold" ou livrer une évolution en prod, non. Le produit sorti de R&D est déjà quasiment fini en informatique. Les comparaisons avec la suite du processus industriel me paraissent donc déplaçées.
1  0 
Avatar de hugo123
Rédacteur https://www.developpez.com
Le 25/05/2010 à 18:09
on est toujours en R&D. Parcequ'en informatique, une fois le produit conçu et validé, la suite est facile : on copie/duplique/installe...... Quand je bossais en R&D automobile, une fois le produit R&D conçu, il restait des milliards d'étapes(hormis trouver les clients) : créer un moule "de production", mettre en place les gammes de fabrication, gérer la qualité de chaque pièce(et non pas simplement du design en lui-même), trouver des améliorations de méthodes pour augmenter la productivité, etc..... Toutes ces étapes n'ont pas vraiment de sens en développement logiciel : mon truc il est prêt, je le livre en prod/à graver/que sais-je.
En fait je ne compare pas les mêmes étapes. Selon moi la conception effectuée en bureau d'étude automobile correspond à la phase de specs dans le projet informatique et non la phase de specs + la réalisation.
Donc après cette phase de R&D, on a bien les miliards d'étapes dont tu parles : créer un cadre de travail, gérer la qualité du logiciel, l'assemblage etc...

Quant au toyotisme, la comparaison n'est pas de moi ^^ C'est la vision Lean qui a été transposé justement et qui compare les processus. La comparaison c'est surtout que dans le toyotisme on tend vers des ateliers tout intégré (le fameux cercle de qualité) qui est complètement autonome. On a la même chose avec les équipes Lean et agile qui pronent des équipes pluridisciplinaires et auto organisé.

Le produit sorti de R&D est déjà quasiment fini en informatique.
Non loin de là, ou bien on ne parle pas des mêmes choses. La R&D en informatique c'est la conception, éventuellement le maquettage (POC etc...) mais ce n'est pas la réalisation. Enfin tout du moins dans la façon dont j'aborde les choses ce n'est pas dans la R&D que je range la réalisation.
Effectivement dans un projet "exploratoire" où la solution technique est créée pendant la phase de réalisation (comme ça peut arriver en agile) alors oui, la R&D est confondu avec la réalisation. Mais dans un projet en cascade, la conception est séparée de la réalisation.
Et puis même réalisé, il reste encore beaucoup de choses à faire, l'intégration, le packaging etc...
1  0 
Avatar de
https://www.developpez.com
Le 26/05/2010 à 10:56
Cette question en dit long aussi sur celui qui la pose.

C'est quoi la différence entre artisanat et industrie ? n'est-ce pas une insulte déguisée, grossièrement traductible par "bidouille grenouille/état de l'art doctor" où le fameux doctor abuse des seconds degrés pour justifier un chèque astronomique ?

Je cherche un gars qui lit couramment les expressions régulières en perl et écrit bien du c embarqué et du dotnet capable d'alimenter une stack tcp/ip embarquée, avec une vue imprenable sur l'ARM 7 , son ethernet, son usb

Là où j'aimerais qu'il soit créatif, c'est que j'ai 4 pistes graphiques synthétiques à l'écran avec leur scrolling horizontal et que j'aimerais bien qu'en cliquant sur une d'elles, elle sélectionne l'élément et synchronise la grille de data dans le coin à gauche.

J'aimerais beaucoup qu'il joue un peu de guitare car moi je suis plutôt clavier et ça permettrait de se détendre en faisant quelques boeufs que je trouve plus utiles que les réunions m'enfin, dans le cas contraire , il pourra toujours fredonner quelque chose.

J'exagère à peine.

Personne et surtout pas en France ne contrôle la VRAIE industrie du logiciel !!
Racontez ce que vous voulez, pétez là vous autant que vous voulez. Le contrôle ne ce situe pas dans l'hexagone , être sérieux est déjà un gros atout, savoir se détendre me semble le plus gros handicap français. Quant à ces distinctions de vocabulaire, elles ne font qu'accroitre le caractère exotique de l'informatique tricolore, son coq, son saucisson, son management issu du BTP, ses réunions flippantes...
1  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 26/05/2010 à 15:37
Citation Envoyé par highleaf Voir le message
(.../...)Et non, construire un logiciel ce n'est pas construire une voiture ou un téléphone, un logiciel fait appel à de l'intelligence, c'est comme une oeuvre littéraire. C'est dingue de tout réduire à un monde d'objets que l'on doit consommer pour soutenir notre chère croissance en mousse. Quand est-ce qu'on parle de l'industrie littéraire et de l'industrie de la santé ? Je sais ça choque mais on y aussi
Construire un logiciel, c'est concevoir une voiture ou un téléphone. C'est du même niveau. Pour avoir bosser dans l'automobile, je peux faire un parralèlle. Et, encore une fois, comparer le kanban industriel au kanban scrum, c'est de l'étirage de mots.

Que le théoricien se soit inspiré de certains principes, soit. Mais chercher à faire un parralèlle, c'est induire le lecteur en erreur. La manière de penser est fondamentalement différente. Il faut 120 secondes pour injecter un pare-chocs. Ni plus, ni moins. De même qu'il faut 10 minutes à un agent pour enregistrer un contrat assurance auto. Mais le délai pour concevoir le pare-chocs, outillage compris, n'est pas garanti, car il faut faire appel à de l'intelligence. C'est pareil pour le développement. Et, dans les deux cas, quelles que soient les bonnes pratiques, l'echec est toujours possible. Le taux de rebut chez les équipementiers, il y a 10 ans, c'était 10ppm. Ca a du encore s'améliorer.

Mais des projets qui partent dans le décor, il y en a, des deux cotés. Fréquemment. Et même en scrum(il suffit d'avoir un utilisateur bien psychopathe couvert par sa direction, ou d'une équipe de bras cassés en dev).

J'insiste donc : si on peut s'inspirer de ce qui se fait ailleurs, croire qu'il s'agit d'un copier-coller est générateur d'erreurs. D'excellentes méthodologies, qui s'appliquent bien à certains sujets(pour une évolution majeure d'un SI bancaire liée à une évolution reglementaire, je ne vois pas comment éviter le waterfall), dans d'autres circonstances, c'est suicide de les utiliser(je fais un site web, j'ai 500 concurrents, et un seul survivra).

Et puisqu'on parle de point de vue, je pense que la méthodologie est moins importante que les compétences. Parceque, comme en R&D industrielle(cf mes posts ci-dessus pour une définition précise), si on met 10 tanches, aucune n'aura l'idée du pare-chocs intégré ou de l'airbag. Même avec une méthodologie du feu de Dieu.
Ca ne disqualifie pas le discours sur les méthodes, un free-to-play en waterfall, c'est casse-gueule, autant qu'une modif reglementaire en scrum. Choisir la bonne méthode, sans être la clef de tout, peut eviter bien des arrachages de cheveux. En ce sens, ta démarche est positive.

Mais, ce contre quoi je m'insurge(et je ne pense pas être le seul), c'est la dictature de la méthode et du pilotage. L'illusion qu'il suffit d'avoir un bon pilote pour arriver à tout. L'illusion que quand tout va mal, il suffit de foutre un flic derrièrre chaque programmeur. L'illusion, aussi perverse, que la méthode qui a si bien marché ici est la réponse à tous les problèmes.

Et bien non. La principale réponse à un problème est d'y foutre des gens de talent. Une bonne méthode est un gros plus. Mais ça n'est pas l'alpha et l'oméga.
1  0 
Avatar de cbleas
Membre éprouvé https://www.developpez.com
Le 26/05/2010 à 8:23
Bonjour,
La reflexion type :

"écoutes, les design patterns, le découplage des couches etc... c'est surement bien beau dans les livres mais tu sais ici on a besoin de perf et on sait ce qu'on fait de toute façon."
des solutions non maintenables par les autres. On accumule la dette technique et on oublie deux points fondamentaux "80% du temps de vie d'une application est passé en maintenance" et "Rarement une application est maintenue toute sa vie par son auteur"

La reflexion type :

"Oui mon fichier fait 10000 lignes mais il super génial, ça fait 4 ans que je suis dessus, je sais exactement ce qui est fait où et quand. Bon c'est un peu complexe mais c'est super perf !"

Bon et puis tout simplement, l'art présuppose une création qui s'adresse aux sens, aux émotions et à l'intellect. Faire un mapping objet relationnel n'éveille pas d'émotions en moi, même s'il est bien fait ^^ En fait, je n'imagine pas encore dans un musée voir le listing d'un programme cobol, C ou Java (4)

Je me reconnais assez ici.
est ce négatif. j'en suis pas certain alors que je vois la majorité de mes concurrents créer des logiciels techniquement beau mais qui 3 ans après la sortie ne sont toujours pas débugué à 100% pourtant ils ont testé retesté.
il faut alors attendre la nouvelle version qui sera à nouveau buggée.

Pour ma part si j'ai un bug dans mon application je debugge tout de suite et la version est à jour. Si un de mes clients me demande une modif je la rajoute et les autres en profitent. En un mot je m'amuse à faire mon métier et en répondant aux attentes de mon client.

Contrairement aux nombreux informaticiens que l'on rencontre sur ce site et qui parfois on marre de faire des lignes de code pour faire des lignes.

Bizarrement souvent les codeurs les plus heureux sont ceux qui se sont mis à leur compte donc devenus artisan de leur métier.

bonne journée
0  0 
Avatar de tnntwister
Membre du Club https://www.developpez.com
Le 26/05/2010 à 9:15
Déjà le sujet est à mon avis mal fixé : l'Informatique. C'est comme quand on demande à un développeur d'assembler un pc ou de le dépanner, parce que c'est son boulot, il est "informaticien".

Pour ce qui est du développement web, je pense que beaucoup de tes exemples ne collent pas, parce que tu imagines des trop gros développements. Un site internet simple peut être réalisé en deux jours, avec ou sans code propriétaire. Ceci dit, moi qui me voyais comme un artisan, j'ai bien aimé ton article, parce qu'il y avait justement plein d'aspects négatifs dans le terme que je n'avais pas envisagé.

Je suis assez d'accord avec cbleas, c'est souvent les artisans du développement qui sont les plus heureux de leur travail. Reprendre le code des autres de toute facon c'est rarement un plaisir, avouez-le...
0  0 
Avatar de bubulemaster
Membre confirmé https://www.developpez.com
Le 26/05/2010 à 9:22
Bonjour,

je pense qu'on est dans l'air industrielle pour ce qui est progiciel (Office, Nero...)

On est dans l'artisanat pour ce qui est du sur mesure (développement client) avec incorporation de processus industriel pour les tâches répétitives.
Avec comme inconvénient parfois, on développe un sur-couche à un framework industriel pour l'adapter à notre besoin et c'est très lourd à faire évoluer le framework.

Mais, bon, je pense qu'effectivement, l'aire bidouilleur Bill Gates, Linus... ça devient de plus en plus dur face aux industries

en tout cas, très bon sujet
0  0 
Avatar de JMarshall
Membre à l'essai https://www.developpez.com
Le 26/05/2010 à 10:06
bubulemaster m'a devancé...en effet dès le début de la lecture de cette article, je me suis dit qu'il était étonnant d'essayer de qualifier l'ensemble du développement informatique comme artisanal ou industriel alors qu'il me semble évident que c'est deux conceptions ne sont pas des disciplines différentes mais simplement des approches divers de la production.

Il existe donc comme dans tous domaines, des artisans et des industriels qui ne différent pas par le but mais par les moyens (pas seulement financiers) de l'atteindre.
Ainsi je pense qu'un "artisan informatique" pourra produire un produit de qualité équivalente ou supérieure à un industriel mais dans des délais et en proposant des services différents.

EDIT: j'ai oublié d'ajouter que ma conception de l'artisanat se base surtout sur le fait de suivre le processus de production, de la conception à la diffusion...
0  0 
Avatar de hugo123
Rédacteur https://www.developpez.com
Le 26/05/2010 à 10:11
Citation Envoyé par tnntwister Voir le message
Déjà le sujet est à mon avis mal fixé : l'Informatique. C'est comme quand on demande à un développeur d'assembler un pc ou de le dépanner, parce que c'est son boulot, il est "informaticien".
C'est un terme volontairement générique. Difficile de regrouper toute la profession sinon. Entre expert métier, technique, support, test et les différentes formations possibles, j'ai pas vu mieux comme terme ^^

Citation Envoyé par tnntwister Voir le message
Pour ce qui est du développement web, je pense que beaucoup de tes exemples ne collent pas, parce que tu imagines des trop gros développements.
Pas faux, surement parce que j'ai bossé en SSII pour des grands comptes, puis pour un éditeur de logiciel puis enfin pour une boite d'assurance dont le site est assez imposant. Je n'ai pas pris en compte dans cet avis le développement personnel.

Je me reconnais assez ici.
est-ce négatif. j'en suis pas certain alors que je vois la majorité de mes concurrents créer des logiciels techniquement beau mais qui 3 ans après la sortie ne sont toujours pas débugué à 100% pourtant ils ont testé et retesté.
il faut alors attendre la nouvelle version qui sera à nouveau buggée.
Grand débat ^^ Réutilisation, tests, découplage, standardisation, chacun de ces items mériterait une longue discussion. Tout ce que je peux en dire je le ferais avec une citation d'audiard que j'ai trouvé excellente sur le contexte :
"Les conneries, c'est comme les impots, on finit toujours par les payer"

La version plus light et plus connue :
"La dette technique, on finit toujours par la rembourser, avec intérêt"

Mais oui, à un instant, il n'est pas impossible que ça marche bien, ou pas selon certains facteurs externes (dans ton cas, ta capacité à le maintenir semble bien fonctionner).

Bizarrement souvent les codeurs les plus heureux sont ceux qui se sont mis à leur compte donc devenus artisan de leur métier
.

Héhé, je suis à mon compte, mais je ne suis pas artisan ^^ Etre à son compte ne veut pas dire que l'on fasse ce qu'on veut. Je fais le même métier que la plupart ici (mais pour mon compte).
0  0