Blog éclectique & sans sujet précis - Mot-clé - travail
<p>Si ça me passe par la tête, si ça n’intéresse que moi, alors c’est peut-être ici. Ou pas.</p>
2024-02-13T09:44:49+01:00
L'éditeur est le propriétaire du domaine
urn:md5:bf83720a7189bba489682d945b972671
Dotclear
« Frontières d’acier — Histoire de la fortification permanente en Lorraine et en Alsace 1871-1945 » de Michaël Séramour
urn:md5:8cb2d8cdff4423a66516e76daccabb33
2015-10-04T22:07:00+02:00
2018-08-22T15:14:21+02:00
Christophe
Histoire
Allemagne
Alsace
bombe atomique
catastrophe
châteaux
complexité
coup bas
courage
dommage
déshumanisation
gigantisme
Guerre Froide
haine
histoire
Histoire de France
liberté
Libération
livres lus
légendes urbaines
mort
mème
mémoire
paradoxe
perfectionnisme
Première Guerre Mondiale
raclée
recyclage
réseau
Seconde Guerre Mondiale
sécurité
temps
tourisme
travail
<p>Je ne pensais pas un jour acheter un livre de <a href="https://fr.wikipedia.org/wiki/Si%C3%A8ge_%28militaire%29">poliorcétique</a>, mais je résiste parfois difficilement aux impulsions chez mon <a href="http://www.illauxtresors.com/">libraire favori</a>.
<a href="https://www.coindeweb.net/blogeclectique/images/histoire/Frontieres_d_acier.jpg" title="Frontieres_d_acier.jpg"><img src="https://www.coindeweb.net/blogeclectique/images/histoire/.Frontieres_d_acier_s.jpg" alt="Frontieres_d_acier.jpg" style="float:right; margin: 0 0 1em 1em;" /></a></p>
<p>Le sujet est simple et compliqué à la fois : les fortifications à la frontière franco-allemandes de 1870 jusqu’à après la Seconde Guerre Mondiale. La ligne Maginot vient à l’esprit, mais aussi les forts de Verdun ou en face ceux de Metz... construits alors qu’elle était allemande. Certaines installations ont donc servi deux camps : les Allemands se sont aussi cassé les dents sur certaines parties de la <a href="https://fr.wikipedia.org/wiki/Ligne_Maginot">ligne Maginot</a> en juin 1940, qu’ils ont utilisée pour ralentir notablement les Américains à l’automne 1944 !</p>
<p>Les premiers chapitres traitent de l’évolution de ces forts. Les villes fortifiées à la Vauban étant dépassées, les fortifications éclatées assez éloignées des centres urbains deviennent à la mode, comme autour de Metz ou tout autour de Strasbourg. En France, cet ensemble est désigné sous le nom de <a href="https://fr.wikipedia.org/wiki/Syst%C3%A8me_S%C3%A9r%C3%A9_de_Rivi%C3%A8res">Séré de Rivières</a>. L’artillerie progressant à pas de géants après 1870 et la Première Guerre Mondiale, l’obsolescence est rapide : si les premiers ensembles ont de beaux frontons en pierre, par la suite les forts s’éloignent, se couvrent de béton, les communications s’enterrent, les tourelles se fondent dans le paysage, se terrent derrière de profondes meurtrières, voire s’éclipsent :
<a href="https://commons.wikimedia.org/wiki/File:Fort-15-28-19.jpg" title="Tourelle de 75R - Fort d'Uxegney près d’Épinal - Photo Thomas Bresson, via Wikimedia Commons"><img src="https://www.coindeweb.net/blogeclectique/images/histoire/.320px-Fort-15-28-19_s.jpg" alt="Tourelle de 75R - Fort d'Uxegney près d’Épinal - Photo Thomas Bresson, via Wikimedia Commons" style="display:table; margin:0 auto;" /></a> <a href="https://commons.wikimedia.org/wiki/File:Fort-15-28-19.jpg">Tourelle de 75R - Fort d'Uxegney près d’Épinal - Photo Thomas Bresson sur Wikipédia Commons</a>
<a href="https://commons.wikimedia.org/wiki/File:Manoeuvre_tourelle.gif" title="Plan de manoeuvre de la tourelle de 75 mm du bloc 3 à Schoenenbourg - Association des Amis de la Ligne Maginot (AALMA) * CC BY-SA 2.0 fr, via Wikimedia Commons"><img src="https://www.coindeweb.net/blogeclectique/images/histoire/.Manoeuvre_tourelle_s.jpg" alt="Plan de manoeuvre de la tourelle de 75 mm du bloc 3 à Schoenenbourg - Association des Amis de la Ligne Maginot (AALMA) * CC BY-SA 2.0 fr, via Wikimedia Commons" style="display:table; margin:0 auto;" /></a> <a href="https://commons.wikimedia.org/wiki/File:Manoeuvre_tourelle.gif">Plan de manoeuvre de la tourelle de 75 mm du bloc 3 à Schoenenbourg - Association des Amis de la Ligne Maginot (AALMA) * CC BY-SA 2.0 fr, via Wikimedia Commons</a></p>
<p>Les désastres du début de la Première Guerre Mondiale semblent montrer l’inutilité de ces fortifications. L’auteur s’insurge : les Allemands sont passés par la Belgique justement à cause des forts entre Verdun et Belfort, et Verdun notamment a fixé de gros effectifs allemands pendant la bataille de la Marne. Le haut commandement français dégarnit pourtant ces bastions « inutiles » en hommes et en canons dont le manque se fait cruellement sentir ailleurs... ce qui facilite l’offensive allemande de 1916 sur Verdun. Les fortifications tiennent pourtant durablement quand elles sont bien équipées, et le coût pour l’assaillant en obus est délirant par rapport aux pertes (humaines) infligées au défenseur. La guerre de mouvements reprend en 1918, mais les <a href="https://fr.wikipedia.org/wiki/Forts_de_Metz">forts allemands de Metz</a> n’ont guère l’occasion de montrer leur efficacité avant l’armistice.</p>
<p>La France de l’entre-deux guerres, démographiquement exsangue, voit dans la ligne Maginot une protection efficace. Plus encore que pour les fortifications de 1914, tout est enterré ; les forts sont reliés par des tunnels et se soutiennent entre eux. Cette ligne, surtout, rompt avec le principe des grandes places, et court sur tout la frontière... sauf devant la Belgique <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Fronti%C3%A8res-d-acier#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>. La France vise le long terme : abritée derrière la ligne, il faut continuer le réarmement et laisser agir le blocus envers l’Allemagne, et n’attaquer que plus tard. Les généraux allemands aussi s’attendent à une guerre longue : le <em>blitzkrieg</em>, « <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/L-Histoire-sp%C3%A9cial-d-avril-2010-France-1940-autopsie-d-une-d%C3%A9faite">acte de désespoir du niveau opérationnel pour sortir d’une situation désespérée au niveau stratégique</a> », fruit du bluff de l’audace de bons généraux, monté en épingle par la propagande, se casse les dents sur la ligne Maginot quand la Wehrmacht l’attaque de front. Globalement, les forts ont tenu malgré un déluge de feu — certains sacrifiés pour préserver le symbole d’un mur infranchissable alors que les Allemands l’avaient déjà contourné. À l’armistice, trahison : les équipages invaincus partent en captivité, exigence allemande contre la menace d’occuper Lyon.</p>
<p>Là encore, la ligne Maginot a rempli sa mission, puisque l’agresseur a dû la contourner — conformément aux plans français. Au sud, la partie alpine de la ligne (non traitée ici) a bloqué toute progression italienne.</p>
<p>Quand Patton arrive sur la Moselle en 1944, il n’imagine pas que les fortifications de Metz (certains morceaux datent d’avant 1870 !) et d’autres parties de la ligne Maginot tenues par les Allemands vont lui poser un gros problème. Il faut plusieurs semaines, de nombreux morts et le recul du front en d’autres endroits <a href="https://fr.wikipedia.org/wiki/Bataille_de_Metz">pour que Metz tombe</a>. Pendant ce temps, la Wehrmacht se replie en bon ordre. Là encore, les fortifications jouent leur rôle.</p>
<p>L’armée française conserve ce qui reste de ligne Maginot encore quelques années après la Seconde Guerre Mondiale, jusqu’à ce que la bombe atomique la rende inutile. Puis s’ensuit le démantèlement d’une grande partie des installations (vente aux enchères, ensevelissement, retour à la nature des abords...). Aujourd’hui, grâce aux associations locales, de bonnes parties peuvent encore se visiter. On en croise encore bien des fragments dans la campagne alsacienne quand on sait où chercher, et j’ai bien l’intention de visiter assez vite la <a href="http://www.fort-mutzig.eu/pages/_menu/menu_f.html">forteresse allemande de Mutzig</a>, celle de Metz, ou le <a href="http://www.lignemaginot.com/ligne/schoen.htm">fort de Schoenenbourg</a>.</p>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Fronti%C3%A8res-d-acier#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Les Belges ayant déclaré leur neutralité en 1936, un peu tard pour prolonger la ligne.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Fronti%C3%A8res-d-acier#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/797
« Science & Vie » de décembre 2011 : Neanderthal Park, effets secondaires, feux de charbon
urn:md5:01872069b87981d9af8c52342df3c2fc
2012-01-05T21:46:00+01:00
2015-10-01T13:10:17+02:00
Christophe
Science et conscience
abomination
addiction
bon sens
climat
conquête de l’inutile
dinosaures
dommage
développement
eau
effet de serre
exaptation
gaspillage
géologie
nature
optimisation
pollution
prise de tête
robots
santé
science
sociétés primitives
spéculation
travail
écologie
économie de l’attention
évolution
<p>(<strong><em>Ante scriptum</em></strong> : Bonne année et bonne santé à tous mes lecteurs réguliers, enfin, celui qui n’aura pas quitté la blogosphère pour Fesse-bouc, Gogue Pus et autres obscénités dont je n’ai toujours pas trop capté l’intérêt.)</p>
<p>Bon, je m’étais dit que ce numéro-là je pourrais le chroniquer alors qu’il est encore en kiosque. La pile des choses à faire grossissant sans cesse, c’est encore râpé.</p>
<p>En vitesse, pendant que dort la ’tiote, liste des choses notables dans ce numéro à se rappeler :</p>
<ul>
<li><strong>Les enfants Cro-Magnons dessinaient aussi dans les grottes</strong>, avec leurs petites mimines. Le sens de leurs gribouillis n’est pas clair mais je ne sais pas s’il faut chercher bien loin.</li>
</ul>
<ul>
<li><strong>Les racines des arbres influencent le lit des rivières</strong>. Le cours des rivières d’avant 360 millions d’années (date d’apparition des arbres) était beaucoup moins stable qu’après. Les racines fixent les berges. (<em>J’ai toujours trouvé fascinantes les interactions entre géologie et espèces vivantes. La <a href="http://fr.wikipedia.org/wiki/Grande_Oxydation">Grande Oxydation</a> en est une, celle-là est plus subtile.</em>)</li>
</ul>
<ul>
<li><strong>Les maladies chroniques</strong> deviennent les principales causes de mortalité, y compris dans les pays en voie de développement : inactivité physique, surpoids, tabac, alcool… Nombre de pays pauvres ont déjà des maladies de riche, et pas les moyens d’y faire face.</li>
</ul>
<ul>
<li><strong>Peut-on faire revivre des mammouths ? L’homme de Néanderthal ? Des dinosaures ?</strong><br /> L’article tente vraiment de nous convaincre que c’est possible, et il y a des chercheurs optimistes. Mais l’ADN est déjà en kit dans les mammouths congelés retrouvés en Sibérie, alors pour ce qui est d’espèces complètement pétrifiées et dix ou dix mille fois plus anciennes… De plus, le problème de la mère porteuse du bébé mammouth n’est pas résolu : <a href="http://www.30millionsdamis.fr/acces-special/actualites/detail/article/1532-australie-naissance-du-premier-elephant-concu-par-insemination-artificielle/retour-actus/47.html">l’insémination artificielle d’éléphante est déjà un exploit</a>. <br />Pour le Néanderthal, des obstacles éthiques majeurs apparaissent.<br />Au mieux, un « pouletosaure » pourrait apparaître, simple piaf dont on aurait réactivé de vieux gènes jurassiques lui rendant queue et dents.<br />Enfin, que faire de ces espèces dont l’environnement aura disparu ?</li>
</ul>
<ul>
<li>Les <strong>effets secondaires des médicaments</strong> ont un bon côté : ils peuvent servir à traiter d’autres maladies que celle prévue au départ, et l’effet indésirable pour un malade sera bénéfique pour le malade à la pathologie inverse. L’aspirine peut provoquer des hémorragies, ce qui en fait un bon anticoagulant ; et le Viagra, médiocre dans le traitement de l’angine de poitrine, a révélé des effets secondaires intéressants… <br />Des chercheurs américains ont entré dans une base de données médicaments, effets secondaires, maladies, et ainsi pu repérer des substances potentiellement intéressantes dans des cas à l’origine non prévus. L’intérêt est énorme, aussi bien du point de vue de la réduction des coûts et des délais de mise sur le marché (on étend la prescription d’une molécule déjà connue et testée), que pour le soin des maladies orphelines (non rentables car trop rares).<br />Bref, un bon exemple de systématisation et d’industrialisation.</li>
</ul>
<ul>
<li>Quelques émouvants exemples des « <strong>robots qui refusent de mourir</strong> », beaux témoignages de l’ingéniosité humaine et du travail des ingénieurs quand on les laisse faire leur travail : <em><a href="http://www.daviddarling.info/encyclopedia/P/Pioneer_6.html" hreflang="en">Pioneer 6</a></em> tourne autour du soleil depuis 1965 et émettait encore en 2000 ; <em><a href="http://fr.wikipedia.org/wiki/Opportunity">Opportunity</a></em> devait fonctionner trois mois en 2004 mais continue d’explorer Mars depuis (<strong>Mise à jour de 2015</strong> : et ce n’est pas fini !) ; et <em><a href="http://fr.wikipedia.org/wiki/Voyager_1">Voyager 1</a></em>, lancé en 1977, après avoir rempli sa mission autour de Saturne et Titan en 1980, continue de nous renseigner sur les limites du système solaire.</li>
</ul>
<ul>
<li>Histoire de désespérer un peu plus dans la lutte contre le réchauffement climatique, un article s‘étend sur les <strong>feux de charbon</strong> : pas ceux allumés pour produire de l’électricité ou chauffer des maisons, mais de mines entières qui se consument petit à petit, parfois depuis des décennies voire bien plus, polluent des régions entières, provoquent des affaissements de terrain, en Chine, en Australie, aux États-Unis… Une fois démarrés, parfois naturellement (il suffit que l’air soit en contact avec le charbon sous-terrain pour qu’un jour cela brûle), ces feux sont encore quasiment impossibles à éteindre. Un gaspillage insensé qui, avec les incendies de tourbières (oui, ça aussi), représentent une part notable des émissions de CO2 humaines.</li>
</ul>
<ul>
<li><strong>On se frotte les yeux quand on est fatigués</strong> à cause de l’assèchement du film de larmes protégeant l’œil. La fatigue réduit la fréquence des clignements d’œil, il faut une pression des doigts pour stimuler les glandes. Mais point trop n’en faut.</li>
</ul>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Science-Vie-de-d%C3%A9cembre-2011#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/672
« Pour la Science » de septembre 2011 : (2) Principe de Peter & promotion au hasard
urn:md5:2a0d7ef60519855099bab0eaab7cb2cc
2011-10-02T00:00:00+02:00
2015-09-25T14:14:28+02:00
Christophe
Science et conscience
administration
auto-organisation
bon sens
civilisation
communication
complexité
dysfonctionnement
exaptation
expertise
hiérarchie
humour
incohérence
mobilité
mème
optimisation
organisation
ouverture d’esprit
panurgisme
paradoxe
perspective
politique
prise de tête
psychologie
travail
économie
évolution
<p>Second article intéressant dans ce numéro de <em>Pour la Science</em>, et il est délectable.</p> <p>(<em>Commentaires perso en italique</em>)</p>
<h3>Promotion</h3>
<p><a href="https://www.coindeweb.net/murphy/murphy_politique.html#peter">Le principe est bien connu</a> :</p>
<blockquote><p><strong>Principe de Peter</strong><br /> <br />Dans toute hiérarchie, qu’elle soit gouvernementale ou d’entreprise, chaque employé tend à s’élever à son niveau d’incompétence ; chaque poste tend à être occupé par un employé incompétent dans son travail.</p></blockquote>
<p>Boutade ou réalité profonde ? Les deux dira-t-on. Il est « de bon sens » que forcer les gens à prendre de nouvelles fonctions tant qu’il s’en sortent, mais à les y laisser quand ils pataugent, peut mener à la situation où presque chaque employé se retrouve à un poste où il est au mieux inefficace (il fait ou laisse faire le travail par les compétents, surchargés). Les contre-mesures existent, comme l’éviction des incompétents (<em>je note qu’on perd alors leur compétence dans un poste « inférieur »</em>), leur neutralisation en les promouvant au <em>management</em> (<a href="http://www.vinch.be/blog/2010/08/02/le-principe-de-peter-et-le-principe-de-dilbert/">principe de Dilbert</a> ; <em>en fait à mon avis une grosse erreur, sauf dans les technocraties où ceux qui font décident et le reste n’est que support et secrétariat</em>), la possibilité de refuser des promotions, ou plutôt de les opérer sur d’autres plans comme la progression salariale, sans que cela implique un changement hiérarchique ou de fonctions (<em>pas trop la mentalité de beaucoup d’endroits</em>).</p>
<p>(<em>Je vois une autre faille dans le principe : les gens sont capables d’apprendre, surtout si on les soutient. Untel incompétent arrivé sur son poste peut avec le temps devenir efficace. Reste la question : est-il vraiment fait pour un poste parfois totalement différent de son choix originel dans la vie ? Parfois oui, parfois non.</em>)</p>
<p>L’article de Didier Nordon s’étend sur différentes recherches et simulations visant à justifier le principe, notamment :</p>
<ul>
<li><strong>la régression vers la moyenne</strong> : quelqu’un de très compétent, puisque promu, visera fatalement à se rapprocher de la moyenne quand on l’amène à un poste différent où (c’est un présupposé implicite) <strong>la compétence au nouveau poste n’a pas forcément grand chose à voir avec celle à l’ancien</strong> (hypothèse de Peter) ;</li>
<li><strong>l’effet cliquet</strong> : celui qui est monté et montre ses limites ne redescend jamais, surtout si le licenciement est impossible comme dans beaucoup de grandes administrations et entreprises (<em>et pour moi une des solutions au problème est de permettre de tester des gens et de ne pas poursuivre l’expérience si elle n’est pas concluante, et surtout sans qu’il y ait l’idée que ce soit un échec, une punition sociale.</em>)</li>
</ul>
<p>Un prix Ignobel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-septembre-2011-2-Principe-de-Peter#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> a été décerné pour la démonstration et la simulation que dans un environnement qui suit strictement le principe de Peter, <strong>le plus efficace est de promouvoir les incompétents</strong> ! Ainsi on échappe à l’effet cliquet et on profite de de la régression vers la moyenne : chaque poste ne sera pas « bloqué » par un incompétent à vie, et un incompétent a une chance d’arriver à un poste où il est bon (et il y restera).</p>
<p>À l’inverse, dans le cas où l’hypothèse de Peter est fausse, que la compétence à un nouveau poste est à peu près liée à celle à l’ancien, il est logique de promouvoir les meilleurs, la régression vers la moyenne étant moins dramatique et les meilleurs arrivant en haut de la pyramide : l’efficacité globale y gagne.</p>
<p>On arrive donc à la question fondamentale laissée en exercice au lecteur : la compétence au poste N+1 est-elle liée au poste N ? (<em>Mon avis : ça dépend :-) </em>).</p>
<p>Est évoquée aussi la promotion au hasard : hypothèse de Peter vraie ou fausse, elle donne un résultat moyen, meilleur que la promotion du meilleur si l’hypothèse est vraie. Dans une hiérarchie bloquée, autant redistribuer les cartes ! (<em>J’ai toujours considéré qu’il fallait choisir une partie des assemblées politiques au hasard pour apporter du sang neuf, les Grecs antiques le faisaient bien.</em>)</p>
<p>Mais arrive le plus rigolo : <strong>si l’hypothèse de Peter est vraie, promouvoir les plus mauvais donne un résultat un peu meilleur que la promotion des meilleurs si elle est fausse</strong> ! <em>C’est-à-dire : il faut prendre des gens manifestement inadaptés à leur ancien poste pour les mettre là où les qualités demandées n’ont rien à voir, plutôt que de prendre des compétents pour les mettre à un poste où ils pourraient être moins bon. C’est finalement de très bon sens !!</em></p>
<p><em>Bon, comme tout simulation sociale ou économique, les effets sont intéressants à observer mais ne tiennent pas compte de toutes les rétroactions dans le réel : possibilité d’apprentissage comme j’ai dit plus haut ; surveillance de la performance pour éviter que les incompétents s’entassent ; éviction systématique des plus mauvais ; sélection naturelle quand l’entreprise subit les conséquences de sa nullité et doit dégraisser (mais à ce stade terminal, les licenciements ne sont pas décidés par les plus compétents pour garder justement les plus compétents) ; échelle considérée (parle-t-on d’une administration en circuit fermé, d’une entreprise sur un marché à fort </em>turn-over<em>, d’une société dans son ensemble qui effectivement ne cherche pas à récompenser la compétence ; et la définition même de compétence, celle-ci étant plus que multiforme et variant avec l’époque… Et puis, tout bêtement, les changements de poste évoqués ci-dessus concernent des promotions, alors que l’on peut vouloir faire changer de poste les incompétents le plus vite possible sans que cela devienne une promotion, une progression dans la pyramide.)</em></p>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-septembre-2011-2-Principe-de-Peter#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/04/26/503-the-ig-nobel-prizes-de-marc-abrahams">J’en avais parlé .</a></em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-de-septembre-2011-2-Principe-de-Peter#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/661
“We judge ourselves...”
urn:md5:7566e59266ed7883e19e1bf503f3ef9b
2011-08-20T00:00:00+02:00
2015-09-07T14:18:15+02:00
Christophe
Citations
apparence
bon sens
citation
communication
courage
dommage
expertise
mémoire
optimisme
ouverture d’esprit
paradoxe
perspective
prise de tête
psychologie
quête
réalité
résolutions
signifié
travail
ténacité
valeur
économie de l’attention
<blockquote><p>“<em>We judge ourselves by what we feel capable of doing,</em><br /><em> while others judge us by what we have already done.</em>”<br /> <br />« Nous nous jugeons par ce que nous nous sentons capable de faire, <br />pendant que les autres nous jugent sur ce que nous avons déjà fait. »<br /> <br />Henry Wadsworth Longfellow,<br /><em><a href="http://www.archive.org/stream/talekavanagh00longrich/talekavanagh00longrich_djvu.txt" hreflang="en">Kavanagh: A Tale</a></em> (1849) Ch. 1</p></blockquote>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/%E2%80%9CWe-judge-ourselves...%E2%80%9D#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/656
Extrait de mes signatures automatiques : développement informatique (3)
urn:md5:dcdbe95f103f3fc2d4a96a2cc83d662c
2011-08-14T15:46:00+00:00
2015-09-04T11:55:35+00:00
Christophe
Informatique : l’art du développement
abomination
argent
auto-organisation
base de données
bug
citation
complexité
culture
cynisme
dysfonctionnement
développement
expertise
foutage de gueule
gaspillage
informatique
livres lus
oh le beau cas !
optimisation
ouverture d’esprit
panurgisme
perfectionnisme
prise de tête
SSII
travail
économie de l’attention
éducation
émerveillement
<p>Les traductions sont de ma pomme ; les suggestions sont les bienvenues.</p>
<blockquote><p><em><strong>creationism</strong> n. : The (false) belief that large, innovative software designs can be completely specified in advance and then painlessly magicked out of the void by the normal efforts of a team of normally talented programmers.</em><br /> <br /><em> In fact, experience has shown repeatedly that good designs arise only from evolutionary, exploratory interaction between one (or at most a small handful of) exceptionally able designer(s) and an active user population -- and that the first try at a big new idea is always wrong. Unfortunately, because these truths don't fit the planning models beloved of management, they are generally ignored.</em><br /> <br /><strong>créationisme</strong> m. : La croyance (fausse) que de nouveaux logiciels grands et innovants puissent être spécifiés complètement à l’avance et créés <em>ex nihilo</em> automagiquement par le travail normal de développeurs normalement talentueux.<br /> <br />En fait, l’expérience a montré de manière répétée qu’une bonne conception naît d’une interaction exploratoire et évolutive entre un (au plus une poignée) de concepteurs exceptionnellement capables, et une population d’utilisateurs actifs - et que le premier essai d’une nouvelle grande idée est toujours une erreur. Malheureusement, comme ces vérités n’entrent pas les modèles de planification chéris du <em>management</em>, elles sont généralement ignorées.)<br /> <br /><a href="http://www.ccil.org/jargon/jargon_18.html#SEC25" hreflang="en">Hacker's dictionary</a></p></blockquote>
<hr />
<blockquote><p><em>(...)one of my colleagues took over maintenance of a system which included a date library. The dates and times were treated as floating-point, leading to much conversion and adjustinging. Eg. 12:30 was 12.30, so when adding 40 minutes getting 12.70, and then adjusting that to 13.10, No input validation was done. My colleague tried cleaning that up, but then got complaints from the users. They had discovered the "features" and were now using eg: January -6th meaning december 24th the previous year.</em><br /><em>My colleague had to remove the input validation again and keep the features.</em><br /> <br /> Un de mes collègues avait repris la maintenance d’un système qui comprenait une bibliothèque de gestion des dates. Dates et heures étaient traitées comme des décimaux, ce qui menait à nombre de conversions et d’ajustements. par exemple 12h30 était en fait 12,30, donc ajouter 40 minutes donnait 12,70, à ajuster à 13h10. Aucune validation des entrées n’était faite. Mon collègue tenta de nettoyer tout ça, mais reçut des plaintes des utilisateurs. Ils avaient découvert cette « fonctionnalité » et utilisaient par exemple le -6 janvier pour signifier le 24 décembre de l’année d’avant.<br />Mon collègue dut supprimer ses contrôles et garder la fonctionnalité.<br /> <br />isj, <a href="http://ask.slashdot.org/article.pl?sid=07/03/30/0116246" hreflang="en">Slashdot.org, 30 mars 2007</a></p></blockquote>
<p>En fait, l’évolution darwinienne fonctionne aussi comme ça, la nageoire-pagaie étant utilisée finalement comme patte, Ce qui ne veut pas dire que l’on doit tolérer des aberrations de la part des utilisateurs, ceux-ci doivent être remis au pas et se voir offrir la même fonctionnalité sous une forme moins tourmentée.</p>
<hr />
<blockquote><p><em>Any app that doesn’t need to be rewritten hasn't grown sufficiently beyond its original intent.</em><br /> <br />Une application qui n’a pas besoin d’être réécrite n’a pas suffisamment grandi en-dehors de son cadre d’origine.<br /> <br />Jesse Litton, 1990</p></blockquote>
<p>Qu’une application se retrouve à faire tout et n’importe quoi est le signe du succès. Que les concepteurs renoncent à la tentation de la faire grossir jusqu’à l’indicible est une qualité rare.</p>
<hr />
<blockquote><p>- Commit du soir, espoir.<br />- Build du matin, chagrin.<br /> <br />#linuxfr</p></blockquote>
<p>Ne jamais faire un « dernier truc avant de partir » : soit on ne teste pas et le lendemain on pleure, soit on le teste et au lieu de 18h on sort à 20h50.</p>
<hr />
<blockquote><p><em>If you start explaining the bug to someone, there’s a good chance in mid-explanation you’ll realize a solution to the problem. Some school (can’t remember which) had a Teddy Bear in their programming consulting office... There was a sign. "Explain it to the bear first, before you talk to a human". Silly as it sounds, people would do it, and a large portion of the time they’d never actually have to consult the staff... by explaining it to the bear, they solved the problem.</em><br /> <br />Si vous commencez à décrire un bug à quelqu’un, il y a une bonne chance qu’au milieu de l’explication vous découvriez la solution au problème. Une école (peux pas me rappeler laquelle) avait un ours en peluche dans leur bureau de conseil informatique... Il y avait un panneau : « Racontez-le à l’ours avant de parler à un humain. » Aussi stupide que cela semble, les gens le faisaient, et une bonne partie du temps ils n’avaient plus besoin de demander conseil à l’équipe... En l’expliquant à l’ours, ils résolvaient le problème.<br /> <br />deanj, <a href="http://books.slashdot.org/comments.pl?sid=97712&cid=8377060" hreflang="en">Slashdot.org, 24 février 2004</a></p></blockquote>
<p>Une question bien posée est à moitié résolue.</p>
<hr />
<blockquote><p><em>I worked on a new development project a while back and we decided to try XP [eXtreme Programming] for the design and development cycle. Another project in the same department started at about the same time and used Rational Rose and produced a lot of UML design specs up front. We had part of our application up and running to the users satisfaction within 3 months, but then ran into a major design oversight that bogged us down for the next 3 months. The other project didn't start to program for 2 months and didn't have anything really to show the customer after 6 months. In the end both projects were killed.<br /> The moral: There are no magic bullets.</em><br /> <br />Je travaillais sur un nouveau développement il y a quelques temps et nous avions décidé d’essayer XP [<a href="http://fr.wikipedia.org/wiki/Extreme_programming" hreflang="en">eXtreme Programming</a>] pour la conception et le cycle de développement. Un autre projet du même département démarra à peu près au même moment, utilisait Rational Rose et produisit beaucoup de schémas UML d’entrée. Nous avions des parties de notre application en fonctionnement à la satisfaction des utilisateurs dans les 3 mois, mais avons trouvé un énorme oubli à la conception qui nous bloqua les 3 mois suivants. L’autre projet ne commença pas à programmer avant 2 mois et n’avait rien à montrer au client après 6 mois. Finalement les deux projets furent tués.<br />Moralité : <a href="http://fr.wikipedia.org/wiki/Balle_en_argent">il n’y a pas de balle en argent</a>.<br /> <br />smallfeet, Slashdot.org, 12 avril 2004</p></blockquote>
<hr />
<blockquote><p><em>Software QA is like cleaning my cat's litter box: Sift out the big chunks. Stir in the rest. Hope it doesn't stink.</em> <br /> <br />La qualité logicielle, c’est comme nettoyer la litière de mon chat. Enlever les gros morceaux. Mélanger le reste. Espérer que ça ne pue pas.<br /> <br />DaveAtFraud, Slashdot.org, 2004</p></blockquote>
<p>Ajoutons que le classeur Excel aux métriques absconses destiné à vérifier la qualité du soft doit impérativement montrer que tout va bien.</p>
<hr />
<blockquote><p><em>One of the funniest and scariest things I’ve ever heard in my life:</em><br />(extreme anger) "<em>GOD DAMNIT VISUAL C IS A FUCKING PIECE OF SHIT! IT ONLY ALLOWS 16384 LOCAL VARIABLES!!!!</em>"<br /> <br />Une des choses les plus marrantes et effrayantes que j’ai entendues de ma vie : <br />(fureur extrême) « FOUTREDIEU VISUAL C EST UNE MERDE PUANTE ! IL NE PERMET QUE 16384 VARIABLES LOCALES !!!! »<br /> <br />Monkelectric, Slashdot.org, 31 mars 2004</p></blockquote>
<hr />
<blockquote><p><em>Every time I’m tempted to start micro-optimizing, I remind myself of the following three simple rules:</em><br /><em>1) Don’t.</em><br /><em>2) If you feel tempted to violate rule 1, at least wait until you've finished writing the program.</em><br /><em>3) Non-trivial programs are never finished.</em><br /> <br />Chaque fois que je suis tenté de micro-optimiser, je me rappelle les trois simples règles suivantes :<br />1) Ne le faites pas.<br />2) Si vous êtes tenté de violer la règle 1, attendez au moins d’avoir fini le programme.<br />3) Les programmes non triviaux ne sont jamais finis.<br /> <br />Frequency Domain, Slashdot.org, 06 mai 2004</p></blockquote>
<hr />
<blockquote><p><em>Can darwinism work on software bugs ? </em><br /> <br />Le darwinisme fonctionne-t-il sur les bugs logiciels ?<br /> <br />boaworm, Slashdot.org</p></blockquote>
<p>Pour les <em>malwares</em> déjà ça semble fonctionner...</p>
<hr />
<blockquote><p><em>Programming trains you for parenting pretty well. The long sleepless nights, the time spent explaining very simple things to really stoopid people, and the ability to tune out the rest of the world all really help when dealing with children.</em><br /> <br />Programmer vous entraîne très bien au rôle de parent. Les longues nuits sans sommeil, le temps passé à expliquer des choses très simples à des gens vraiment stupides, et la capacité à s’abstraire du reste du monde, tout ça aide vraiment à s’occuper d’enfants.<br /> <br />MythoBeast, Slashdot.org, 04 juin 2004</p></blockquote>
<p>S’abstraire du monde, avec des enfants ? Arf !</p>
<hr />
<blockquote><p><em>Developer’s Serenity Prayer:</em><br />“<em>God grant me the serenity to leave untested things I cannot test; </em><br /> <em>courage to test the things I can; </em><br /><em> and wisdom to know when to refactor.” </em><br /> <br />Prière de la Sérénité du Développeur :<br />« Que Dieu me donne la sérénité de laisser intestées les choses que je ne peux pas tester ;<br />le courage de tester ce que je peux tester ;<br />et la sagesse de savoir quand refactoriser. »<br /> <br />(Source inconnue)</p></blockquote>
<hr />
<blockquote><p><em>Code can never be 100% self documenting,</em><br /><em>but that's no reason not to settle for 0%.</em><br /> <br />Le code ne peut jamais être à 100% auto-documenté,<br />mais ce n’est pas une raison pour accepter 0%.<br /> <br />Trillan, Slashdot.org, 25 février 2005</p></blockquote>
<p>Et 100% c’est sans doute trop car redondant avec ce qu’on peut lire immédiatement dans le code.</p>
<hr />
<blockquote><p><em>Software application development comes down to:</em><br /><em> 1. You can have it done fast.</em><br /><em> 2. You can have it done cheap.</em><br /><em> 3. You can have it fully functional</em><br /><em>Now pick 2.</em><br /> <br /><em> Fast and cheap = means using average and inexpensive programmers and is not fully functional</em><br /><em> Fast and fully functional = exceptional programmers and will cost an arm and a leg</em><br /><em> Cheap and fully functional = means it will take a long, long, long, long time for the average and inexpensive programmers to build it</em><br /><em> The timeline for the application, whether you need it tomorrow or can wait a few years, in addition to the budget determines what kind of programmers you can afford and need to hire.</em><br /> <br />Le développement de logiciel se résume à :<br />1) Vous pouvez l’avoir vite fait.<br />2) Vous pouvez l’avoir pour pas cher.<br />3) Vous pouvez l’avoir complètement fonctionnel.<br />Maintenant choisissez deux options.<br /> Rapide et pas cher = signifie des programmeurs moyens et pas chers, et pas complètement fonctionnel<br /> Rapide et fonctionnel = programmeurs exceptionnels et vous coûtera les yeux de la tête<br /> Pas cher et fonctionnel = signifie que ça va prendre un long, long moment à faire pour des programmeurs moyens et pas chers.<br /> La durée de développement de l’application, que vous la vouliez demain ou que vous puissiez attendre quelques années, en plus du budget, détermine quel type de programmeurs vous pouvez vous permettre et que vous devez embaucher.<br /> <br />tokengeekgrrl, Slashdot.org, 03 août 2005</p></blockquote>
<p>Encore faut-il avoir le choix des programmeurs. L’interface par des commerciaux de SSII n’est pas idéale pour ça.</p>
<hr />
<blockquote><p><em>I worked for a rather large ISP who (...) switched from a rather large home grown custom database program it had used for years to the corporate Vantive which cost them millions at the time.</em><br /><em>I asked my manager why would they bother doing such a thing when the old program worked just fine. He said “The guy who made the program died and know one knows how to code for it.</em>”<br /><em> I laughed for a moment and then by his blank face realized he wasn’t joking...</em><br /> <br />J’ai travaillé pour un opérateur Internet assez important qui passait d’une base de données maison utilisée pendant des années à <a href="http://en.wikipedia.org/wiki/Vantive" hreflang="en">Vantive</a>, qui coûtait des millions à l’époque.<br />J’ai demandé à mon <em>manager</em> pourquoi ils s’embêtaient à faire ça alors que l’ancien programme marchait bien. Il dit : « Le gars qui a fait le programme est mort et personne ne sait comment programmer ça. » J’ai ri un moment et à son air vide d’expression j’ai réalisé qu’il ne plaisantait pas.<br /> <br />vertinox, Slashdot.org, 21 novembre 2005</p></blockquote>
<p>Personne n’est irremplaceable, personne ne <em>doit</em> être irremplaceable.</p>
<hr />
<blockquote><p><em>Being able to do a lot with one line of code or being able to type 50% fewer LOC to do your job has no place in programming today and is, in fact, counter-productive. If you are actually thinking faster than you type when you're programming, you need to think more, not type less!</em><br /> <br />Être capable de faire beaucoup en une seule ligne de code ou de faire votre boulot en tapant 50% de lignes de moins n’a pas de place dans la programmation actuelle et en fait, est contre-productif. Si vous pensez réellement plus vite que vous ne tapez quand vous programmez, vous devez penser plus, pas taper moins !<br /> <br /> bill_kress, Slashdot.org, 14 décembre 2005</p></blockquote>
<p>Réflexion hautement spéculative. La vitesse de frappe d’un code n’est pas la principale limite au développement, c’est sûr. La concision compacte et illisible à la Perl, et autres astuces qui génèrent du code « à lecture seule », sont des abominations que certains défendent encore. Par contre, la vérité est à la fin de la phrase : le développeur doit pouvoir penser plus. <br />Donc le code verbeux parce que la syntaxe est rigide, bien que vite apprise, comme en PL/SQL ou en Pascal, n’est pas gênant – surtout si cela évite des erreurs. Le code verbeux à cause d’un milliard de paramètres à rentrer qui seraient automatisables, non !</p>
<hr />
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/06/29/510-extrait-de-mes-signatures-automatiques-developpement-informatique-1">Extraits de mes signatures : le développement informatique (1)</a><br /><a href="https://www.coindeweb.net/blogeclectique/index.php?post/Extrait-de-mes-signatures-automatiques-developpement-informatique-2">Extraits de mes signatures : le développement informatique (2)</a></p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Extrait-de-mes-signatures-automatiques-developpement-informatique-3#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/457
« Pour la Science » d’octobre 2010
urn:md5:ee10a8ad1bd7e2826f0db83c02822fb4
2010-10-07T22:14:00+02:00
2015-08-20T13:11:20+02:00
Christophe
Science et conscience
abomination
anthropie
anticonsumérisme
argent
astronomie
bon sens
bulle
chiffres
citation
civilisation
climat
conquête de l’inutile
conquête spatiale
cosmologie
coup bas
court terme
cynisme
dommage
démocratie
déshumanisation
eau
effet de serre
esclavage
Europe
fichage
foot
formation
foutage de gueule
gaspillage
gigantisme
gravitation
géologie
informatique
manipulation
mathématiques
mort
métainformation
panurgisme
peine de mort
perfectionnisme
pessimisme
prise de tête
science
sociétés primitives
spéculation
temps
travail
valeur
écologie
économie
émerveillement
<p>Alors en vitesse pour ce numéro encore en kiosque (<em>comme d’hab’, en italique mes commentaires</em>)...</p> <h3>Décompte</h3>
<p>À propos du pitoyable débat sur les nombres de manifestants (<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Décompte-des-manifestants">qui m’avait déjà mis hors de moi</a>), Didier Nordon déclare :</p>
<blockquote><p>« La presse ne remplit pas sa fonction lorsqu’elle se contente de rapporter sans se compromettre les versions contradictoires des parties au conflit. Répéter n’est pas informer. »</p></blockquote>
<p>(<em>Il faut reconnaître que ce matin (seulement !) j’ai entendu des reportages tentant de tirer au clair la manière dont les manifestants sont comptés. D’accord, j’écoute une radio pas supposée être à droite, mais c’était assez consternant…</em>)</p>
<h3>Cocorico</h3>
<p>La liste des médaillés Fields, Gauss ou Chern honore les mathématiques françaises.</p>
<p>(<em>Mais les médias n’en parleront pas, nos millionnaires incapables de jouer correctement à la baballe les passionnent plus. Impossible de comprendre de quoi traitent leurs travaux ; c’est toujours comme ça avec les maths, on se dit que c’est totalement vain et puis quelques siècles plus tard une théorie fondamentale de la nature, ou une bête optimisation d’ingénieur, utilise ces inutiles théorèmes.</em>)</p>
<h3>Prédation</h3>
<p>Ivar Ekeland évoque les <em>dark markets</em>, des marchés financiers où les listes de ventes et d’achats ne sont pas publiques, ce qui coupe l’herbe sous le pied à certains spéculateurs. Ils ont été inventés car le marché normal aux carnets d’ordre publics permet de créer des algorithmes redoutablement rapides et efficace et cela coûte cher à de gros acheteurs (<em>pourtant c’est pas comme ça que c’est censé marcher un marché théorique pleinement efficient ? où les gens pressés et gros consommateurs payent forcément plus chers que les patients peu gourmands ?</em>).</p>
<p>De petits malins ont vite compris comment utiliser ces « marigots obscurs » pour savoir quels gros acheteurs ferrer sur les marchés ouverts et à quel prix. Conclusion d’Ekeland : tous ces gens hyper-brillants qui passent leur temps à optimiser la finance ne seraient-ils pas mieux employés par la société à des choses utiles ?</p>
<p>(<em>Ça me rappelle une remarque lue tout récemment je ne sais où : <strong>notre économie est passée d’une recherche de l’équilibre des ressources et besoins et de répartition du travail à un système d’optimisation de la prédation</strong>.</em>)</p>
<h3>SF théorique</h3>
<p>Les « super-Terres », des planètes rocheuses un peu plus grosses que la Terre sont détectés depuis quelques temps autour de diverses étoiles. Pour savoir si elles peuvent être habitables, une étude de ce que peut être leur géologie, leur tectonique des plaques a été faite.</p>
<p>La pression au centre est plus élevée et elles sont plus chaudes : la convection dans le manteau est donc accélérée et la tectonique des plaques plus rapides. Paradoxalement la croûte est plus fine, et le cycle du carbone rallongé. L’atmosphère est également mieux retenue. Cette stabilité rend ces planètes encore plus favorables à la vie que la nôtre (<em>C’est rare ça ! En général on s’extasie devant l’improbable perfection de notre petit monde.</em>) Il se pourrait que la Terre soit en fait tout en bas de la gamme de masses des planètes habitables, Vénus et Mars n’ayant pas les bonnes caractéristiques.</p>
<p>Par contre, leur noyau est devenu probablement complètement métallique, et le champ magnétique protecteur n’est donc pas là. La super-Terre n’est pas forcément à la bonne distance de son étoile et bien orientée (on en connaît une qui présente toujours la même face à son étoile : la silice s’évapore de cette fournaise pour retomber sur la face cachée.)</p>
<p>Il existe aussi sans doute des super-Terres recouvertes d’un océan, dont le fond est un manteau de glace sous très forte pression. La quête et l’étude des super-Terres ne fait que commencer.</p>
<h3>Violations de sépultures ou enquête criminelle ?</h3>
<p>Nos ancêtres du Néolitihique (il y a 6000 ans), dans une bonne partie de l’Europe, enterraient leurs morts dans des tombes circulaires. Certaines, à côté du défunt principal en position fœtale, contenaient aussi d’autres cadavres jetés plus négligemment. Seule hypothèse acceptable pour l’auteur : il s’agissait d’esclaves sacrifiés au décès de leur maître. Cette coutume effroyable était connue sous diverses formes sur tous les continents plus récemment, elle n’a pas épargné l’Europe…</p>
<h3>La minute du matheux ultime</h3>
<p>La chronique de Jean-Paul Delahaye parle notamment du site <em><a href="http://primes.utm.edu/" hreflang="en">The Prime Pages</a></em> (et du livre associé <em><a href="http://www.amazon.fr/Prime-Curios-Dictionary-Number-Trivia/dp/1448651700/ref=sr_1_1?ie=UTF8&s=english-books&qid=1286353199&sr=1-1">Prime Curios! The Dictionary of Prime Number Trivia</a></em>). C’est bien là que se trouvent des gens capables de trouver que 313 est un premier remarquable entre autres parce que c’est le plus petit nombre de personnes qui, prises au hasard, ont plus de 50% de chances que cinq d’entre elles aient le même jour anniversaire<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-d-octobre-2010#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> ; ou que 3539 est aussi un premier remarquable car donne la formule de la nitroglycérine (C3H5N3O9) ; ou que le 16719è siècle sera le premier à ne comporter aucune année égale à un nombre premier ; et mille autres propriétés affolantes.</p>
<p>En prime une réflexion sur les nombres premiers illégaux : il est possible de créer des premiers contenant tout chaîne arbitraire, et donc tout texte illégal (appel à la haine raciale…) correspond à un nombre premier donc illégal (il y a aussi l’exemple du <a href="http://decss.zoy.org/" hreflang="en">DeCSS</a>). Et il existe aussi des nombres premiers contenant votre nom<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-d-octobre-2010#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.</p>
<h3>Divers</h3>
<ul>
<li>Nos muscles se « souviennent » des entraînements passés car les multiples noyaux cellulaires ne disparaissent pas avec l’inactivité et l’atrophie ; donc ils regonflent plus vite ensuite. (<em>Dans mon cas, y a rien à se souvenir.</em>)</li>
</ul>
<ul>
<li>On a identifié le gène de la respiration à la naissance. (<em>Évidemment la sélection naturelle l’a lourdement favorisé.</em>)</li>
</ul>
<ul>
<li>Les vrais jumeaux n’ont pas les mêmes empreintes, car elles sont liées à certaines périodes de la vie utérine. On pourrait même repérer par les empreintes certains traumatismes vécus par la mère pendant la grossesse.</li>
</ul>
<ul>
<li>Sondage fait auprès de scientifiques (19% de doctorants !) : ils font nettement plus confiance aux scientifiques qu’aux politiques ou aux religieux pour obtenir des informations exactes. (<em>Sans blague ?!</em>)</li>
</ul>
<ul>
<li>L’espèce humaine a failli disparaître il y a moins de 200 000 ans, étant réduite à une poigne d’individus dans une Afrique rendue inhabitable par une glaciation. L’auteur pense avoir découvert un des refuges des survivants : des grottes en Afrique du Sud près du Cap, au bord de la mer.</li>
</ul>
<ul>
<li>En comparant des photos des années 1940 et des récentes, des scientifiques américains ont étudié l’évolution de la flore dans un coin d’Alaska. L’évolution suit ce qu’on pourrait attendre des conséquences du réchauffement climatique : la toundra voit fleurir des arbustes, la taïga (forêt boréale) progresse vers le nord et brunit dans le sud. Les rétroactions sont multiples et difficiles à modéliser.</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-d-octobre-2010#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Alors que tout le monde sait que c’est le numéro de la voiture de Donald.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-d-octobre-2010#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Ça me rappelle l’histoire des <a href="http://fr.wikipedia.org/wiki/Nombre_univers">nombres univers</a> qui contiennent toute chaîne de chiffres possibles, donc n’importe quel texte, donc plein de versions de l’histoire de votre vie en de multiples langues, y compris inexistantes, y compris des versions fausses par un détail ou qui divergent totalement à partir du moment où vous avez gagné au loto.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Pour-la-Science-d-octobre-2010#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/633
La Déclaration du Droits du Développeur
urn:md5:00f7c5442cab96869509215550361fa4
2009-09-11T00:00:00+02:00
2018-05-19T11:17:26+02:00
Christophe
Informatique : l’art du développement
besoin
bon sens
communication
courage
cynisme
dysfonctionnement
déshumanisation
ergonomie
expertise
informatique
intelligence
liberté
logiciel libre
logistique
mobilité
mythe
offshore
optimisation
optimisme
Oracle
organisation
ouverture d’esprit
panurgisme
perfectionnisme
pouvoir d’acheter
prise de tête
psychologie
résolutions
SSII
travail
utopie
valeur
économie
économie de l’attention
<p>Droit à deux moniteurs, à une machine rapide, de faire bien son travail, de causer avec le commanditaire… : gadget ou nécessité ?</p> <p>Deux déclarations des Droits du Développeur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> existent dans le monde anglo-saxon à ma connaissance :</p>
<ul>
<li>sur <a href="http://www.codinghorror.com/blog/archives/000666.html" hreflang="en">Codinghorror.com</a></li>
<li>chez <a href="http://c2.com/cgi/wiki?DeveloperBillOfRights" hreflang="en">Cunningham & Cunningham</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.</li>
</ul>
<p>Elles diffèrent, je traduis/condense/commente :</p>
<h4>Le droit à deux moniteurs sur son bureau</h4>
<p>Souvent utile, parfois gadget.</p>
<p>Ça dépend vraiment de l’application. Qui passe son temps à écrire du code d’un côté et à vérifier l’exécution de l’autre aura plus l’utilité de deux petits moniteurs que votre serviteur suant devant Business Objects et sa ribambelle de panneaux et onglets. Je préfèrerais alors un seul très grand et très large écran, sauf dans mes périodes de rédaction de docs et support, où un A4 vertical serait optimal.</p>
<p>Il est clair que l’investissement de 200 € dans un écran est dérisoire par rapport au temps regagné ensuite.</p>
<p>(<strong>Ajout de 2010</strong> : Et pourtant, j’ai vu des clients où même les chefs de projet informatiques en étaient resté au tube cathodique. En France à la fin de première décennie du siècle, oui.)</p>
<h4>Le droit à une machine rapide</h4>
<p>Tout à fait d’accord, dans les limites raisonnables évidemment. Le temps perdu à compiler, à attendre que s’ouvre une grosse application, le <em>swap</em>, le manque de réactivité... concourt à perdre du temps pur, à casser la concentration, et à un certain stade le gain en temps ne devient pas que quantitatif, mais aussi qualitatif.</p>
<p>Si je ne me plains pas de ma machine de bureau actuelle, ce serait probablement le cas avec un portable : les gros logiciels serveur comme Oracle ou Business Objects XI se lancent beaucoup plus lentement sur le disque dur escargostesque du portable courant. Et je ne parle pas de VMware.</p>
<p>Même si RAM et disque dur se rajoutent facilement à peu de frais, le PC de bureau n’est pas tout. Il est toujours agréable d’avoir sa base Oracle sur une vraie machine dédiée, ou de disposer d’une collection de machines virtuelles toutes prêtes rapidement accessibles sur un serveur VMware ESX bien taillé qui ne sature pas les entrées-sorties au <em>boot</em> d’une machine virtuelle.</p>
<p>D’un autre côté, n’avoir <em>que</em> des machines rapides pousse à la fainéantise, et masque certaines grosses lacunes en réactivité pénibles pour le client final. Dans un monde idéal, le développement aurait lieu sur une machine récente, et les tests utilisateur s’effectueraient sur une configuration relativement ancienne, limitée en processeur, mémoire, éventuellement disque.</p>
<h4>Le choix de la souris et du clavier</h4>
<p>100% d’accord. Je fulmine de voir que l’ergonomie de ces outils critiques est le cadet des soucis de toutes les entreprises où je suis passé. (Par contre, certains de mes clients investissent visiblement au niveau des bureaux, chaises, support pour portables plus que pour le clavier à proprement parler ; mais je ne suis qu’un simple prestataire qui hérite plus souvent qu’à son tour de la machine la moins récente, le clavier le plus crade, et d’une chaise non réglable.)</p>
<h4>Le droit à une chaise confortable</h4>
<p>À raison de huit heures par jour de résidence, cet endroit doit être non seulement tolérable mais aussi <em>confortable</em> (“<em>Sure, you hire developers primarily for their giant brains, but don't forget your developers’ </em>other<em> assets.</em>”)</p>
<p>(<strong>Ajout de 2018</strong> : et même au-delà : la chaise est <strong>capitale</strong>. Pour certains ce sera même un balon. Vu le coût pour la Sécurité Sociale de séances de kiné interminables pour des milliers d’informaticiens ou commerciaux en voiture, il n’y a aucune tolérance à avoir : uniquement le meilleur.)</p>
<h4>Le droit à une connexion internet rapide</h4>
<p>Vue mon utilisation massive de Google et des divers sites de docs et d’aide en ligne ou de support, un internet asthmatique provoque vite frustration, énervement, et perte de productivité.</p>
<p>De nos jours, le réseau fonctionne en général bien, et si Youtube n’est peut-être pas vraiment nécessaire professionnellement, je dois parfois télécharger des gigaoctets de bases de données de client, ou d’outils d’Oracle à tester.
Pêchent souvent par contre les liaisons VPN vers les clients, avec un désastreux impact sur la productivité : dans le cas extrême d’une liaison inutilisable, un débogage se passe vingt fois plus lentement par téléphone, ou nécessite un déplacement parfois lointain coûteux en temps, fatigue, euros et CO₂<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>.</p>
<p>De plus, il n’y a pas que les <em>digital natives</em> à tomber rapidement en état de manque du réseau et de sa mine d’informations plus ou moins utiles. Couper Internet aux informaticiens, c’est s’assurer une fuite des cerveaux.</p>
<h4>Un coin au calme</h4>
<p>À l'agence je vis dans un <em>open space</em>. Chez beaucoup de clients aussi. Les bureaux à trois ne sont pas non plus terribles pour la productivité. Il n’y a pas de formule idéale, ou plutôt une formule qui change avec la tâche : <em>war room</em> pour les projets tendus ou en phase de test, et bureaux isolés pour rester concentrés ou pour téléphoner, ce qui suppose que les ordinateurs soient portables.</p>
<h4>Le droit de bien faire son travail</h4>
<p>Voici à présent les revendications non matérielles, les plus délicates.</p>
<p>Combien de fois a-t-il fallu torcher quelque chose vite fait par manque de temps ? N jours ont été vendus au client, 2N auraient été nécessaires pour tout faire calmement, donc on a tout fait en même temps, développé des morceaux sur des bases instables, testé avant la fin du développement, déployé avant la fin des tests préliminaires, et formé avant d’avoir finalisé les spécifications.</p>
<p>Évidemment dans ce cas les développeurs dépensent plus de temps et d’énergie à resserrer les boulons et à s’insulter mutuellement qu’ils n’en auraient pris à faire les choses proprement d’entrée. Bien sûr, la date de livraison a été fixée pour des raisons de politique interne au client, et/ou un temps fou a été paumé en administratif, et/ou tout a été décidé au dernier moment. Au final, personne n’est content du résultat et rejette la faute sur les autres.</p>
<h4>Le droit de choisir ses outils</h4>
<p>« On reconnaît le bon ouvrier à ses outils » dit le proverbe. Je ne me souviens pas de beaucoup de moments où j’ai pu librement choisir quelle base, quel langage, quel ETL, quel outil, quelle machine... serait utilisé. Les critères de choix portent plus souvent sur le tarif ou la compatibilité avec l’existant que sur l’aisance de développement. (Le choix de l’outil étant souvent « structurant » et engageant l’entreprise pour longtemps, je comprends parfaitement que l’opinion du développeur ne soit qu’un facteur parmi d’autres — mais rares également sont ceux qui m’ont demandé mon avis.)</p>
<p>Quand on parle de technique, et de choses pas trop chères (disque dur, RAM), il suffit parfois de demander pour avoir (à supposer que l’accord du chef suffise). Dès qu’il y a des coûts de licence impliqués, le programmeur de base n’a plus trop le choix. Les logiciels libres ont l’immense avantage de n’impliquer aucune bataille bureaucratique pour débloquer quelques euros de licence.</p>
<h4>Le droit de savoir ce qu’on lui demande, avec des priorités claires</h4>
<p>Arf arf arf.</p>
<p>Soyons juste, j’ai vu le pire comme le meilleur, des specs au crayon sur une feuille comme des dossiers archi-précis. Il y a forcément toujours des zones d’ombres, et le demandeur n’est pas toujours conscient lui-même de la complexité intrinsèque de son projet ou de l’incohérence parfois catastrophique de ses données source (<em>garbage in, garbage out</em> si logiciel != Google, et encore).</p>
<p>Mais les commanditaires doivent savoir répondre aux questions, corriger les incohérences remontées, connaître leur métier, savoir ce qu’ils veulent, accepter de vivre avec des contraintes techniques, et (ô qualité rare) arbitrer !</p>
<h4>Le droit à une communication claire et directe avec le client, l’utilisateur comme le « commanditaire »</h4>
<p>J’ai toujours haï l’effet « téléphone arabe » et les incompréhensions parfois catastrophiques nées de l’éloignement.</p>
<p>Autant j’abhorre passer mon temps sur la route pour aller chez des clients lointains, autant je sais que dans les situations un peu tendues ou floues la communication en face à face est dix fois plus efficace que mail et téléphone pour diverses raisons :</p>
<ul>
<li>les <strong>non-dits</strong> : l’interlocuteur muet après une question directe, ou affichant une moue, livre une information, un avertissement, montre un souci ; celui qui ne répond pas à un mail... peut ne pas l’avoir lu ou pas compris ;</li>
<li>la <strong>nullité de beaucoup de personnes pour s’exprimer par email</strong>, alors qu’oralement tout va bien (moi c’est l’inverse) ;</li>
<li>à l’inverse, <strong>l’incapacité de beaucoup de gens à lire un mail de plus de trois lignes</strong> (par manque de temps parfois, de cellules grises rarement, de capacité d’attention souvent) ;</li>
<li>les <strong>insinuations</strong> et autres vacheries plus ou moins gratuites que l’on n’oserait jamais par mail ;</li>
<li>la <strong>franchise entre quatre yeux</strong>, sans témoin ni trace écrite, qui permet des explications parfois très saines en cas de conflit (purement technique le conflit parfois) ;</li>
<li>la <strong>solidarité entre « gens du front »</strong> d’entités différentes mais cohabitant dans le même bureau, soudés face à leurs chefs respectifs pour le bien du projet ;</li>
<li><strong>« radio moquette »</strong> à la machine à café : on y apprend beaucoup sur un peu tout le monde, les qualités et défauts des uns et des autres, les contraintes, les <em>vraies</em> raisons de ci ou ça, le vocabulaire local (capital !), la culture du client (caricature de fonction publique ? <em>start-up</em> hystérique ? ingénieurs pointilleux ? commerciaux-girouettes ?), l’historique (toujours chargé), les <em>vrais</em> arbitrages à faire, la politique interne (de quel chef se méfier ? lequel fera pression ? lequel est ennuyé par le projet ?), les hiérarchies officielles et officieuses, les personnalités (quel chef se battra pour le projet ? lequel est une carpette ?), etc. ;</li>
<li>le <strong>contact direct avec l’utilisateur</strong> : on lit très vite un <em>brain overflow</em> sur un visage, alors que personne ou presque n’écrira « je ne comprends pas » ;</li>
<li>le <strong>lien entre humains</strong>, tout simplement : on se décarcasse beaucoup plus pour Jacquot avec qui on a déjà sympathisé autour d’un café, une secrétaire sympa qui a dépanné l’imprimante avec le sourire, un voisin de bureau qui a conseillé sur le choix d’une voiture, un utilisateur régulier dont on comprend le martyre quotidien devant un logiciel foireux... que pour des noms abstraits sur un écran.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup></li>
</ul>
<p>Le pire des cas ? La spécification retransmise à un développeur lointain (indien ou français, ce n’est pas le problème) <em>via</em> un intermédiaire obligé ignorant du sujet<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup>.
À l’inverse, je me rappelle avec émotion de sessions de développement avec des utilisateurs demandeurs deux bureaux plus loin, qui savaient ce qu’ils voulaient, répondaient aux questions, et testaient. Même avec des specs-brouillon.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Traduction imparfaite du </em>Bill Of Rights<em> qui amende la Constitution américaine, alors que la Déclaration des Droits de l’Homme constitue le préambule de toute Constitution française digne de ce nom. Différence philosophique ou simple héritage de la philogénie du droit ?</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>On remarque les vétérans du réseau à un nom de domaine avec </em>deux<em> lettres seulement.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Le CO₂ et la fatigue, l’employeur s’en fiche, bien sûr.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Je pense que réside là une des explications des dérapages de grandes entreprises : le client contacté uniquement par web ou email devient immédiatement abstrait.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>L’intermédiaire c’était moi et je n’ai pas du tout aimé.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/D%C3%A9claration-des-droits-du-d%C3%A9veloppeur#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/569
BO : les bons côtés
urn:md5:0228312e7e8f721b157b560ef9d3f04d
2009-09-01T22:55:00+00:00
2011-06-03T20:44:03+00:00
Christophe
Informatique : l’art du développement
apparence
base de données
bug
Business Objects
chiffres
dommage
dysfonctionnement
développement
ergonomie
formation
informatique
métainformation
optimisation
prise de tête
SAP
SQL
travail
émerveillement
<p>Principe et bons côtés d’un logiciel très crispant par pas mal de côtés.</p> <p>(<em>Défoulement préalable.</em>)</p>
<p>J’ai vomi beaucoup de bile sur Business Objects <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/03/05/451-l-abominable-bo">l’an dernier en mars</a> et <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/08/22/525-l-abominable-bo-suite-de-r2-a-30-et-de-bo-a-sap-et-une-pincee-de-schizophrenie-web">août</a>. Comme je l’ai dit, je suis frustré de voir un outil conceptuellement excellent, qui à la base fonctionne, et n’est pas trop mal fichu, être plombé par :</p>
<ul>
<li>des<strong> erreurs ergonomiques atroces</strong> (ça s’améliore avec le temps) ;</li>
<li>des <strong>régressions de fonctionnalités</strong> d’une version sur l’autre qui me font passer pour un con aux yeux de mes élèves de formation (de la 6.5 à XI R2 c’était un supplice ; ça va mieux avec XI 3) ;</li>
<li>des <strong>bugs</strong> : un tableau qui se calcule mal est pénible (c’est tout de même rare), mais j’ai hurlé à cause des outils d’import-export du référentiel voire d’installation/désinstallation (!) qui déconnent complètement (ça a coûté cher à mes clients) ; évidemment de manière reproductible, et au deuxième ou troisième Service Pack ;</li>
<li>une <strong>pléthore de produits annexes</strong>, achetés au fil du temps par BO, au point que le mystère plane sur les fonctionnalités du <em>Performance Pack</em>, à moins que ce soit le <em>Productivity Management</em> (ce syndrome est courant chez tout éditeur d'une certaine taille : SAP, Oracle...) ;</li>
<li>un <strong>système de numérotation de versions illisible</strong>, rendant le point précédent encore plus douloureux (la stabilisation semble tout de même en cours) ;</li>
<li>des <strong>décisions techniques</strong> parfois débiles ou dictées par la mode ;</li>
<li>une architecture en forme de <strong>millefeuille Java, <em>très</em> lourd</strong> et complexe ;</li>
<li>des <strong>délais d’expiration</strong> de session ou d’un des innombrables services internes réglés au plus juste, sources de moults messages d’erreur tous plus abscons les uns que les autres aux yeux des utilisateurs et de la perte directe d’heures de travail ;</li>
<li>une <strong>documentation pléthorique mais trop lourde, et anti-pédagogique</strong> (avec une copie d’écran par tome, quand j’illustre mes supports de formation de deux par page) ;</li>
<li>un <strong>paramétrage</strong> fin de l’apparence par intervention directe dans les fichiers de configuration <code>.xml</code> ou <code>.properties</code>, voire directement les <code>.jsp</code> du site web (je préfère encore ça à la base de registres<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-1" id="rev-pnote-480-1">1</a>]</sup>) ;</li>
<li><strong>SAP</strong> enfin, qui vient de racheter BO, ce qui augure mal de l’avenir — leur première action a été de déplacer tout le site de support, brisant non seulement les liens externes mais aussi les liens documentaires <em>depuis leur propre produit</em> (!!) ; cette abomination me reste encore en travers de la gorge, il y a des baffes qui se perdent ; enfin, le site de SAP a toujours été un labyrinthe sans nom complètement verrouillé, même quand on a des accès (chers payés).</li>
</ul>
<p>(<em>Fin du défoulement. Soyons positif.</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-2" id="rev-pnote-480-2">2</a>]</sup>)</p>
<p>BO a réussi à s’imposer auprès de ses clients et à leur faire cracher autant d’argent (et avec SAP ça ne va pas s’arranger) pas uniquement par hasard. En comparant succinctement avec quelques produits concurrents, je me suis aperçu que BO possède quelques atouts difficiles à trouver ailleurs, surtout ensemble. Si vous connaissez un concurrent qui arrive à la cheville de BO sur ces sujets, je suis preneur !!!</p>
<h3>La notion d’univers</h3>
<p>(<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/03/05/451-l-abominable-bo">Voir le début de cet ancien billet pour un exemple</a>.) Le principe consiste juste à stocker et masquer les tables, les jointures... nécessaires à l’interrogation des diverses bases de données dans un « univers » réutilisable. L’utilisateur ne manipule plus alors que des objets <em>Facture</em>, <em>Quantité</em>, <em>Nom</em>, <em>Date</em>, <em>Région</em>, etc. qu'il lâche dans des tableaux et, ô miracle, les calculs se font tous seuls, du moins dans les cas simples. Ne reste que la mise en page<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-3" id="rev-pnote-480-3">3</a>]</sup>.</p>
<p>Effectivement, BO vise l’utilisateur de base, totalement inculte en SQL, à le rendre indépendant du service informatique qui n’a plus à lui préparer requêtes et tableaux même s’il doit concevoir l’univers. Évidemment, dans les cas un peu tordus réclamant acharnement, sens logique ou compréhension des subtilités du produit, le rapport atterrit toujours à l’informatique ou chez un consultant.</p>
<p>Il existe deux types d’objets principaux dans l’univers :</p>
<ul>
<li>les <strong>indicateurs</strong> : en gros, ce qui se somme (montants, nombre de clients...) et ce qui s’en déduit (taux, moyennes, extrêmes...) ;</li>
<li>les <strong>dimensions</strong> : le reste (dates, lieux, produits, gammes, clients, types, propriétés et statuts divers...), regroupés en plusieurs niveaux plus ou moins hiérarchiques.</li>
</ul>
<h3>Le tableau indépendant ; la notion de contexte de calcul</h3>
<p>En voyant (<em>très</em> succintement) <a href="http://fr.wikipedia.org/wiki/JasperReports">JasperReports</a>, un des concurrents libres, j’ai eu l’impression de revenir dix ans en arrière, sur Access ou Oracle Reports, avec une requête tapée à la mimine servant de base au rapport, un affichage ligne à ligne et des sommes calculées à coup de variables incrémentées.</p>
<p>BO par contre considère que l’on peut poser un tableau n’importe où dans la page et que les objets (issus de l’univers) qui y sont jetés se calculent en fonction de leur <em>contexte</em>, c’est-à-dire de leur position dans ce tableau (corps, pied de page, pied de rupture...), et des filtres ou sections de page où se situe ce tableau.</p>
<p>Prenons un tableau de base de l’univers de démonstration (une agence de voyages) : <img src="https://www.coindeweb.net/blogeclectique/images/bo/BO1-d%C3%A9tail.jpg" alt="" style="display:block; margin:0 auto;" />
Je copie un tableau plein de colonnes (<code>Ctrl</code> et déplacement) puis j’en enlève des dimensions : les chiffres s’agrègent automatiquement. <img src="https://www.coindeweb.net/blogeclectique/images/bo/BO3-agr%C3%A9g%C3%A9.jpg" alt="BO3-agrégé.jpg" style="display:block; margin:0 auto;" /></p>
<p>Les cellules des tableaux se remplacent, s’échangent par glisser-déplacer, c’est la partie la plus agréable — voire impressionnante — du développement de rapports. Et en deux clics (littéralement) on rajoute une somme ou une répartition par pourcentage.<img src="https://www.coindeweb.net/blogeclectique/images/bo/BO2-r%C3%A9partition.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<p>S’ajoutent ensuite les filtres. Dans un tableau des ventes par pays on peut choisir de n’en afficher que certains, nommément comme <code>[Pays]=France</code>, selon un critère du type <code>[Chiffre d’affaire] > 100000 €</code>, voire en ne demandant que le « top 10 ». Les totaux de bas de tableau tiennent compte de ce filtre.</p>
<p>Un clic droit, et ce tableau peut devenir un graphique (qui est juste une forme particulière de tableau<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-4" id="rev-pnote-480-4">4</a>]</sup>). Là aussi les filtrages, ajouts ou suppression d’objets peuvent se faire à volonté.</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/bo/BO5-camembert.jpg" alt="" style="display:block; margin:0 auto;" />
<img src="https://www.coindeweb.net/blogeclectique/images/bo/.BO7-graphique_m.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<p>Malheureusement le jeu de tableaux offerts par BO est relativement pauvre au-delà des classiques camemberts et barres empilées. Une simple pyramide des âges d’une population est un petit projet. Par rapport à <a href="http://www.visualcomplexity.com/vc/" hreflang="en">Visualcomplexity</a>, <a href="http://www.worldmapper.org/" hreflang="en">Worldmapper</a> ou <a href="http://www.gapminder.org/" hreflang="en">Gapminder</a>, BO retarde de deux générations. Même la cartographie est absente (il y a des <a href="http://galigeo.com/">produits séparés pour cela</a>).</p>
<p>Les <strong>ruptures</strong> offrent tout ce qu’on peut désirer comme pieds de tableaux, agrégations intermédiaires, etc. Et j’utilise énormément les <strong>sections</strong> de page : elles permettent par exemple de reproduire le même jeu de tableaux, libellés, graphiques... en fonction d’un paramètre (ce qui donne une page par service par exemple).</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/bo/BO6-section.jpg" alt="" style="display:block; margin:0 auto;" /></p>
<h3>Variables</h3>
<p>Les variables (des formules de calcul entre les différents objets) diffèrent d’Excel : elles ne font pas référence à des cellules mais aux objets du tableau.</p>
<p><strong>Exemple</strong> : On définit <code>[CA par client]</code> par <code>[Chiffre d'affaire]/[Nombre clients]</code>. On obtient donc un nouvel objet que l’on pourra rajouter dans n’importe quel tableau.</p>
<p>Ce nouvel objet sera lui calculé en mémoire, la base n’est pas impliquée. Avec les machines de bureau actuelles, calculer plein de choses dans le document est souvent plus simple et rapide que de le faire faire par la base de données.</p>
<p>Les fonctions disponibles pullulent. Certaines consistent en altération du contexte, par exemple pour récupérer une donnée qui n’est pas de même niveau d’agrégation (par exemple un pourcentage par rapport au total du tableau <code>=[Indicateur] / [Indicateur] <em>Dans</em> Bloc</code>. Très pratique une fois maîtrisées les formules pour certains clients qui ont des règles de calcul chinoises.</p>
<p>Hélas les variables doivent être recréées dans chaque document. L’utilisateur ne peut les mutualiser. L’univers ne peut les accueillir non plus, il ne sert qu’à traduire les objets prédéfinis en SQL. On peut vouloir rajouter plein d’objets précalculés dans l’univers, mais dès qu’il s’agit de taux et d’objets difficilement agrégeables, les limites du produit apparaissent<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-5" id="rev-pnote-480-5">5</a>]</sup>. Franchement, si je devais rajouter <em>une</em> fonctionnalité dans BO, c’est la possibilité de mettre du code de document Webi (le code des variables) dans des objets de l’univers<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-6" id="rev-pnote-480-6">6</a>]</sup>.</p>
<p>Soyons juste, j’ai vu des bugs hallucinants à base de calculs de sommes cumulatives d’objets issus de plusieurs requêtes. Ou encore, des choses incompréhensibles à cause de nombreuses requêtes jointes dans le document <em>via</em> des clés incomplètes (du doublonnage a tendance à apparaître). Au moins est-on dans un domaine très tordu.</p>
<h3>Autres points forts</h3>
<p>Cerises sur le gâteau :</p>
<ul>
<li>BO sait <strong>automatiquement prendre en compte des tables d’agrégats précalculées</strong>. <br />Par exemple, soient une table des ventes par jour, et une autre par mois. Il « suffit » d’indiquer dans l’univers dans la définition de chaque indicateur que les deux possibilités existent (au lieu de <code>VENTES.CA</code> on indiquera <code>@Aggregate_Aware(VENTES_MOIS.CA, VENTES_SEMAINE.CA, VENTES.CA) </code>). BO saura choisir la table en fonction des clés disponibles et des objets qu’on lui aura indiqué comme « non compatibles » avec les tables agrégées. Il est dommage que le système des hiérarchies ne soit pas assez fin et automatisé pour trouver les incompatibilités tout seul...</li>
</ul>
<ul>
<li>BO sait gérer des <strong>hiérarchies de dimensions</strong> (<em>Région</em>/<em>Département</em>/<em>Ville</em> ou <em>Secteur</em>/<em>Gamme</em>/<em>Produit</em>/<em>Référence</em>...) ce qui est la base du mode d’affichage <em>Exploration</em>. <br />Les gens du contrôle de gestion <em>adorent</em> « zoomer », c’est-à-dire partir d’un tableau par année/pays, cliquer simplement dedans pour chercher les anomalies, descendre en quelques secondes au niveau année/magasin, puis semaine/rayon, et remonter tout aussi vite à semaine/pays.</li>
</ul>
<ul>
<li>BO sait <strong>générer plusieurs requêtes séparées quand plusieurs indicateurs viennent de tables différentes</strong>. Et il semble que la concurrence ait un sérieux retard là-dessus.<br />Avec une table des ventes par magasin et une autre des surfaces par magasin (soit deux tables de faits dans un système décisionnel), BO génère deux requêtes (sans jointure externe), effectue <em>en mémoire</em> la jointure (cette fois doublement externe !), et crée un tableau avec magasin, ventes et surface, permettant toutes les astuces d’affichage ou le calcul d’un simple ratio des ventes/m².<br />En théorie, une seule requête pourrait suffire (et c’est ce qui se passe si les indicateurs viennent de la même table), mais le problème des dimensions pas forcément communes rend le problème parfois... intéressant.<br />Si les informations viennent carrément de deux bases de données différentes (deux univers), l’utilisateur doit faire les deux requêtes lui-même (BO ne peut pas savoir que fonctionnellement ce sont des choses voisines), mais une fois les jointures indiquées manuellement, BO se débrouille aussi bien avec deux univers (deux bases même) qu’avec un seul.</li>
</ul>
<p>Évidemment, le diable est dans le détail, et si les bases mathématiques et logiques sont solides, les pièges abondent pour les concepteurs d’univers. L’expert en SQL peut soupirer : dans certains cas il ferait mieux de réécrire les requêtes à la main comme au bon vieux temps ; il s’agit en général d’agrégats tordus qu’un <a href="http://fr.wikipedia.org/wiki/Extract_Transform_Load">ETL</a> peut parfaitement calculer aussi. (Le problème se déplace alors sur le terrain de « ai-je besoin d’un ETL pour alimenter mes tables ? » ce qui n'est pas le sujet ici mais je me pose parfois la question<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-7" id="rev-pnote-480-7">7</a>]</sup>.)</p>
<h3>Gadgets supplémentaires</h3>
<p>À part Web Intelligence, le système de requêtage décrit ci-dessus, avec trois éditeurs différents (!), la suite de BO <del>offre</del> vend :</p>
<ul>
<li>un portail web assez lourd où iront vivre les documents ;</li>
<li>toute une infrastructure de sécurité à base de « référentiel », très très très fine, jusqu’à l’absurde, pleine de bugs subtils dans les mises à jour de version ;</li>
<li>tout un système de distribution : la mise à jour quotidienne/mensuelle... d’un document peut être envoyée comme PDF, Excel... par mail, FTP... à beaucoup de monde ;</li>
<li>un système de <em>web services</em> , terme très à la mode, mais c’en est la première utilisation massive efficace que je vois : un bout de tableau ou un graphique issu d’un document extrêmement travaillé plein de formules devient une simple source de données XML réutilisable ; des produits externes utilisent cette technique pour s’interfacer avec BO ;</li>
<li>un <em>plugin</em> pour Office qui permet de baser des tableaux Excel ou des animations Powerpoint à des morceaux de documents Webi : les données se rafraîchissent directement dans Excel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#pnote-480-8" id="rev-pnote-480-8">8</a>]</sup> ;</li>
<li>des <em>widgets</em>, totalement gadgets, pour avoir un graphique qui se met à jour régulièrement en fond d’écran ;</li>
<li>plein d’autres trucs que je ne nommerais car 1) je les connais mal ou pas du tout et 2) ils changent souvent de nom entre deux versions !</li>
</ul>
<p>Évidemment tout cela est propriétaire en diable, et coûte les yeux de la tête (je rappelle qu’on parle d’un produit de l’équivalent français de Microsoft ou Oracle, racheté par SAP, hein).</p>
<h3>Bref</h3>
<p><em>Si</em> le travail préparatoire a été bien fait, c’est-à-dire si l’univers permet bien de tout croiser, que des tables d’agrégat sont en place pour optimiser, c’est-à-dire <em>si</em> une alimentation de <em>datawarehouse</em> digne de ce nom est en place (dénormalisée en diable, pas trop « floconnée », indexée à donf’), <em>et</em> que l’on a fait comprendre aux utilisateurs la distinction entre infocentre (pour des listes simples) et <em>datawarehouse</em> (à but décisionnel, <em>non</em> adapté aux listes de clients ou de patients), <em>et</em> que tout le monde a été suffisamment formé sur ces outils et cherche à les comprendre, <em>alors</em> BO se révèle un super outil...</p>
<p>Pour plus de détails, <a href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b0455291-6964-2b10-aca2-aedb673c04c1" hreflang="en">voir par exemple ce Powerpoint pas mal fait</a>.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-1" id="pnote-480-1">1</a>] <em>Il faudra tout de même y plonger pour désinstaller complètement le Tomcat inclus dans BO.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-2" id="pnote-480-2">2</a>] <em>On notera que pour une fois je vais dire du bien d’un produit SAP, occasion probablement unique dans l’histoire de l’humanité.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-3" id="pnote-480-3">3</a>] <em>Qui, comme tout développeur sait, générera plus d’attention, de remarques, et coûtera plus de temps, que tous les chiffres du tableau.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-4" id="pnote-480-4">4</a>] <em>On dit « bloc » pour désigner un tableau ou un graphique.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-5" id="pnote-480-5">5</a>] <em>Plus en détail : pour les taux, moyennes, décomptes, XI 3 a introduit les « indicateurs intelligents », qui peuvent être agrégés au niveau de la base : la requête SQL est réécrite à chaque changement de contexte de calcul (dans une colonne, un pied de tableau, de page...). C’est une avancée, mais limitée : dès que des opérations ou des filtres s’effectuent sur un tableau, BO ne sait pas les retraduire en SQL, et l’indicateur agrégé devient indisponible. De plus, ce système multiplie les lourdes requêtes à la base (BO semble ignorer la syntaxe du <code>ROLLUP</code> et autres finesses d’Oracle, et crée un ordre SQL par niveau d’agrégation...). Les indicateurs intelligents ne résolvent pas non plus d’autres difficultés : par exemple, en décisionnel, un ratio de deux indicateurs issus de deux étoiles différentes ne pourra jamais s’exprimer directement en SQL car chaque indicateur vient d’une requête différente, et BO fait la jointure en mémoire, pas dans le SQL (on peut se débrouiller en rajoutant une étoile faite juste pour cela, mais ça fait un « contexte » de plus à maintenir dans l’univers). Pour un autre aperçu des indicateurs intelligents, voir par exemple <a href="http://www.dagira.com/2008/11/10/designer-xi-3-new-feature-database-delegated-measures/" hreflang="en">ici</a></em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-6" id="pnote-480-6">6</a>] <em>En laissant de côté le problème des performances qui oblige à d’autres compromis, je reste donc sur l’idée que la solution définitive est de requêter une seule fois, au plus bas niveau de détail, puis d’effectuer le calcul final en mémoire dans les tableaux, comme BO a toujours su le faire ; mais avec en plus possibilité de définir les variables <strong>dans l’univers</strong> à partir d’autres objets de cet univers. Si de plus l’analyse de la syntaxe se fait à l’exécution (comme d’ailleurs c’est le cas pour le SQL généré), on pourrait même créer des objets qui en utiliseraient d’autres issus d’autres univers !</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-7" id="pnote-480-7">7</a>] <em>Avis express : dans le cas où l’ETL a ses limites en performance (<a href="http://fr.talend.com/">Talend</a>), et qu’on ne manipule pas de bases hétérogènes, un caïd des vues, des <a href="http://lalystar.developpez.com/fonctionsAnalytiques/">fonctions analytiques d’Oracle</a> et du <a href="http://didier.deleglise.free.fr/plsql/intro_pl.htm">PL/</a> ou <a href="http://en.wikipedia.org/wiki/Transact-SQL" hreflang="en">Transact-SQL</a> peut s’avérer un ETL en </em>meatware<em> efficace.</em> (<strong>Ajout de 2011</strong> : Quoiqu’avec le temps je suis de plus en plus pro-ETL. Enfin, ça dépend de l’ETL.)</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#rev-pnote-480-8" id="pnote-480-8">8</a>] <em>Si BO a un ennemi mortel, c’est Excel : tout le monde le maîtrise ou croit le maîtriser ; les graphiques y sont bien plus fins ; et on peut toujours y caser au chausse-pied des données issues de partout alors que BO exige un certain travail préparatoire. D’un autre coté, la manipulation des données et leur conversion en différents graphiques se fait plus aisément sous BO, et sans le </em>plugin<em>, Excel ne peut être rafraîchi qu’à grand coup d’exports/réimports manuels.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/BO-les-bons-cotes#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/480
Checklists
urn:md5:6b3802399887538a69b8facd7f52bb6b
2009-08-23T00:00:00+02:00
2011-06-03T21:12:33+02:00
Christophe
Savoir mortel
auto-organisation
bon sens
communication
complexité
court terme
dommage
dysfonctionnement
développement
expertise
informatique
intelligence
métainformation
perfectionnisme
perspective
précision
psychologie
résolutions
santé
sécurité
travail
économie de l’attention
<p>Les listes de contrôle (pointage ?) sont de merveilleux outils très efficaces que peu de monde aime utiliser.</p> <p>Une perle de sagesse rencontrée au fil du web :</p>
<blockquote><p>« Devenu pilote, je suis devenu un partisan convaincu des <em>checklists</em> et je les lai intégrées à mon travail en informatique. Je fais des <em>checklists</em> pour les processus de livraison de logiciel, les installations de <em>frameworks</em>, les changements de cartouche de toner, etc. Puis je demande à quelqu’un de l’équipe de les exécuter pendant que je regarde par-dessus leur épaule. Puis je les améliore et les place dans un répertoire public. Mes vacances ne sont plus jamais interrompues. »<br /> <br /><a href="http://slashdot.org/~devonbowen">devonbowen</a>, <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/" title="en">Slashdot.org</a>, 8 décembre 2008</p></blockquote>
<p>Même si je hurle souvent contre les <em>process</em> formalisés à l’extrême qui ne laissent aucune latitude à un être humain, c’est l’excès et la déshumanisation qui me hérissent, <em>pas</em> la formalisation de connaissances ni la mise en place de listes d’actions pour un but donné. Au contraire !</p>
<p>J’ai trop souffert dans pas mal d’endroits à réinventer la roue, remettre en place des processus de livraison jamais formalisés avant moi — et j’ai bien sûr négligé ensuite de les mettre par écrit une fois assimilés. Le piège est double :<br />- ce qui est répété tous les jours n’a pas vraiment besoin d’être formalisé (en tout cas le besoin n’est pas évident) ;<br />- ce qui est fait rarement ne vaut (apparemment...) pas la peine d’être tracé, sans rentabilisation du temps investi.</p>
<p>Évidemment, on est plus motivé (ou on devrait l’être) quand plusieurs personnes alternent dans le même rôle : une liste empêchera <em>les autres</em> d’oublier (encore !) ci ou ça. Oui, suivre une liste est un supplice pour un impatient comme moi, et la tentation guette de sauter des <em>items</em> ; mais si un pilote d’avion hyper-entraîné a besoin de sa liste, alors le commun des mortels ne peut négliger l’outil, même sans charge d’âme.</p>
<p>Je dirais que plus l’opérateur est impatient, multitâche, chargé de tâches de conception, non répétitives, plus la liste est nécessaire, et plus il faut mener la liste à deux pour limiter les risques de « triche » plus ou moins consciente.</p>
<p>Exemple parfait : la livraison de différentes versions d’un logiciel. Je ne connais aucun processus idéalement automatisé sans une doc à mettre à jour manuellement, un test impossible à réaliser par la machine... Je me dis que les wikis sont particulièrement bien adaptés aux <em>checklists</em>, notamment avec la facilité de rajouter telle étape oubliée ou tel nouveau contrôle à faire.</p>
<p>Les <em>checklists</em> sont à la mode : <a href="http://www.medecinews.com/762/une-check-list-pour-les-chirurgiens-avant-doprer.html">sous pression de l’OMS, elles vont devenir obligatoires dans les blocs opératoires français</a>. Même pour des chirurgiens archi-formés, en équipe, la fréquence des interversions de bras amputés et des oublis de compresses fait frémir.</p>
<p>D’ailleurs la <em>checklist</em> se révèle encore plus capitale en équipe : il y a trop de risques que l’un se dise que l’autre va faire ci ou ça, et trop de distractions liées à la communication. (Toutes les plaquettes de prévention sur la noyade en piscine privée invitent à désigner explicitement un responsable de la surveillance des enfants.)</p>
<p>Un peu de rigueur basique pour pas cher. Rares sont les outils avec un tel retour sur investissement.</p>
<p><strong>PS</strong> : Je cherche une meilleure traduction pour <em>checklist</em> que « liste de contrôle ». Fichu anglais avec ses noms courts hyperpratiques.</p>
<p><strong>Application</strong> :</p>
<ul>
<li>Catégorie : OK</li>
<li>Programmation du billet : oups, j’avais oublié. Oui, c’est bien dans le futur.</li>
<li>URL : OK</li>
<li>tags : OK</li>
<li>Titre : OK</li>
<li>Chasse aux apostrophes droites et aux guillemets droits : OK</li>
<li>Prévisualisation et chasse ax fuates de frppes : OK</li>
<li>Première traque des verbes faibles : OK</li>
<li>Traque des répétitions inutiles verbeuses qui ne servent à rien qu’à répéter : OK</li>
<li>Traque des subordonnées trop lourdes, des subordonnées, des « on », des voix passives : OK</li>
<li>Relecture à tête reposée : <del>À FAIRE</del> (<strong>FAIT EN 2011</strong>)</li>
</ul>
<p>(Tiens, encore une idée de <em>plugin</em> pour Dotclear que je n’aurai jamais le temps de programmer.)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Checklists#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/584
Une tranche de support
urn:md5:2aad25b9d18b2a9f113062b71b98388b
2009-08-19T00:00:00+00:00
2011-06-03T20:08:39+00:00
Christophe
Informatique : l’art du développement
complexité
dommage
dysfonctionnement
développement
expertise
informatique
prise de tête
sabotage
travail
<p>Le support est <del>parfois</del> <del>souvent</del> <del>généralement</del> un métier de m... En l’occurence, pour moi, ça a longtemps été assurer (seul) support et maintenance pour un logiciel très spécialisé avec une poignée de clients (rien à voir avec le support téléphonique à la chaîne).</p> <p>Le scénario le pire :</p>
<p>- le client se plaint d’un plantage majeur et total qui le bloque totalement ;</p>
<p>- (lequel client en est à son dixième problème sérieux d’affilée causé ou plutôt révélé par le produit) ;</p>
<p>- sur le composant le plus lourd et complexe du produit ;</p>
<p>- que je n’avais pas développé (hérité du développeur précédent qui avait réussi à se tirer de là) ;</p>
<p>- qui a toujours bien marché ;</p>
<p>- que je ne connaissais pas (petit nouveau, je n’avais pas encore tout vu !) ;</p>
<p>- sans aucune doc technique, juste une vague spec’ sur le PRINCIPE du machin (plein de croisements d’axes dans tous les sens pour calculer des taux) ;</p>
<p>- et ledit précédent développeur, contacté, n’a plus aucun souvenir de comment il a fait.</p>
<p>SUPER !</p>
<p>(Le bug était en fait évident, une erreur de frappe flagrante... J’ai lâchement laissé la rétroanalyse de ce morceau du logiciel, qui n’a sinon plus jamais fait parler de lui, à mon successeur.)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Une-tranche-de-support#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/348
Extrait de mes signatures automatiques : développement informatique (2)
urn:md5:cddeffc2d3c6e0fb50fbd449d1e9e882
2009-04-27T00:00:00+00:00
2011-06-03T17:23:41+00:00
Christophe
Informatique : l’art du développement
bon sens
citation
complexité
cynisme
dysfonctionnement
développement
foutage de gueule
informatique
perfectionnisme
perspective
prise de tête
travail
économie
<p>(<em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/06/29/510-extrait-de-mes-signatures-automatiques-developpement-informatique-1">La partie 1, c’était en juin dernier…</a>.</em>)</p>
<p>Ici aussi la source principale est <a href="http://slashdot.org" hreflang="en">Slashdot</a>, ou plutôt ses commentateurs (parce que le site lui-même...). Toute proposition de meilleure traduction est la bienvenue.</p> <hr />
<blockquote><p><em>Realize that for every good new idea that you hear about, there are at least a 100 that were funded, developed, and failed before you ever saw them. The naive reaction is “well, they were stupid”. That’s nonsense, history has shown over and over that we find new ideas amongst the insight we gain by building the bad ideas. Without doing that, we don’t learn what was bad and we don’t recognize what is good.</em><br /> <br />Comprenez que pour chaque nouvelle bonne idée dont vous entendez parler, il y en a au moins cent qui ont été financées, développées et ont échoué avant que vous ne les voyiez. La réaction naïve est « bon, elles étaient stupides ». C’est un non-sens, l’histoire a montré encore et encore que nous trouvons les nouvelles idées avec le recul obtenu en développant les mauvaises. Sans ça, nous n’apprenons pas ce qui était mauvais et nous ne reconnaissons pas ce qui est bien.<br /> <br /><a href="http://en.wikipedia.org/wiki/Larry_McVoy" hreflang="en">Larry Mc Voy</a>, <a href="http://kerneltrap.org/node/222">kerneltrap.org, 28/05/2002</a></p></blockquote>
<p>C’est la version moderne du « c’est en forgeant qu’on devient forgeron », appliquée à l’innovation de manière globale. Tant de choses nous semblent évidentes et simples parce que mille autres théories, possibilités, configurations... ont été essayées sans succès. L’un des enjeux de l’informatique actuelle est de pouvoir continuer à expérimenter tous azimuts, sans se laisser enfermer par un choix technologique d’<em>un</em> fournisseur.</p>
<hr />
<blockquote><p><em>We are not tolerant people.<br />We prefer drastically effective solutions.</em><br /> <br />Nous ne somme pas des gens tolérants. <br />Nous préférons les solutions drastiquement efficaces.<br /> <br />(Anonyme)</p></blockquote>
<p>Les informaticiens n’ont jamais été des gens portés sur la mesure et le compromis, ni portés à ménager la chèvre et le chou.</p>
<hr />
<blockquote><p><em>This product does exactly the source code says it does.<br />All other documentation is purely opinion.</em><br /> <br />Ce produit fait exactement ce que le code source dit qu’il fait.<br />Toute autre documentation est pure opinion. <br /> <br />(Anonyme)</p></blockquote>
<p>À garder à l’esprit quand on lit la documentation d’un outil... Mais soyons honnête : la documentation pêche plutôt par sa pure et simple absence, et les <em>bugs</em> ne sont de toute manière <em>pas</em> documentés.</p>
<hr />
<blockquote><p><em>If a line of code doesn’t exist, then it cannot contain a bug.</em><br /> <br />Si une ligne de code n’existe pas, elle ne peut pas contenir un bug.<br /> <br /><a href="http://slashdot.org/~wowbagger">wowbagger</a>, <a href="http://developers.slashdot.org/comments.pl?sid=51636&cid=5142354">Slashdot.org, 23/01/2003</a></p></blockquote>
<p>C’est simple mais il fallait y penser. C’est en partie à cause de leur verbosité que ne m’attirent ni Java (pas assez pratiqué pour le haïr de manière honnête), ni l’<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/19/186-prise-de-tete-en-abap">ABAP</a> (<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/11/16/252-par-paquets-de-5">l’existence même de ce langage est un non-sens</a>), et par sa compacité que <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/07/09/521-python-et-moi">python</a> me plaît.</p>
<hr />
<p>Ce qui suit décrit une longue partie de mon existence gaspillée à maintenir du code écrit par des débutants ou des Indiens pour un ERP :</p>
<blockquote><p><em>Don’t be afraid to refactor code every so often (...) Even good coders crumble to cost and schedule, and band-aid code that just plain needs to be rethought. In some environments, that’s a fact of life. In others you will have to fight for it, but you can get code rewritten.<br />In my experience, programming for an employer is the process of secretly introducing quality. This usually consists of debugging and refactoring on the sly while your pointy-haired boss thinks you're adding ‘features’.<br />Is it just me, or this the way it's done most places?</em><br /> <br />N’ayez pas peur de refactoriser le code de temps à autre (...) Même les bons développeurs doivent céder devant les coûts et les plannings, et les rustines a repenser complètement. Dans certains environnements, ça fait partie de la vie. Dans d’autres, vous devrez vous battre, mais vous arrivez à réécrire du code.<br />D’après mon expérience, programmer pour un employeur consiste à introduire secrètement la qualité. Cela consiste habituellement à déboguer et refactoriser furtivement pendant que votre incompétent de chef croit que vous ajoutez des « fonctionnalités ».<br />Est-ce juste moi, ou c’est comme ça que ça se passe presque partout ?<br /> <br /><a href="http://slashdot.org/~sbszine">sbszine</a>, <a href="http://developers.slashdot.org/comments.pl?sid=51636&cid=5141535">Slashdot.org, 23/01/2003</a></p></blockquote>
<hr />
<blockquote><p><em>Where I work, firing any number of the “developers” would thoroughly and permanently cripple the company. These guys are just irreplaceable. Use <code><a href="http://plasserre.developpez.com/v1-7.htm">Strict</a></code>? <code><a href="http://plasserre.developpez.com/v1-7.htm">Option Explicit?</a></code> Comments? Documentation? Proper English? Any jedi craves not these things.</em><br /> <br />Là où je travaille, virer n’importe quel nombre de « développeurs » handicaperait complètement et définitivement la société. Ces gars sont irremplaçables. Utiliser <code>Strict</code> ? <code>Option Explicit</code> ? Des commentaires ? La documentation ? Du vrai français ? Un <em>jedi</em> n’a pas besoin de ces choses.<br /> <br /><a href="http://slashdot.org/~Darth_Burrito">Darth_Burrito</a>, <a href="http://ask.slashdot.org/comments.pl?sid=52174&cid=5178331">Slashdot.org, 29/01/2003</a></p></blockquote>
<p>Sans commentaire. Avoir du code glauque que l’on est seul à comprendre est à la fois une protection contre le chômage (illusoire quand le chef croit que n’importe quel Indien saura faire pareil), et contre toute promotion (une personne indispensable reste où elle est (problème des gens <em>très</em> compétents également)).</p>
<hr />
<p>J’aime bien celle-là aussi, dans la série des priorités dans la vie :</p>
<blockquote><p><em>Save the whales,<br /> feed the hungry,<br /> free the mallocs.</em><br /> <br />Sauvez les baleines,<br /> nourrissez les affamés, <br />libérez les <code><a href="http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/malloc.3.html">malloc</a></code>.<br /> <br />(Anonyme)</p></blockquote>
<p>Évidemment, en <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/07/09/521-python-et-moi">python</a>, c’est hors sujet...</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Extrait-de-mes-signatures-automatiques-developpement-informatique-2#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/456
Journal de siège (suite)
urn:md5:507b78cba19b524f25a7244c8802cd57
2009-04-03T15:03:00+02:00
2010-10-18T06:51:50+02:00
Christophe
Res publica
Alsace
bon sens
chaos
cynisme
dommage
emmerdeurs
géopolitique
paranoïa
sécurité
terrorisme
travail
<p>Le sommet de l’OTAN chez moi. Récit d’une ville en état de siège, deuxième partie.</p> <p>Obama et Sarko sont là — mais pas encore les autres chefs d’État de l’OTAN, ils ne se voient que ce soir à Baden-Baden (oui, c’est dans le pays à côté).</p>
<p>Juste pour ces deux personnes et à cause des divers manifestants et excités que leur venue a attiré, nous avons eu droit :</p>
<ul>
<li>à la présence omniprésente de <a href="http://tempsreel.nouvelobs.com/depeches/societe/20090331.FAP3620/sommet_de_lotan_strasbourg_transformee_en_forteresse_pe.html">très nombreuses forces de l’ordre</a> (et de secours d’urgence...) que l’on voyait depuis plusieurs jours converger vers la ville : pas de problèmes pour les Gardes républicains à cheval (pour les abords du Rhin) mais on est moins heureux de voir des unités de décontamination ou de déminage ;</li>
</ul>
<ul>
<li>à un arrêt complet des bus en cours de mâtinée sur ordre du préfet<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#pnote-546-1" id="rev-pnote-546-1">1</a>]</sup> : la gratuité n’était donc qu’un leurre pour mieux piéger ceux qui n’avaient pas posé de RTT !</li>
</ul>
<ul>
<li>à <a href="http://www.tsr.ch/tsr/index.html?siteSect=200002&sid=10534439&cKey=1238759772000">300 interpellations</a> ;</li>
</ul>
<ul>
<li>à un ballet d’hélicoptères Puma<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#pnote-546-2" id="rev-pnote-546-2">2</a>]</sup> qui survolent régulièrement mon coin de banlieue... y compris à 4 h du matin (et ça fait du bruit, un Puma !) ;</li>
</ul>
<ul>
<li>à un blocage complet de l’autoroute, du nord au sud de l’agglomération, depuis ce matin, jusque samedi soir ; même la N83 (une autre artère vitale) est bloquée ; quant aux panneaux indiquant des déviations, je n’ai pas le souvenir d’en avoir vu ;</li>
</ul>
<ul>
<li>à une absence totale de poids lourds sur les routes, il faut bien qu’il y ait des bons côtés !</li>
</ul>
<p>Je souhaite bien du courage à mes concitoyens<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#pnote-546-3" id="rev-pnote-546-3">3</a>]</sup> qui vivent au centre-ville en « zone rouge », ou (pire) près des repaires de casseurs comme <a href="http://www.lalsace.fr/article/anti-otan-premiere-guerilla-urbaine-a-strasbourg---566112?symfony=72aff2671ee941f3e80ab3f3be779e97">Neudorf, Neuhof ou Meinau</a>... <a href="http://www.lalsace.fr/article/evitons-de-tomber-malade---545769">Il ne manquerait plus que j’ai besoin d’aller aux urgence ces jours-ci</a>...</p>
<p>Parmi les alternatives qui auraient été possibles à la perturbation d’un département et d’un <em>Land</em> (île isolé, base militaire, petite ville...), j’aime bien <a href="http://bruxelles.blogs.liberation.fr/coulisses/2009/04/un-rideau-de-fer-sest-abattu-sur-strasbourg.html#comment-6a00d83451b56c69e201156fca1ca9970b">cette suggestion : un des châteaux de la Loire</a> ! (Prestigieux, grand, proche de Paris, nombreuses hostelleries dans la région...)</p>
<p>Je n’ose commencer une estimation du CO2 balancé en l’air par tout ce bazar.</p>
<p>Vivement dimanche.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#rev-pnote-546-1" id="pnote-546-1">1</a>] Dixit<em> la radio locale.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#rev-pnote-546-2" id="pnote-546-2">2</a>] <em>Enfin, ça ressemble à un Puma tel que Wikipédia l’affiche. Je ne connais rien aux hélicoptères sinon des bribes de culture générale militaire héritées des défilés du 14 juillet à la télé, et je n’ai pas envie de devenir une cible en sortant de chez moi les observer à la jumelle.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#rev-pnote-546-3" id="pnote-546-3">3</a>] <em>Au sens primitif.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/04/03/%C3%89tat-de-si%C3%A8ge-%28suite%29#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/546
Ma ville en état de siège
urn:md5:1b7051f52e2cce7d3db63928ae01d386
2009-03-29T15:09:00+02:00
2011-06-03T08:25:03+02:00
Christophe
Res publica
Alsace
bon sens
chaos
cynisme
dommage
emmerdeurs
fichage
géopolitique
paranoïa
sécurité
terrorisme
tourisme
travail
<p>Le sommet de l’OTAN chez moi. Récit d’une ville en état de siège, première partie.</p> <p>L’OTAN fait un grand <em>pow wow</em> le ouikène prochain dans ma bonne ville de l’est de la France<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-1" id="rev-pnote-545-1">1</a>]</sup>. Il y aura notamment deux Présidents d’États occidentaux très connus<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-2" id="rev-pnote-545-2">2</a>]</sup>, B.O. et N.S.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-3" id="rev-pnote-545-3">3</a>]</sup>, dont les services de sécurité sont aussi connus pour être légèrement paranoïaques. Je ne parle pas des autres chefs d’État<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-4" id="rev-pnote-545-4">4</a>]</sup> <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-5" id="rev-pnote-545-5">5</a>]</sup> invités.</p>
<p>Il n’est plus possible de franchir le pont de l’Afrique<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-6" id="rev-pnote-545-6">6</a>]</sup> sans croiser moults pandores, flics, agents et keufs<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-7" id="rev-pnote-545-7">7</a>]</sup>. C’est la même chose pour l’autre pont par-dessus la Volga<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-8" id="rev-pnote-545-8">8</a>]</sup>. Je suis sceptique<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-9" id="rev-pnote-545-9">9</a>]</sup>, car un éventuel voleur de poule<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-10" id="rev-pnote-545-10">10</a>]</sup> ferait sûrement un petit crochet de deux heures de route par le voisin pays du Népal<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-11" id="rev-pnote-545-11">11</a>]</sup>, ou gaspillerait sûrement une journée pour venir de la capitale par notre TGV tout neuf<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-12" id="rev-pnote-545-12">12</a>]</sup>.</p>
<p>Quoique l’option du détour par l’intérieur du pays ne semble pas être spécialement heureuse : un collègue de passage, non natif de la région, a déjà été arrêté à l’extrême limite de l’agglomération, et interrogé par des gens en uniforme car sa voiture ne portait probablement pas le bon numéro de département<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-13" id="rev-pnote-545-13">13</a>]</sup>.</p>
<p>Les préparations vont bon train :</p>
<ul>
<li>les manifestants que nos restes de système démocratique obligent à laisser défiler sont parqués, histoire de les laisser bien mitonner et se monter le bourrichon ;</li>
<li>les plaques des égouts sont soudées dans la zone « sécurisée ».</li>
</ul>
<p>Dendrevi et simeda prochains<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-14" id="rev-pnote-545-14">14</a>]</sup>, ce sera pire :</p>
<ul>
<li>un tiers du centre de la ville va être complètement bouclé, avec carte délivrée aux résidents pour qu’ils puissent au moins rentrer chez eux ; ils ont pensé aux médecins de garde mais je me demande ce qui se passera pour les malheureux qui rentreront chez eux après trois semaines d’absences ;</li>
</ul>
<ul>
<li>les écoles de ces quartiers seront fermées ;</li>
</ul>
<ul>
<li>boulodromes, stades, piscines, gymnases : dans la zone <del>contaminée</del> orange, ce sera fermé (dommage la météo était idéale) ;</li>
</ul>
<ul>
<li>une bonne partie de l’administration de la ville aura autre chose à faire que sa mission habituelle ;</li>
</ul>
<ul>
<li>et en conséquence, même les médiathèques fermeront dans toute la Communauté Urbaine ;</li>
</ul>
<ul>
<li>pas de courrier pendant deux jours pour la « zone rouge » : les facteurs sont tous de dangereux gauchistes, c’est bien connu ;</li>
</ul>
<ul>
<li>la plupart des trains vont paraît-il circuler, mais pas vers le pays germanique voisin (<em>schade für diejenigen, die dort arbeiten...</em>) ;</li>
</ul>
<ul>
<li>pour les urgences, le plus grand hôpital de la ville, Bascaillou<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-15" id="rev-pnote-545-15">15</a>]</sup> a été quasiment réquisitionné ; on est prié d’éviter toute urgence médicale ou obstétrique ces jours-là ; le commun des mortels de banlieue est redirigé vers d’autres villes !</li>
</ul>
<ul>
<li>le réseau du tram du nord de la ville n’existera plus pendant deux jours ; malheur à celui qui doit traverser l’agglomération pour aller travailler et ne peut sacrifier de RTT ce jour.</li>
</ul>
<p>Au boulot, la secrétaire a résumé la situation par un lapidaire « C... (la patronne), vendredi tu peux fermer l’agence ! ». Comme nombre de collègues j’ai posé un jour. Même s’il était possible que je sois ce jour-là en clientèle, ce sera le bazar sur la route dans tout le département.</p>
<p>Car le plus drôle<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-16" id="rev-pnote-545-16">16</a>]</sup>, c’est la fermeture de l’autoroute A314159<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-17" id="rev-pnote-545-17">17</a>]</sup>, véritable colonne vertébrale du département et artère de l’agglomération. Un peu comme si on fermait le périph’ parisien un jour ouvré<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-18" id="rev-pnote-545-18">18</a>]</sup>. Ma tendre moitié n’a pas la latitude de prendre ses RTT quand elle veut, mais elle a la chance d’être du bon côté de l’agglomération et de connaître les petits chemins qui seront probablement saturés... (Le simeda aussi, qui, Murphy<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-19" id="rev-pnote-545-19">19</a>]</sup> oblige, est travaillé exceptionnellement pour elle ouikène-là…)</p>
<p>En fait, c’est tout le trafic du département et du <em>Land</em> de l’autre côté de la frontière qui est perturbé. Pour un Sélestat-Haguenau, il faudra passer par Saverne ! (<a href="http://www.bas-rhin.pref.gouv.fr/medias/fichiers/Carte_generale_des_deviations.jpg">Carte</a>) C’est la moindre des choses, les transports en commun seront gratuits les deux jours fatidiques, et les parkings-relais aussi (pour ceux qui arriveront jusque là, et si ledit parking-relais n’est pas dans la zone sécurisé, et donc fermé).</p>
<p>Tous les détails sont sur <a href="http://www.strasbourg.eu/international/sommet-otan?ItemID=2451198858">obersouffolschweinheim.eu</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-20" id="rev-pnote-545-20">20</a>]</sup>.</p>
<p>On notera par exemple, dans les questions-réponses :</p>
<blockquote><p><em>Que se passe-t-il si j’oublie mon badge, si je le perds ?</em><br /> <br />Un dispositif adapté est cours d’élaboration pour permettre en temps réel d’apporter une réponse à ce type de difficulté.</p></blockquote>
<p>Personnellement, ce genre de réponse bureaucratique non explicite me glace le sang. Qu’est-ce qu’un « dispositif adapté » face à un « voleur de poules » potentiel, pour des agents de sécurité sur les dents, fatigués après un mois de paranoïa collective, et éventuellement deux soirées de castagne contre des anti- ou alter-otanistes, le tout en Sarkozie<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-21" id="rev-pnote-545-21">21</a>]</sup> ?</p>
<p>Je me demande comment le prennent les commerçants. Dans l’hostellerie, la saturation doit être complète (beaucoup de monde est délocalisé à Baigner-Baigner<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-22" id="rev-pnote-545-22">22</a>]</sup> d’ailleurs). Déjà en période de session parlementaire les hôtels sont tous blindés. Certains restaurants devront faire aussi le plein de journalistes, mais entre les autochtones qui se terreront et les touristes qui fuiront une ville devenue inaccessible et à la partie touristique en état de siège, les restos gastronomiques feront grise mine. Pour le petit commerce classique, je prédis un contraste flagrant avec les ouikènes de soldes. Surtout dans les marchés qui ont été annulés.</p>
<p>Franchement, la prochaine fois, je leur serais reconnaissant de faire ça dans une autre ville, par exemple la riante Châlons-en-Champagne<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#pnote-545-23" id="rev-pnote-545-23">23</a>]</sup>, autre capitale régionale, riche de casernes à proximité pour parquer agents de sécurité et manifestants, au relief adapté au repérage à la jumelle de tout intrus, loin de tout centre industriel, mais à proximité relative du TGV. La population totale de la ville est inférieure à celle des quartiers de Strasbourg concernés, et là il n’y a pas de banlieue. Et pour le prestige de la France, les mines de boissons alcoolisée à bulles sont à proximité immédiate.</p>
<p><br /> <br /><em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2009/04/03/État-de-siège-(suite)">À suivre...</a></em><br /> <br /></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-1" id="pnote-545-1">1</a>] <em>Pour la sécurité des Présidents impliqués, le nom de la ville a été masqué.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-2" id="pnote-545-2">2</a>] <em>Pour la sécurité des États en question, leurs noms ne seront pas divulgués.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-3" id="pnote-545-3">3</a>] <em>Pour la sécurité des chefs d’État en question, leurs noms ne seront pas divulgués. En fait non, ne croyez pas ça, ce n’est même pas sûr qu’ils viennent.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-4" id="pnote-545-4">4</a>] <em>Pour leur sécurité, leur nombre ne sera pas divulgué ici. On précisera juste que c’est un entier strictement positif strictement inférieur au chiffre de la population mondiale.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-5" id="pnote-545-5">5</a>] <em>De toute manière, la télé française ne parlera probablement que de N.S. et de B.O.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-6" id="pnote-545-6">6</a>] <em>Pour la sécurité du pont, son nom a été échangé par celui d’un autre continent.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-7" id="pnote-545-7">7</a>] <em>Pour la sécurité des agents de sécurité en question, leur nom officiel a été remplacé par des sobriquets bien innocents.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-8" id="pnote-545-8">8</a>] <em>Pour la sécurité du fleuve frontalier en question, son nom a été remplacé par un autre nom de fleuve européen.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-9" id="pnote-545-9">9</a>] <em>Simple formule de style, cher agent des </em>Secret Services<em> qui épluchez les blogs de tous les habitants de la région ; je ne mets aucunement en doute l’efficacité finale des mesures de sécurité ici énoncées.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-10" id="pnote-545-10">10</a>] <em>Euphémisme né d’une (probablement dérisoire) tentative d’éviter un mot commençant comme </em>terreau<em> et finissant comme </em>touriste<em> qui a le malheur de déclencher l’attention de toutes les agences à trois lettres américaines et toutes celles à quatre lettres françaises. </em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-11" id="pnote-545-11">11</a>] <em>Pour la sécurité du pays en question, son nom a été remplacé par celui d’un autre petit pays neutre et montagneux, quoique nettement moins richement doté en coffres et institutions bancaires.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-12" id="pnote-545-12">12</a>] <em>Que nous avons payé de nos impôts régionaux à nous, rappelons-le encore, puisque nous ne sommes après tout que la région frontalière du premier partenaire économique de la France mais pas une destination de vacances privilégiée des Parisiens.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-13" id="pnote-545-13">13</a>] <em>Et comment vont faire les services de sécurité quand ledit numéro départemental aura disparu des plaques ?</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-14" id="pnote-545-14">14</a>] <em>Par sécurité, les noms des jours ont été subtilement cryptés.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-15" id="pnote-545-15">15</a>] <em>Pour protéger sa sécurité, comme d’hab...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-16" id="pnote-545-16">16</a>] <em>Rions jaune.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-17" id="pnote-545-17">17</a>] <em>Par sécurité, son code a été modifié.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-18" id="pnote-545-18">18</a>] <em>Aux Parisiens qui répondraient que vu son encombrement ça revient au même je réponds qu’ils n’ont hélas pas le monopole des bouchons aux heures de pointe.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-19" id="pnote-545-19">19</a>] <em>Ce nom n’a </em>pas<em> été crypté — ce serait vraiment attirer Son attention.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-20" id="pnote-545-20">20</a>] <em>Pour protéger sa réputation, le nom de la ville a été changé par un autre, certes inventé, mais typique de la région.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-21" id="pnote-545-21">21</a>] <em>Ça y est, je suis définitivement fiché.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-22" id="pnote-545-22">22</a>] <em>Pour sa sécurité, le nom de cette ville d’eau étrangère bourrée d’hôtels a été subtilement altéré par translation linguistique.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#rev-pnote-545-23" id="pnote-545-23">23</a>] <em>Bonjour à mon client de là-bas.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/03/27/Ma-ville-est-%C3%A0-si%C3%A8ge#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/545
La Dernière Technologie
urn:md5:ece66613b9fedd5b3b474dc3f4b1c79e
2009-03-20T00:00:00+01:00
2015-12-16T19:37:12+01:00
Christophe
Informatique : l’art du développement
abomination
bon sens
culture
dommage
développement
enseignement
expertise
informatique
intelligence
Microsoft
mème
ouverture d’esprit
perfectionnisme
perspective
provocation
réalité
SSII
travail
virtuel
économie de l’attention
éducation
évolution
<p>“<em>I’ve just worked hard to learn the previous technology. Can you promise me that, if I learn this one, it will be the last one I ever have to learn?</em>”</p> <p>Perle trouvée sur <a href="http://hardware.slashdot.org/comments.pl?sid=602189&cid=24037133" hreflang="en">Slashdot</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/01/21/La-Derni%C3%A8re-Techno#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>, en commentaire aux annonces d’Intel sur les habitudes à changer avec les futures processeurs massivement multicœurs :</p>
<blockquote><p>“I’m reminded of an anecdote told to me during a presentation. The presenter had been introducing a new technology, and one man had a concern: ‘I’ve just worked hard to learn the previous technology. Can you promise me that, if I learn this one, it will be the last one I ever have to learn?’ The presenter replied, ‘I can’t promise you that, but I can promise you that you’re in the wrong profession.’'<br /> <br /> (Traduction imparfaite : « Ça me rappelle une anecdote qu’on m’a racontée pendant une présentation. Le conférencier présentait une nouvelle technologie, et un homme avait un souci : “J’ai travaillé dur pour apprendre la technologie précédente. Pouvez-vous me promettre que si j’apprends celle-là, ce sera la dernière que j’aurai jamais à apprendre ?” Le présentateur répondit : “Je ne peux pas vous promettre ça, mais je peux vous assurer que vous êtes dans la mauvaise profession.”)<br /> <br />GatesDA, <a href="http://hardware.slashdot.org/comments.pl?sid=602189&cid=24037133" hreflang="en">Slashdot.org, 02/07/2008</a></p></blockquote>
<p>Bien dit ! Je suis parfois fasciné par le non-intérêt de certains collègues à ne pas chercher à apprendre de nouvelles technos. Mon problème serait plutôt l’inverse (trop vouloir apprendre alors que je n’en ai jamais le temps), mais <em>refuser</em> d’apprendre un nouvel outil quand l’occasion professionnellement justifiable se présente, ça me dépasse. Même si un ras-le-bol peut se faire jour face à certains éditeurs qui changent leurs bibliothèques tous les trois ans<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/01/21/La-Derni%C3%A8re-Techno#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>, le problème se pose en terme de temps perdu, de maintenance de logiciels d’époque différentes, pas d’intérêt en terme d’apprentissage. Même quand on considère que l’informatique a atteint sa perfection dès l’enfance avec Unix, il y a toujours quelques trucs à glaner à connaître les concurrents (il n’y a et n’y avait pas que Windows). Même l’<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/19/186-prise-de-tete-en-abap">ABAP</a> a quelques idées sympas.</p>
<p>Je suis peut-être déformé par ma sous-branche professionnelle : dans le service, on est presque censé connaître tout sans jamais passer une seconde en veille technologique ; plus y en a sur le CV, mieux on peut se recaser chez un autre client ou employeur ; se faire piéger dans une technologie en voie d’extinction ou toujours dans le même contexte relève du suicide professionnel. Cependant, aucun informaticien ne peut dire ce avec quoi il travaillera réellement dans dix ans, même si son cœur de métier reste le même.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/01/21/La-Derni%C3%A8re-Techno#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Site, rappelons-le, qui n’a d’intérêt que par l’élite de sa population de </em>geeks<em> commentateurs, et pas par son intérêt journalistique, qui serait même négatif.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2009/01/21/La-Derni%C3%A8re-Techno#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Voir les technos MS d’accès aux données...</em></p></div>
Les marges des déserts, berceaux des civilisations
urn:md5:f3bcdc86b231032268e0de808418bd01
2009-01-01T12:14:00+01:00
2009-04-13T10:40:06+02:00
Christophe
Histoire
Afrique
Amérique
Antiquité
auto-organisation
catastrophe
civilisation
climat
complexité
eau
effet de serre
Empire romain
Europe
exaptation
Grandes Invasions
histoire
Moyen Âge
optimisme
paradoxe
science
sociétés primitives
temps
théorie
travail
ténacité
écologie
économie
éons
évolution
<p>Une révé­la­tion sur la simul­ta­néité de l’appa­ri­tion de l’agri­cul­ture et de la civi­li­sa­tion dans les dif­fé­ren­tes par­ties du monde.</p> <h3>Simul­ta­néité du génie humain</h3>
<p>La révé­la­tion m’est venue grâce à un arti­cle du der­nier <em>Pour la Science</em> (n°375 de jan­vier 2009) : <em>Les mar­ges de désert, ber­ceaux des civi­li­sa­tions</em> de Bern­hard Eitel.</p>
<p>Jusqu’ici je m’étais tou­jours demandé com­ment il se fai­sait que les dif­fé­ren­tes civi­li­sa­tions humai­nes aient évo­lué sépa­ré­ment jusqu’à des sta­des pas trop dif­fé­rents les unes des autres, alors que l’huma­nité (<em>Homo sapiens</em>) a pres­que 200 000 ans au comp­teur. Cer­tes, au début, elle fut long­temps con­cen­trée en Afri­que<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/12/29/Les-marges-des-deserts-berceaux-des-civilisations#pnote-504-1" id="rev-pnote-504-1">1</a>]</sup>. Mais l’agri­cul­ture, l’écri­ture sont appa­rues en fait très récem­ment (je trouve des dates dif­fé­ren­tes sur le web, mais on tourne autour de 10 000 av. J.-C.). Un peu avant (-16 000), les chas­seurs déco­raient Las­caux.</p>
<p>Et atten­tion, on ne parle pas d’une décou­verte qui a donné un tel avan­tage à ses décou­vreurs qu’ils se sont répan­dus par­tout sur la pla­nète : l’agri­cul­ture a été décou­verte plu­sieurs fois, et l’écri­ture aussi. Si en Europe tout cela est bien de l’impor­ta­tion (il a même fallu pas mal de siè­cle depuis l’Ana­to­lie jusqu’à l’Atlan­ti­que), les Amé­ri­ques ont évo­lué indé­pen­dam­ment. Et mayas, aztè­ques, incas… con­nais­saient agri­cul­ture et écri­ture. Même si leurs civi­li­sa­tions ont été balayées par les Euro­péens, ces peu­ples n’avaient au plus « que » quel­ques siè­cles de retard sur l’Eura­sie. C’est un petit écart sur de tel­les durées.</p>
<p>Sans avoir trop réflé­chi à la ques­tion, je ne voyais que trois pos­si­bi­li­tés :</p>
<ul>
<li>une com­mu­ni­ca­tion entre les dif­fé­rents grou­pes : très dou­teux à l’échelle de plu­sieurs con­ti­nents, du moins avant l’inven­tion de la « civi­li­sa­tion », et cette com­mu­ni­ca­tion se fai­sait plu­tôt par migra­tion lente comme le néo­li­thi­que en Europe ;</li>
<li>une sorte de « fata­lisme », un groupe humain suf­fi­sam­ment impor­tant décou­vrant fata­le­ment l’agri­cul­ture au bout de tant d’années maxi­mum, et la masse cri­ti­que a été atteinte à peu près simul­ta­né­ment à plu­sieurs endroits à la fois car il y avait de nom­breux endroits où cela était pos­si­ble, et les pre­miers ont « étouffé » les autres ;</li>
<li>une cause exté­rieure glo­bale qui menait à l’agri­cul­ture et/ou la séden­ta­ri­sa­tion (laquelle est appa­rue la pre­mière ?), puis en cas­cade à l’explo­sion démo­gra­phi­que, les socié­tés, les États, etc. Mais quelle serait cette cause ?!?</li>
</ul>
<h3>La cause cli­ma­ti­que à dou­ble détente</h3>
<p>Selon l’arti­cle, c’est lumi­neux. La rai­son est cli­ma­ti­que : d’une part le réchauf­fe­ment de la pla­nète mar­que le pas après la fin de la gla­cia­tion ; d’autre part et assez con­tre-intui­ti­ve­ment, ce réchauf­fe­ment aug­mente la plu­vio­mé­trie dans les déserts.</p>
<ul>
<li>Nos ancê­tres se répan­dent un peu par­tout pen­dant les diver­ses gla­cia­tions et pério­des inter­gla­ciai­res jus­que la fin de la der­nière vers -18 000.</li>
<li>Il y a 8000 ans le cli­mat est devenu très clé­ment pour les chas­seurs-cueilleurs, et les déserts ont qua­si­ment dis­paru : le Sahara notam­ment est deve­nue une savane pleine de gibiers, sans qu’y sévis­sent les mala­dies tro­pi­ca­les. Eitel sug­gère que l’accrois­se­ment démo­gra­phi­que con­sé­quent y est la cause de l’inven­tion de l’éle­vage.</li>
<li>Après cette période de réchauf­fe­ment un léger refroi­dis­se­ment pro­vo­que un nou­veau dés­sè­che­ment des déserts. Les popu­la­tions, pié­gées, se réfu­gient dans les oasis - par exem­ple la plus grosse d’entre elles, le Nil ! Popu­la­tion impor­tante et néces­sité de s’adap­ter mènent à l’agri­cul­ture, l’irri­ga­tion, des sur­plus, du com­merce, des guer­res, une orga­ni­sa­tion crois­sante, des royau­mes, bref la société. Eitel note que ces royau­mes appa­rais­sent d’abord dans les endroits les plus secs et dif­fi­ci­les au bord du Nil, au sud !<br />Le phé­no­mène se repro­duit à d’autres endroits, notam­ment le Crois­sant fer­tile (au bord d’un désert et près de grands fleu­ves). Eitel détaille l’exem­ple récem­ment décou­vert du sud du Pérou : le désert de l’Ata­cama devenu humide est colo­nisé (plus tard qu’en Afri­que), puis s’assè­che et la popu­la­tion se regroupe dans des oasis flu­via­les. La den­sité de popu­la­tion a le même effet qu’ailleurs : séden­ta­ri­sa­tion, éle­vage, céra­mi­que, société, etc. <br />Un regret : l’arti­cle ne détaille pas l’évo­lu­tion dans les autres grands cen­tres de civi­li­sa­tion qui nais­sent à la même épo­que : la Chine, l’Indus, le Niger (même si ces deux der­niers sont là aussi des fleu­ves au bord d’un désert).</li>
</ul>
<h3>Pers­pec­tive</h3>
<p>Bref : expan­sion démo­gra­phi­que due à un cli­mat clé­ment, re-déser­ti­fi­ca­tion, con­cen­tra­tion, et inven­tion donc pres­que simul­ta­née de la civi­li­sa­tion à divers endroits.</p>
<p>Nous dépen­dons du cli­mat, ce n’est pas nou­veau. En marge de l’arti­cle, une courbe mon­tre que, plus récem­ment, celui-ci a joué un rôle : des opti­mums cli­ma­ti­ques ont vu l’apo­théose romaine ou l’expan­sion du Moyen Âge (entre l’An Mil et la Peste Noire, la popu­la­tion fran­çaise a plus que dou­blé !), et un refroi­dis­se­ment a mar­qué l’effon­dre­ment de l’Empire romain.</p>
<p>La ques­tion se pose quant à savoir si nous serons capa­bles de <em>nous</em> adap­ter au chan­ge­ment cli­ma­ti­que accé­léré actuel. Savoir qu’une période chaude n’est pas for­cé­ment syno­nyme de déser­ti­fi­ca­tion géné­rale redonne de l’espoir, encore ne fau­drait-il pas déboi­ser ni faire mon­ter le ther­mo­mè­tre trop haut trop vite…</p>
<p>Une leçon de morale pour finir : la « civi­li­sa­tion » (agri­cul­ture, société…) n’a pas été inven­tée par les peu­ples situés aux endroits les plus favo­ra­bles, mais par ceux qui, accu­lés par leur nom­bre et la raré­fac­tion des res­sour­ces, ont dû évo­luer pour ne pas dis­pa­raî­tre. « Ce qui ne me tue pas me rend plus fort » et « c’est au pied du mur qu’on apprend à grim­per. »</p>
<p><strong>PS</strong> : Bonne année ! L’année 2009 pourra dif­fi­ci­le­ment déce­voir, ce sera son bon côté.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/12/29/Les-marges-des-deserts-berceaux-des-civilisations#rev-pnote-504-1" id="pnote-504-1">1</a>] <em>À moins que la théo­rie de l’évo­lu­tion simul­ta­née d’</em>Homo erec­tus<em> en </em>Homo sapiens<em> sur tous les con­ti­nents à la fois soit la bonne, mais j’ai cru com­pren­dre qu’elle était en perte de vitesse.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/12/29/Les-marges-des-deserts-berceaux-des-civilisations#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/504
Les joies de la SSII (8) : Imputer, oui, mais sur quoi ?
urn:md5:e3e917360498c06d1246abee026ff1d1
2008-10-18T15:06:00+00:00
2020-03-31T15:33:16+00:00
Christophe
Il faut bien manger
court terme
cynisme
mercenaire
SSII
travail
<p>Le petit consultant de SSII n’a pas en réalité pour but de coder, développer, spécifier ou écouter le client, mais de facturer. Détail...</p> <p>Pour beaucoup d’employés, le lien entre le temps passé à travailler et l’argent qui rentre dans les caisses de l’entreprise n’est pas direct. C’est le travail fourni au final qui compte, le résultat du projet, etc.</p>
<p>En SSII, ce lien est direct, immédiat, total, brutal : le client paye à la journée, chaque jour non facturé est un manque à gagner énorme pour l’employeur. Il existe des projets « au forfait » où le client paie un produit fini quel que soit le temps passé ; mais évidemment, plus le salarié passe de temps sur ce projet, plus la marge fond. Dans l’idéal, le projet doit être <del>bâclé</del> livré le plus vite possible, pour que les quelques jours gagnés soient utilisés à faire une prestation ailleurs.</p>
<p>Cette marge est l’obsession de tout <em>manager</em> de SSII, autour de quoi doit graviter tout le reste. Celui qui ne le pense pas comprend très vite où est son intérêt et retransmet la pression, et ce même s’il reste humain par la suite (sisi, j’en connais).</p>
<h3>Rêve, régie, forfait</h3>
<p>Dans les rêves les plus fous des dirigeants de SSII, les projets se font tout seuls sans que personne n’« impute » dessus, et atteignent le Saint Graal de la marge à 100%.</p>
<p>Plus réalistement, dans la grande SSII connue où j’ai imputé pendant quelques années, la marge minimale demandée au chef de projet était un monstrueux 50% (brute, comprenant salaires et frais de déplacement et hébergement, hors congés). Ce siècle n’avait pas deux ans, je ne sais pas ce qu’il en est maintenant. Une fois déduits le coût formation hors projet, le salaire des dirigeants de l’agence, celui des secrétaires, les frais de structure, la prime du commercial, le bonus des dirigeants, le support bureautique interne, les primes des <em>top managers</em> du groupe et autres détails, au niveau du groupe la marge finale était d’une poignée de points.</p>
<p>Dans un cas réaliste et fréquent (bien que se raréfiant), le consultant est casé « en régie », donc mis à disposition du client et sous ses ordres, donc sans risque pour la SSII : pendant ces jours, le prestataire coûte tant et ramène tant, ce qui se négocie et on peut tenter de gratter sur les frais ; mais on ne cherche pas à torcher le plus vite possible une prestation pour la facturer (la pression sur le petit pion s’exercera directement par le client). Ce genre de prestation peut durer des années, avec le danger que le salarié soit oublié par son employeur, l’oublie en retour, se fasse embaucher par son client, ou attaque SSII et prestataire pour <a href="http://dchaffiol.free.fr/info/ssii/dm/art_dmLoi.htm">délit de marchandage</a>...</p>
<p>Mais ce cas est une minorité, les clients préfèrent eux les projets « au forfait » : une tâche, un prix, et on essaie de tirer le maximum du prestataire. La différence fondamentale entre « régie » et « forfait » réside dans la question archi-fondamentale <strong>« QUI se mange les coûts en cas de dépassement du temps imparti ? »</strong> : en forfait, c’est la SSII ; en régie c’est le client. Le reste est affaire de négociation entre grandes personnes.</p>
<p>Au forfait, le planning est donc taillé au cordeau : il faut tant de jours pour telle tâche, taillée de manière optimiste, avec dix ou vingt pour cent en sécurité. Comme le client regarde le prix, et souvent que ça, ce planning est donc parfois <em>très</em> serré. (Parfois aussi le client avale n’importe quoi, y compris des plannings réalistes, et paie ainsi sa non-compétence technique.)</p>
<p>De même, il est hors de question qu’entre deux missions il y ait le moindre « temps mort », l’abominable « intercontrat ». D’ailleurs dans une SSII, le premier critère pour une <del>augmentation</del> non-diminution de salaire (inflation déduite) est le taux d’activité - et ce même si le prestataire de base va là on lui dit quand on lui dit, ce qui relève plutôt du travail des <em>managers</em> et commerciaux. J’ai même vu des gens payés au variables en regard de leur taux d’activité. C’est un puissant motivant pour faire accepter aux gens une mission de trois mois à Pétaouchnok loin de leur famille.</p>
<h3>No Murphy</h3>
<p>Il n’y a donc pas de temps non pour les impondérables. Ce Քਆᇥຜ�ॡჅ๛ de Word a bouffé la moitié de votre documentation de formation utilisateur ? Oracle a décidé que votre base était trop rapide et a changé pour le pire tous les plans d’exécution ? Le client change une base fondamentale des spécifications la veille de la livraison sans qu’il y ait de trace écrite de son accord pour l’ancienne version ? Le client ne commence à recetter que peu avant la mise en production ? Le réseau déjà saturé de votre agence est inutilisable quatre heures par jours alors que vous ne travaillez que par Citrix ? Le client vous couvre d’une avalanche de tickets/incidents/cas/flips/bugs à 90% identiques ou non pertinents ? Votre PC rend l’âme et vous devez vous débrouiller avec une vieille brouette qui met quinze minutes à lancer l’outil de développement ? Le client est incapable de vous faire un rapport d’incident un minimum détaillé et nécessite des heures d’interrogatoire pour lui tirer les verts du nez et enfin comprendre son problème ?</p>
<p>...Dans tous les cas, la perte de temps et les heures sup pour rattraper le retard seront pour votre pomme. Cadre, ça veut dire « forfait temps ».</p>
<p>Pas de temps non plus pour l’administratif : les notes de frais qui peuvent être longues à remplir, à négocier avec la secrétaire ou son chef, la DRH..., la paperasse interne, les relevés d’activité à envoyer toutes les semaines, les lettres et sites d’information de l’entreprise... Certes rarement de grandes choses mais elles s’additionnent. Je ne me plains pas, mais mes anciens collègues cumulant des fonctions de chefs de projets avec leur travail habituel perdaient un temps fou à ces bêtises. Sans oublier que les outils dédiés à cela sont rarement des parangons d’ergonomie. Ce n’est pas parce qu’une SSII possède de nombreuses compétences qu’elles sont mises au service de l’infrastructure maison : les cordonniers sont les plus mal chaussés...</p>
<p>Pas de temps pour la veille technologique (lecture des blogs et journaux du secteur, « jeu » avec quelques softs nouvellement sortis, séminaires de présentation...). Si l’on ne fait pas gaffe, une mission longue avec la tête perpétuellement sous l’eau vous déconnecte complètement de votre propre secteur d’activité.</p>
<p>Corollaire : les débutants sont priés d’être aussi efficaces que les gens expérimentés. Une boîte intelligente vous expédie en formation, et zou, au front ! Une boîte encore plus intelligente vous plonge dans une équipe où vous apprendrez le métier par osmose, mais... les autres membres de l’équipe, eux, ont en général du travail par-dessus la tête, et les questions bombardées par un débutant enthousiaste les saturent assez vite.</p>
<h3>Temps masqué</h3>
<p>Évidemment, le travail « secondaire » doit se faire forcément à un moment, les PC doivent s’installer et se configurer, la transmission des connaissances se faire, et il faut se tenir un minimum au courant de ce qui se passe dans sa propre boîte ou dans le milieu. De plus, il serait aberrant de consacrer quatre jours dans la semaine au « vrai » travail, et de faire tout le reste (administratif, veille, discussions à la machine à café) le vendredi.</p>
<p>Mais au total cela revient au même. Quand un client paie une journée de développement, il faut comprendre une demi-heure de survol des nouvelles sur divers sites et blogs, un quart d’heure à écouter radio-moquette à la machine à café ou sur le toit de l’immeuble autour du cendrier (ce peut être vital), une demi-heure à discuter par email ou téléphone à propos d’autres projets (compensés par le temps qu’on consacrera au présent projet quand on imputera sur un autre...), l’exploration d’une nouvelle fonctionnalité que l’on vient de découvrir, la discussion avec un collègue qui revient de formation sur un logiciel concurrent... Au final le premier poste de perte de temps reste cependant la réunionnite.</p>
<h3>La réinvention perpétuelle de la roue</h3>
<p>Pas de temps non plus (et c’est pire) pour le recyclage des informations récoltées durant un projet, la « capitalisation ». Je l’ai vue souvent louée, parfois verbalement encouragée, mais en pratique, jamais vue : rarissimes sont les projets qui ne se terminent pas de manière un peu tendue, à resserrer les derniers boulons, même si tout va bien. Les consultants en fin de projet commencent déjà à faire chauffer les moteurs pour la mission suivante, il est hors de question pour leur chef de les laisser en intercontrat une seule journée s’il peut l’éviter ; et le client, évidemment, va refuser de payer des jours pour la capitalisation des connaissances chez son fournisseur.</p>
<p>Au mieux, le client va payer sans le savoir pour la capitalisation purement interne et personnelle que les intervenants se feront sur leur portable ou clé USB - sous forme de copie de morceaux de programmes ou docs qui pourraient bien resservir plus tard, parfois dans la plus parfaite illégalité théorique bien que l’intention de nuire soit nulle et que ça arrange tout le monde - mais quand un employé a compris que rien n’est plus important pour son augmentation que la satisfaction du client dans le respect des délais et des marges, et que le reste relève de l'accessoire total tant qu’on ne se fait pas piquer, les interrogations de pur principe s’envolent très vite.</p>
<p>D’ailleurs pour capitaliser il faut une infrastructure, et un <em>management</em> qui le gère. Cela veut dire investir du pognon à gérer des serveurs et des gens pour les faire tourner et les alimenter. Ça existe, je l’ai vu, mais de manière tellement mal implémentée (notamment sur un intranet inaccessible de l’extérieur) que l’utilité réelle était nulle, surtout pour « techniques » comme moi.</p>
<p>Puis le marché se re-tend, les gens concernés doivent retourner « au front » faire du chiffre, les chefs changent, et on oublie. Je ne crois plus en la capitalisation hors d’une petite équipe où les gens se connaissent, par exemple à l’échelle d’une agence. Que quelqu’un me dise que si, ça existe…</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">Partie 1 : Angoisse existentielle</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs">Partie 2 : Plein plein de chefs</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">Partie 3 : Le portable</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant">Partie 4 : Le consultant-migrant</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser">Partie 5 : Se battre pour bosser</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail">Partie 6 : Les joies de l’accès à distance</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/12/04/447-les-joies-de-la-ssii-7-un-expert-sisi">Partie 7 : Un expert, sisi !</a><br />
Partie 8 : Imputer, oui, mais sur quoi ?</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/18/480-les-joies-de-la-ssii-8-imputer-oui-mais-sur-quoi#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/59
Les bonnes idées de SAP
urn:md5:1f61d4aef9afa936517b4f8bfb96ff34
2008-10-04T09:11:00+00:00
2011-06-01T21:01:58+00:00
Christophe
Informatique lourde
ergonomie
ERP
informatique
SAP
totalitarisme
travail
<p>Contrairement à mon habitude je ne vais pas dire ici que des méchancetés sur SAP vu du côté du développeur. Il y a de bonnes idées en technologie ou en ergonomie à reprendre.</p> <p><em>(Le brouillon de ce billet a attendu publication depuis au bas mot un an et demi. N’ayant plus accès à du SAP, et n’ayant aucune intention de m’y remettre, je renonce à le compléter et le jette dans les index des moteurs de recherche. Le contexte reste le SAP R/3 que j’ai connu en 2006, il faudrait voir les dernières versions.)</em></p>
<p>Comme dirait <a href="http://nobox.fr/">Kooorrg</a>, cet article contient 10% de râlage.</p>
<p>J’ai déjà clamé ici ma déception de SAP et de l’ABAP. Du point de vue du développeur, SAP est un mélange d’archaïsmes des années 80 traînés de force dans les années 90, et l’ABAP est un des langages les plus limités que je connaisse (et pourtant le PL/SQL d’Oracle, le concurrent, n’est pas très <em>sexy</em>) ; sauf peut-être sa version objet, dont la puissance certaine est étouffée par la verbosité du langage et l’<em>over-engineering</em> qu’on y sent à plein nez<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#pnote-174-1" id="rev-pnote-174-1">1</a>]</sup>.</p>
<p>Cette fois je vais tenter d’être positif : SAP a ses bons côtés, des bonnes idées qui facilitent la vie et mériteraient d’être reprises chez le concurrent (je ne me souviens pas de les y avoir vues sur Oracle Applications). Cet ERP n’est pas devenu numéro 1 uniquement par sa richesse fonctionnelle et son marketing abrutissant<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#pnote-174-2" id="rev-pnote-174-2">2</a>]</sup>.</p>
<h3>Les variantes</h3>
<p>Les variantes constituent un simple gadget au premier abord, mais elles se révèlent en fait très pratiques et font gagner un temps fou. En arrivant dans un écran, l’utilisateur doit choisir parfois une flopée de paramètres : type de commande, fourchette de dates, clients, pays... La saisie faite, il sauvegarde (<em>Ctrl-S</em> directement dans le formulaire de saisie), il donne un nom à la variante, et ce masque de recherche peut alors être réutilisé par la suite.</p>
<p>C’est très utile pour éviter de ressaisir les mêmes valeurs chaque matin ou lors de dizaines de tests identiques en développement. Indispensable également pour cadrer ou modifier ce que l’utilisateur doit entrer, en lui imposant un masque précis sur son écran standard (par défaut ou pas).</p>
<p>(Seul reproche : pour qu’un masque soit utilisable sur une transaction pour tous les utilisateurs, il faut que son nom commence par <code>CUS&</code>, ce n’est pas une case de paramétrage à cocher et pas intuitif...)</p>
<h3>Double clic</h3>
<p>Dans beaucoup d’écran, mais pas tous, un double-clic sur un objet (par exemple un numéro de client) peut mener directement sur l’écran de visualisation dudit client. Très pratique, même si l’hyperlien n’est pas un concept révolutionnaire.</p>
<p>À l’inverse, sous Oracle Applications 11i (fondamentalement un « client lourd » en Java), je voyais en permanence les utilisateurs noter un numéro de commande ou de produit au stylo sur leur sous-main, changer d’écran (voire de « responsabilité », les menus n’intégrant pas tous les écrans accessibles à l’utilisateur), et re-rentrer le numéro sur le masque de recherche. Oracle Appli a rattrapé son retard sur ce point dans les modules récents purement « web ».</p>
<h3>Matchcode</h3>
<p>Non disponible partout, hélas, le <em>matchcode</em> permet de spécifier des critères de recherche beaucoup plus fins qu’une simple fourchette. Par exemple, dans un champ de recherche de numéros de commandes, un <em>matchcode</em> pourrait être « commandes de 500 à 999 sauf de 800 à 803, plus la 1012, moins la 503 ».</p>
<p>Impossible de faire ça simplement avec Oracle Applications à ma connaissance.</p>
<h3>Les mandants</h3>
<p>Une base SAP divise ses tables en « mandants ». Chacun correspond à ce que j’appelle une « vision du monde », à savoir un ensemble de données et (parfois) des objets comme des rapports. Peuvent cohabiter dans un même système un mandant de paramétrage, un mandant de développement sans donnée importante, et un mandant de test avec ses données réalistes.</p>
<p>Un rafraîchissement d’un environnement de développement ou recette depuis la production peut se limiter à écraser les données d’un mandant par les nouvelles sans effacer ce qu’il y a ailleurs (paramétrage…).</p>
<p>Techniquement, ce mandant est la première colonne de chaque clé primaire des tables de la base.</p>
<p>Le concept ne va pas complètement au bout, dans le sens où il existe des objets « intermandants », par exemple les programmes, fonctions... en ABAP. On ne peut donc pas aller jusqu’à avoir une version de développement et une de production d’un programme sur un même système. De plus, certains outils de développement dépendent <em>quand même</em> du mandant (par exemple l’antédiluvien SAPscript).</p>
<h3>Les transports</h3>
<p>Chez le client Oracle Applications où j’ai presté, les mises en production consistaient en une copie manuelle des scripts <em>shell</em> et PL/SQL entre les machine de dév’ et machine de prod’. Avec CVS ou un autre outil le principe serait resté le même : l’intégrité du système est gérée à l’extérieur, et différents systèmes sont techniquement et logiquement isolés (peut-être y a-t-il des outils dédiés ?).</p>
<p>SAP fonctionne par contre par transport d’ordres. C’est le bon côté d’un système qui se veut totalitaire et exige que tout passe par lui : au moins il peut imposer une certaine cohérence et un certain contrôle sur sa propre évolution. De plus, il tient compte de l’existence de plusieurs systèmes SAP les uns à côté des autres.</p>
<p>Les « ordres » regroupent du paramétrage, ainsi que des ensembles de programmes d’un même ensemble ou dépendant les uns des autres. Les ordres tiennent compte des numéros de version, donc un programme peut être dans trois versions différentes sur les environnements de développement, test et production sans mélange. Les utilisateurs autorisés au sein du système approuvent et déclenchent le transfert des ordres entre dév’, recette, prod’...</p>
<p>Les problèmes récurrents sont plus liés au principe qu’à l’outil : dépendances non techniques à vérifier, ordre des transports à maintenir, etc.</p>
<h3>Enregistrements de transactions</h3>
<p>Quand il s’agit d’importer des données, SAP est très ouvert... pourvu que l’on parle son langage ! En clair il faut formater les fichiers sous forme d’<a href="http://help.sap.com/saphelp_40b/helpdata/fr/0b/2a60ef507d11d18ee90000e8366fc2/content.htm">Idocs</a> ou de <a href="http://help.sap.com/saphelp_40b/helpdata/fr/e5/077c824acd11d182b90000e829fbfe/content.htm">fichier Batch Input</a>, un style assez pénible avec des lignes d’entêtes et d’autres de détail. Il y a plusieurs autres outils d’import comme les deux précités ; en fait cela dépend du module et de ce qu’on veut importer, le choix n’a rien d’évident. Comme souvent dans SAP, la méthode dépend de la strate géologique impliquée. Il y a sans doute des <em>web services</em> pleins de XML plus standards à présent dans des développements récents, je doute que cela touche les modules anciens de finance ou de ventes. (D’ailleurs, l’interfaçage avec SAP est une option ruineuse pour nombre de produits de manipulation de données comme les ETL.)</p>
<p>En dernier recours existe un outil antédiluvien mais bien pratique, un bête enregistreur de transactions à l’écran, qui génère un exemple de fichier qui va bien, et que l’on peut utiliser comme modèle pour rejouer des transactions comme si elles étaient entrées manuellement à l’écran, en déclenchant tous les <em>triggers</em>, <em>user exits</em>, etc. Un peu rustique avec quelques côtés sombres, mais ça marche bien et ça a le grand mérite d’exister.</p>
<p>Tous ces outils d’import nécessitent un apprentissage car leur utilisation n’a rien d’intuitive (enfin, peut-être que si après des années sur SAP, je me suis arrêté à 11 mois et demi...). Le cours SAP dédié à ces choses dure une semaine alors qu’un jeu d’API bien foutues ou de tables d’import aurait rempli correctement le besoin. (Comme chez le concurrent Oracle Applications par exemple ; je me suis battu avec ses API et imports à cause de leurs <em>bugs</em> et limites, rarement pour me demander avec quoi importer des données. Seul manque réel d’Oracle Appli : l’outil de simulation d’entrée par les écrans utilisateurs.)</p>
<h3>Cadobonus</h3>
<p><strong>PS</strong> : En bonus, <a href="http://www.sapdesignguild.org/community/design/golden_rules.asp" hreflang="en">10 Golden Rules for Bad User Interface</a> dans un contexte SAP. Des généralités vagues avec lesquelles tout le monde sera d’accord. Il est rigolo de constater que SAP R/3 suit méticuleusement presque toutes ces anti-règles.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#rev-pnote-174-1" id="pnote-174-1">1</a>] <em>Comprendre : aucune élégance dans le langage. On doit être à l’opposé de l’<a href="http://en.wikipedia.org/wiki/Objective_C" hreflang="en">Objective C</a> ou de <a href="http://en.wikipedia.org/wiki/Ruby_programming_language" hreflang="en">Ruby</a>. Un langage à l’allemande, façon Panzer.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#rev-pnote-174-2" id="pnote-174-2">2</a>] <em>Propagande totalement orientée vers les décideurs et </em>managers<em>, pas du tout vers les développeurs. Quand ces derniers sont concernés par SAP, leur entreprise a </em>déjà<em> décidé de l’acheter, donc ce ne sont pas eux qu’il faut convaincre. Certes le choix du logiciel doit se faire sur ce qu’il apporte à l’entreprise plus que sur sa beauté technique ; d’un autre côté celle-ci a un impact direct sur la lourdeur des coûts de développement, maintenance, formation...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/174
Une chose que je ne pensais pas possible...
urn:md5:429c7cf589710c17e854a6b017d18f99
2008-09-23T22:39:00+00:00
2011-06-01T17:38:30+00:00
Christophe
Informatique militante et technologie
citation
communication
complexité
dommage
dysfonctionnement
informatique
réseau
surréalisme
travail
évolution
<p>Hier j’ai vu une chose qui m’aurait semblé à peu près inconcevable il y a quinze ans : mon téléphone a rebooté devant moi.</p> <p>C’est un de ces modèles en VoIP que nos patrons ont décidé de nous offrir pour (espérons) économiser de l’argent au final. Il y a plus de touches que sur le clavier de mon PC, et il faut une formation pour apprendre à s’en servir. Le coût en journées perdues est déjà impressionnant mais ça a mis de l’ambiance. Et puis ça fait encore une messagerie à traiter...</p>
<p>Bref, apparemment il y a eu une coupure réseau ou une mise à jour du logiciel, et tous les téléphones de l’agence ont brutalement affiché logo, informations de connexion réseau et barres de progression (tant pis pour ceux qui téléphonaient).</p>
<p>Cette histoire me rappelle furieusement <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/12/251-as-easy-to-use-as-my-telephone">ma citation du jour du 12 octobre 2006</a> :</p>
<blockquote><p>“<em>I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.</em>”<br /><br />(« J’ai toujours souhaité que mon ordinateur soit aussi facile à utiliser que mon téléphone ; mon souhait a été exaucé car je n’arrive plus à utiliser mon téléphone. »)<br /><br /><a href="http://fr.wikipedia.org/wiki/Bjarne_Stroustrup" hreflang="fr">Bjarne Stroustrup</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/09/23/544-une-chose-que-je-ne-pensais-pas-possible#pnote-479-1" id="rev-pnote-479-1">1</a>]</sup> (attribué)</p></blockquote>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/09/23/544-une-chose-que-je-ne-pensais-pas-possible#rev-pnote-479-1" id="pnote-479-1">1</a>] <em>Qui s’y connaît un petit peu en informatique, il a juste inventé le C++.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/09/23/544-une-chose-que-je-ne-pensais-pas-possible#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/479
L’abominable BO (suite) : de R2 à 3.0 et de BO à SAP et une pincée de schizophrénie web
urn:md5:89368638b9cdf95d2323e57c0966255e
2008-08-22T22:43:00+00:00
2011-06-01T13:22:10+00:00
Christophe
Informatique lourde
bug
Business Objects
dommage
dysfonctionnement
développement
ergonomie
foutage de gueule
informatique
prise de tête
sabotage
SAP
travail
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/03/05/451-l-abominable-bo">Même si j’en ai dit du mal</a>, je ne hais pas Business Objects. Je suis surtout frustré par les verrues, les manques, les bugs, les aberrations... qui font d’un produit puissant qui pourrait être très agréable une vraie bouse par moments.</p> <p><em>Caveat</em> : Comme dirait <a href="http://nobox.fr">Kooorrg</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/08/22/525-l-abominable-bo-suite-de-r2-a-30-et-de-bo-a-sap-et-une-pincee-de-schizophrenie-web#pnote-445-1" id="rev-pnote-445-1">1</a>]</sup>, « cet article contient 88,8% de râlage. »</p>
<h3>3.0</h3>
<p>Si les versions « clients lourds » (des programmes Windows) traînent encore chez de nombreux utilisateurs qui n’ont pas jugé utile de payer très cher une migration, les installations les plus récentes de BO utilisent la version BO XI R2 SP3 (voire SP4). Après deux ans de débogage, cette version plante encore parfois dix fois par jour selon la configuration, l’origine du rapport (migré ou nouveau ?), et les phases de la lune. Sous IE comme sous Firefox, pas de jaloux.</p>
<p>Il y a peu est sortie une version qui aurait dû s’appeler BO XI R3. Mais, tout comme son « père » spirituel Microsoft, Business Objects est pathologiquement incapable de se tenir à une numérotation de versions définitive. La nouvelle version est donc BO XI 3.0 (mais les noms de répertoires indiquent une version 12). (<strong>Ajout de juin 2011</strong> : Et ça continue : la version actuelle est la XI 3.1 SP3, et la prochaine qui immine… BO 4 tout court : fini le XI !)</p>
<p>L’ancienne version R2 (en fait 11.5) se distinguait par une pléthore de services Windows (ou démons Unix) lancés en rafale (et pas toujours dans l’ordre qu’il aurait fallu, il faut se réécrire le script de lancement correct...) au démarrage du serveur, et aux noms assez obscurs (pour mieux se camoufler dans la jungle des autres services Windows). En XI 3.0 on arrive à l’autre extrême de deux services (dont un est Apache/Tomcat).</p>
<p>Les personnes qui ont conçu l’interface web de gestion des droits de R2 devraient être fusillées. Par contre en 3.0, mes collègues plus expérimentés m’affirment qu’il y a de nets et gros progrès (<strong>Mise à jour du 17 septembre :</strong> C’est vrai, je l’ai vu.). Le bon côté est que la logique a tellement changé qu’il faut refondre tous les droits. (Oui, c’est le « bon côté » pour le prestataire qui facture, pas l’administrateur du client.)</p>
<p>XI 3.0 offre un petit gadget sympa qui aurait dû être présent dans les versions du XXè siècle de BO, vue la clientèle assez multinationale : la traduction des objets dans les univers. La technique est « préhistorique » (<em>dixit</em> mon gourou) mais cette fonctionnalité ne nécessite réellement pas autre chose que de permettre à un traducteur de remplir une colonne de texte.</p>
<h3>Schizophrénie web</h3>
<p>Revenons à la R2 :</p>
<p>Ce n’est pas apparent, et BO ne le hurle pas aux clients : le portail web principal de BO, l’Infoview, est une abomination pour deux raisons :</p>
<p>D’abord le code est glauque : de l’ASP ou du JSP génère des pages au HTML bancal pleines de <code><table></code> pour le formatage (beûrk !), utilisant les feuilles de style au petit bonheur, avec différents éléments au sein d’un <em>frame</em> (re-beûrk !) qui communiquent par des palanquées de code Javascript. Essayer d’adapter le portail aux désirs ergonomiques souvent justifiés d’un client est plutôt hasardeux.</p>
<p>Ensuite, comme dit à l’instant, c’est de l’ASP ou du JSP : il existe DEUX versions de ce portail, codées chacune dans un langage. Oui, BO est bipolaire. Le choix entre les deux versions est très simple :</p>
<ul>
<li>En Java on peut tout faire, c’est la solution recommandée par tous ceux que je connais qui ont creusé la question. Ne rien connaître au Java à la sauce Tomcat sous-jacent ne gêne pas, car le fonctionnement de BO est une boîte noire (et le peu qu’on en voit ne donne pas envie de creuser plus). Toutes les bases de test et de démo que j’ai rencontrées utilisent cette version Java, et pour adapter le produit, on trouve du monde connaissant le SDK Java (en tout cas dans ma boîte).</li>
<li>En .Net certaines options ne sont pas utilisables, notamment tout ce qui a trait aux <em>web services</em> (un truc très à la mode sur lequel se basent plein d’outils). Dans les comparatifs par rapport à la version Java, la version .Net n’a aucun avantage majeur autre que l’éventuelle disponibilité de gens dans l’entreprise qui ont été endoctrinés par Microsoft plutôt que Sun si on veut personnaliser le portail web, et une meilleure mais non exclusive intégration du « SSO » (<em>Single Sign On</em>, un sigle barbare qui signifie que le navigateur de l’utilisateur n’a plus besoin de se rappeler des mots de passe des nombreux sites web de l’intranet de l’entreprise).</li>
</ul>
<p>Devinez ce qu’avait installé mon client, qui à présent veut rentabiliser son investissement avec les outils annexes basés sur les <em>web services</em> ? Murphy a bien rigolé quand j’ai découvert les petites lignes dans les épaisses documentations d’installation qui renvoyaient à la version Java pour telle ou telle fonctionnalité.</p>
<p>Il serait techniquement et théoriquement possible d’installer les deux versions à la fois sur une même machine, elles vivent bien côte à côte. Vue la stabilité de la bête, je sens que ça va quand même finir en désinstallation et réinstallation. En effet, le comportement du programme d’installation est bien connu, à l’installation justement. En modification d’installations existantes, il tient de la roulette russe. Ou alors je lui provoque une allergie. (<strong>Mise à jour de septembre</strong> : C’est moins pire en SP3 qu’en SP2 où c’est catastrophique.)</p>
<h3>Et puis les bugs du jour</h3>
<p>Citons quelques bugs parmi ceux que j’ai découverts récemment :</p>
<ul>
<li>Les rapports Webi ne sont pas forcément compatibles d’une version à l’autre de XI R2. Mon client utilise le SP2, moi le SP3 (à l’époque je n’avais que ça sous la main). La plupart des rapports que j’ai conçus et que je lui ai envoyés plantent à l’ouverture (message abscons <code>WIS 30270</code> habituel) : il y a un changement de format et la compatibilité descendante... BO s’en branle. Donc pression sur le client pour mettre à jour son BO en SP3, ce qui est toujours délicat. Évidemment j’avais testé au début, avec succès... (<strong>Mise à jour de septembre</strong> : En supprimant les invites des rapports, le transfert fonctionne, mais d’autres parties semblent bizarrement corrompues... Le mot d’ordre est donc plus que jamais : migrer au SP3 ! (Voire à XI 3.0 clame mon gourou personnel.) )</li>
</ul>
<ul>
<li>Un BO XI R2 SP2 fraîchement installé dans sa boîte virtuelle fonctionne très bien. En y accédant depuis le navigateur de la machine hôte, Webi fonctionne bien aussi... jusqu’au jour où je demande à exécuter des requêtes possédant des invites : sablier jusqu’à la fin des temps ou <em>Escape</em>, mais je n’aurai jamais mes résultats. À reproduire...</li>
</ul>
<ul>
<li>Si le nom du serveur BO change, il faut détruire et recréer manuellement tous les services avec leur ligne de commande à rallonge. Ça ne se scripte pas facilement. Non il n’y a pas de fichier de configuration basique avec le nom du serveur à UN endroit, ce serait trop simple.</li>
</ul>
<h3>De BO à SAP</h3>
<p>Enfin une dernière abomination pour finir : après le rachat de l’an dernier, BO a enfin été intégré à SAP (l’éditeur-monstre allemand qui tente de gober tout ce qui passe à portée et que son ennemi mortel Oracle n’a pas déjà racheté). Et ça fait très mal.</p>
<p>Le site de support n’a pas été que recoloré, il a été déplacé dans le domaine de SAP. Tous les liens vers la base de connaissance depuis les sites extérieurs ou depuis les signets, sont morts. À la mode SAP, l’ancienne page de support de BO disserte sur deux pages de verbiage sur leur nouveau site qui est plus mieux, et fournit un PDF de 42 pages (!) sur la manière de naviguer sur le nouveau site. SAP n’a jamais su faire dans le synthétique.</p>
<p>On va être positif, leur site actuel a l’air nettement mieux fichu que celui que j’ai connu il y a quelques années quand je bossais sur R/3... Et ouf, contrairement à une première impression, la documentation autrefois librement téléchargeable de BO est toujours disponible (<strong>Mise à jour de septembre</strong> : Partiellement... ).</p>
<p>Je sens que la transition de BO à SAP va rendre le produit de plus en plus pénible à utiliser malgré ses qualités intrinsèques...</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/08/22/525-l-abominable-bo-suite-de-r2-a-30-et-de-bo-a-sap-et-une-pincee-de-schizophrenie-web#rev-pnote-445-1" id="pnote-445-1">1</a>] Lequel se fait trop rare d’ailleurs.</p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/08/22/525-l-abominable-bo-suite-de-r2-a-30-et-de-bo-a-sap-et-une-pincee-de-schizophrenie-web#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/445
Python et moi
urn:md5:672c476aba823f4c56e087a995182c9e
2008-07-09T22:32:00+00:00
2011-06-01T13:07:09+00:00
Christophe
Informatique : l’art du développement
complexité
développement
expertise
informatique
langues
Linux
logiciel libre
Mac
panurgisme
perfectionnisme
travail
Windows
économie de l’attention
<p>Je me suis mis à Python. Premières impressions d’un débutant dans le langage.</p> <p>Pour ceux qui ne connaissent pas (en gros les non-informateux), Python est un des langages à la mode, pas dans la section « <em>hype</em> <em>cool</em> qui en met plein la vue mais qu’on aura oublié dans deux ans » mais dans la plus sérieuse « c’est en prod’ depuis une décennie, Google utilise massivement, et y a pléthore d’applis et de bibliothèques ».</p>
<p>Depuis des années je ne code plus qu’en SQL ou un méta-équivalent, ou en <a href="http://fr.wikipedia.org/wiki/Bourne-Again_shell">bash</a>, et je voulais retrouver un langage généraliste, agréable, plus concis que Java (c’est pas dur), de plus haut niveau que le C, qui ne me prenne pas le chou à apprendre, moins spécialisé que l’ABAP, plus répandu que l’Objective C, assez établi pour que l’investissement en vaille la peine, impérativement utilisable sur Mac comme Linux, éventuellement Windows, et accessoirement potentiellement utilisable au boulot (ça fait toujours bien sur le CV et bricoler une petite application rapidement peut sauver la vie ou juste une soirée).</p>
<p>Finalement, à part peut-être Ruby, il n’y a à ma connaissance que Python à remplir le cahier des charges.</p>
<p>Globalement c’est très positif. J’ai dévoré <a href="http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1626" hreflang="de">un bon livre d’initiation sur le sujet que je recommande</a>, mais pas encore réalisé grand-chose d’envergure, donc ce qui suit sera à revoir dans quelques mois :</p>
<p>J’aime :</p>
<ul>
<li>le côté multiplateforme (Linux, Mac, Windows), y compris pour la partie graphique avec PyQt4 (on verra ce que ça vaut à l’usage) ;</li>
<li>la syntaxe assez propre (je suis un ancien du Pascal, le C est trop dangereux pour un étourdi comme moi, et Perl est illisible) ;</li>
<li>l’intégration de plein de paradigmes à la mode avec les librairies qui vont bien : les tests intégrés (<em>assert</em>), la documentation automatique...</li>
</ul>
<p>Je suis surpris par :</p>
<ul>
<li>les espaces significatifs : un coup à prendre paraît-il, mais mélanger le formatage et la syntaxe, bôf bôf… ;<br />(<strong>Mise à jour de 2009</strong> : Finalement, c’est une excellente idée qui allège beaucoup le code.)</li>
<li>les distinctions subtiles entre listes, ensembles, <em>tuples</em>, en fin de compte logiques à l’usage, et entre types <em>mutables</em> et <em>immutables</em> — il faut savoir ce qu’on manipule.</li>
</ul>
<p>J’aime pas trop, peut-être parce que ça casse mes habitudes, mais je vivrai avec :</p>
<ul>
<li>le côté interprété (mais comme disent certains, le plus lent là-dedans c’est encore le développeur, et c’est <em>son</em> temps qu’il faut économiser) ;</li>
<li>la non-déclaration des variables, ne serait-ce que parce que je suis le roi des fuates de frappe ;</li>
<li>le non-typage explicite des variables, certes plutôt logique quand tout est objet, mais qui doit ouvrir des classes entières de <em>bugs</em>.<br />(Ces deux derniers points se résumant en « je ne peux pas contraindre les objets que je manipule ».)</li>
</ul>
<p><a href="http://thias.absyrde.net/wordpress/?p=663">Thias avait aussi découvert le langage il y a peu</a> et pour le moment j’aurais tendance à partager les mêmes impressions.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/07/09/521-python-et-moi#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/465
Du mail en entreprise
urn:md5:4058f6a6e170d838a65634617c59a004
2008-06-25T21:56:00+00:00
2011-06-01T06:13:21+00:00
Christophe
Informatique pratique
citation
communication
coup bas
court terme
cynisme
emmerdeurs
hiérarchie
howto
organisation
paranoïa
politique
psychologie
temps
travail
économie de l’attention
<p>Quelques consignes pas toutes bonnes à suivre sur l’utilisation du courrier électronique et les manipulations sociologiques qu’il permet.</p> <p>Au milieu d’une <a href="http://ask.slashdot.org/comments.pl?sid=426078" hreflang="en">discussion de Slashdot sur la disparition de la politesse élémentaire dans les mails échangés en entreprise</a>, j’ai trouvé <a href="http://ask.slashdot.org/comments.pl?sid=426078&cid=22139946" hreflang="en">cette perle d’un certain Confuse</a>, que je m’en vais traduire/trahir/résumer et (forcément) commenter :</p>
<blockquote><p>« D’abord, inutile de chercher à changer les gens, c’est futile. <br /> <br />Ensuite, ne mettez jamais par écrit ce que vous ne voudriez pas dire devant un tribunal. Faites comme vous voulez au téléphone ou face-à-face, mais par écrit soyez la voix de la raison — vous ne savez pas qui lira. »</p></blockquote>
<p>La voix de la raison, effectivement.</p>
<blockquote><p>« Ignorez les courriers dont vous n’êtes qu’en copie (<em>CC:</em>). Si vous deviez le lire, vous seriez en destinataire (<em>To:</em>). Les courriers en copie “perdus” sont à mettre au compte du filtre anti-<em>spam</em>. Et plus vous ignorerez de mails, moins les gens supposeront que vous les lirez. »</p></blockquote>
<p>J’ai déjà vu cette ligne de défense en place, plus ou moins consciemment et innocemment, comme défense contre l’avalanche de courriers. Trier automatiquement les courriers <em>CC:</em> vers un autre répertoire soulage la boîte aux lettres principale. J’ai aussi vu des responsables débordés devenus injoignables par mail — et donc de fait ignorés/contournés sauf lorsque perfidement on veut obtenir implicitement leur accord.</p>
<blockquote><p>« Si vous êtes destinataire, êtes-vous le seul ? Si non, et que ce mail contient des choses à faire, supposez qu’un autre destinataire s’en chargera : sinon ça n’aurait été adressé qu’à vous. Si vous ne pouvez éviter le travail, demandez une réunion de planification avec toutes les personnes présentes dans la discussion, éventuellement d’autres aux agendas non incompatibles. Cela repousse suffisamment le travail pour le rendre inutile. »</p></blockquote>
<p>Ne pas se précipiter sur du travail est un bon moyen de le voir disparaître spontanément (perte d’utilité, changement de priorité, nouvelle lubie du chef ou du <em>top management</em>). De là à le repousser délibérément... Parfois, attention, ce n’est que reculer pour mieux sauter, la <em>deadline</em> ne changeant pas (en général c’est même la seule chose fixe et précise, définie en premier avant toute analyse).</p>
<blockquote><p>« Ignorez les compte-rendus de réunion auxquelles vous n’étiez pas, ça n’est pas productif. Vous auriez été invité sinon. »</p></blockquote>
<p>Au risque de laisser passer d’importantes infos...</p>
<blockquote><p>« Tout cela semble brutal et ne devrait s’appliquer qu’à ce qui ne vous intéresse pas, mais marche bien dans la réalité. <br /> <br />À propos des citations sans fin dans les échanges de courrier, l’idéal est de ne jamais tout citer. Ne gardez que ce que à quoi vous répondez : les correspondants ne verront que ce que vous voudrez qu’ils voient, la plupart n’iront pas chercher l’original dans leur boîte. Réduisez le nombre de destinataires de vos réponses, cela multiplie les groupes avec différents niveaux d’information, ce qui est toujours utile en cas de recherche de coupable.<br /> <br />Évitez les mails courts si cela ne vous arrange pas directement. Présentez des options avec avantages et inconvénients. Commencez les mails avec un résumé à <em>votre</em> sauce avant de citer les mails suivants. Cela influencera ceux dont le délai d’attention ne sera pas d’entrée dépassé. »</p></blockquote>
<p>Personnellement, j’ai effectivement tendance à tartiner dans les mails. Mais je suis un pur produit de l’école française thèse/antithèse/[syn/fou]thèse. Je suis conscient qu’effectivement certains de mes correspondant font un <em>brain overflow</em> au-delà de quatre lignes de texte, mais bon, j’aurai fait mon devoir.</p>
<blockquote><p>« Pour se débarrasser de projets embarassants, impliquez les juristes, la sécurité, la qualité, des règlements et des lois : étonnament peu de gens sont prêts à mettre par écrit qu’ils ne veulent pas que les choses soient faites dans les règles. »</p></blockquote>
<p>Conclusion :</p>
<blockquote><p>« Ainsi, à moyen terme, vous aurez toute latitude pour ignorer les courriers que vous voudrez, et on hésitera à venir vous demander votre aide. Comme bénéfice secondaire, vous vous ferez une collection de courriers très prisés en cas de perquisition. »</p></blockquote>
<p>Si tout est loin d’être faux, et si chaque règle peut fournir une arme contre la saturation, les excès d’un chef ou de l’organisation dans son ensemble, il ne faut pas faire attention à en faire une règle et tomber dans le travers du très surfait <em><a href="http://fr.wikipedia.org/wiki/Bonjour_paresse">Bonjour paresse</a></em>, vision totalement cynique restreinte aux services de support de grandes entreprises, où éviter le boulot et les jeux de politique mesquine peut devenir l’unique sport de gens totalement désabusés.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/06/25/504-du-mail-en-entreprise#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/449
L’abominable BO
urn:md5:bb51609046ce17495d9ffbfed3a831c5
2008-03-05T23:07:00+00:00
2011-05-27T20:33:48+00:00
Christophe
Informatique lourde
base de données
Business Objects
complexité
dommage
dysfonctionnement
développement
ergonomie
foutage de gueule
informatique
perfectionnisme
prise de tête
SAP
travail
<p>Le logiciel professionnel Business Objects, malgré de nombreuses qualités, se rapproche du monde à la Microsoft par certains aspects très crispants.</p> <p><em>Caveat</em> : Comme dirait <a href="http://nobox.fr">Kooorrg</a>, « cet article contient 80% de râlage. »</p>
<p><em>Caveat (bis)</em> : Ce billet est à très haute teneur en informatique d’entreprise.</p>
<h3>Ce qu’est BO</h3>
<p><a href="http://wwww.businessobjects.com/">Business Objects</a> (« BO » pour les intimes) est un outil très connu des services dirigeants, financiers et informatiques des entreprises, endroits où l’on adore faire beaucoup de tableaux avec énormément de chiffres et de graphiques.</p>
<p>Le concept le plus intéressant du produit réside dans l’« univers », une « couche sémantique »™© entre les objets de la base de données et les requêtes de l’utilisateur. Cet univers contient tout bêtement le modèle de données de la base de données sous-jacente, quelques formules, filtre des données par utilisateur, et autres raffinements.</p>
<p>À l’écran l’utilisateur « de base » ne voit plus que des objets « facture », « client », « chiffre d’affaire »... et BO s’occupe de toutes les jointures, filtres, regroupements, et nombreuses autres astuces.</p>
<p>Une requête impliquant des objets « Code client », « Région » et « Chiffre d'affaire » avec un filtre « Année en cours », objets qu’il suffira de glisser dans la fenêtre adéquate, mènera automagiquement à une requête du genre de :</p>
<blockquote><p><code><strong>SELECT</strong> CLIENTS.CODE,<br /><strong> </strong>ADRESSE.REGION,<br /> <strong> </strong><strong>SUM</strong>(COMMANDES.CA) <br /><strong>FROM</strong> CLIENTS, COMMANDES <br /><strong>WHERE</strong> CLIENTS.ID = COMMANDES.CLIENT_ID <br /><strong>AND</strong> TO_CHAR(COMMANDES.DATE,'YYYY')=2008 <br /><strong>GROUP BY</strong> CLIENTS.CODE, ADRESSE.REGION ; </code></p></blockquote>
<p>...avec possibilité éventuellement ensuite de « zoomer » de la région au département au magasin au sous-rayon. Les données sont en mémoire ou ramenées par une nouvelle requête.</p>
<p>La mise en page peut être assez complexe et les calculs très poussés, Excel est totalement enfoncé — mais parfois utilisé pour raffiner ou formater.</p>
<p>Il est possible de mélanger et croiser (« synchroniser » ) des données issues de bases (univers) différents.</p>
<p>Pour de bonnes performances et une maintenance acceptable de l’univers, des bases de données dédiées (<em>datawarehouse</em> avec <a href="http://www.systemeetl.com/concepts_star.htm">schéma en étoile</a> dénormalisé) sont conseillées.</p>
<p>S’ajoutent encore un « référentiel», c’est-à-dire une base de données comprenant les univers et des documents, pour verrouiller l’accès et garantir la cohérence des évolutions, ainsi qu’un « portail » web pour manipuler, gérer et distribuer la masse de rapports que les utilisateurs vont s’empresser de pondre en masse.</p>
<p>BO domine son secteur, et le fait payer fort cher à ses clients. Les alternatives libres ne sont pas encore au niveau mais commencent à être envisageables (JasperReports, BIRT...).</p>
<p>Je connais la version 5 de BO, un peu la 6, et la dernière XI R2 SP3 (on sent dans ce nom l’influence de Microsoft, dont BO est un équivalent français indéniable sur tous les plans) en versions « client lourd » et « Webi » (<em>ie</em> « <em>full web</em> » sans logiciel client sur le poste).</p>
<h3>De l'ergonomie et de la philosophie</h3>
<p>Soyons clair : BO n'est pas arrivé au même degré d’incohérence ergonomique que SAP, ou, bien pire, cette abomination de Lotus Notes v5. BO n’est né qu’en 1990, et évolue depuis toujours dans l’écosystème Windows, l’historique est moins écrasant.</p>
<p>BO a au moins le mérite de permettre à quelqu’un qui connaît sa philosophie et connaît les icônes, ou est simplement curieux d’y fouiller, de faire son travail. La version de BO en « client lourd » (un programme Windows classique) est cependant TRÈS loin de la perfection et de l’application bien léchée. Mais on notera globalement de nets progrès d’ergonomie sur la toute dernière version (« Webi », par le navigateur). La réécriture due au changement de technologie a impliqué une refonte de l’ergonomie globalement très positive... pour peu qu’on arrive au bout du chemin de croix de la migration...</p>
<p>BO est typiquement l’application où le talent ne peut compenser l’expérience et le nombre d’heures passées à faire des rapports un peu complexes et tordus. L’utilisation est une collection d’astuces et de « ah tiens c’est là ce truc ? ». Malheur à celui qui découvre tout sans mentor. Rien de bien différent du reste de l’informatique professionnelle, diront certains. La documentation est plus ou moins pauvre suivant les versions, mais pas indigente.</p>
<p>L’univers est un élément capital. S’il est mal foutu, l’utilisateur récupérera très facilement des données incohérentes. Bien fichu, il fait de la création des rapports un plaisir, et économisera beaucoup de temps à ceux qui auparavant faisaient tous leurs calculs sous Excel.</p>
<h3>v5</h3>
<p>La version 5 date de 2002, elle est encore utilisée assez fréquemment. (<strong>Ajout de 2011</strong> : On est en train d’achever les dernières.) Pour un utilisateur qui n’a pas des besoins énormes, la montée de version n’est pas forcément justifiée. Elle a l’avantage d’être très légère pour les machines actuelles. Elle n’est plus supportée par l’éditeur depuis longtemps, mais certains clients vivent très bien sans support. Les versions 6, 6.5 sont fonctionnellement quasiment identiques.</p>
<p>Je ne vais pas parler des fonctionnalités de base, qui sont là et globalement fonctionnent, avec des bugs occasionnels, mais comme à mon habitude je vais pester sur ce qui gâche la vie au quotidien, et qui se niche souvent dans le détail :</p>
<ul>
<li>Contrairement à Word qui offre des menus pléthoriques doublés de barres d’icônes et triplés de menus contextuels, BO en client lourd offre nombre de fonctionnalités SOIT dans les menus contextuels, SOIT dans les menus principaux, SOIT dans les barres d’icônes. Et la répartition se fait de manière totalement inconsistante. <br />Pour formater une cellule, c’est clic droit, SAUF pour régler largeur et hauteur à la main (menu <em>Affichage</em>). La gestion (ajout, suppression, renommage...) des « fournisseurs de données » (les requêtes où l’on définit les objets récupérés) s’effectue à trois ou quatre endroits différents (clic droit, menu, « cube »...).</li>
</ul>
<ul>
<li>Les boîtes de dialogue sont riquiqui et non extensibles (notamment celle de création des formules, celle de consultation des données ramenées...). En gros, la version de 1991 en 640x480 impose encore son empreinte à l’époque des 19” en 1600x1200 (pour les veinards qui ne bossent pas en SSII). Non, ça n’a pas changé avec les versions suivantes. <br />Beaucoup de fenêtres sont modales, un problème sérieux pour comparer deux rapports.</li>
</ul>
<ul>
<li>Parmi les détails énervants, le fournisseur de données n’affiche que le début du nom des objets puis des points. Très pratique quand ils se nomment tous « Montant ci ou ça » ou « Code truc ou machin ». (Problème corrigé dans la dernière version XI Deski.)</li>
</ul>
<ul>
<li>La sauvegarde et le chargement s’effectuent par défaut dans des répertoires prédéfinis, bien à lui, auxquel BO revient tout le temps. C’est très pénible quand on raisonne par projet et par application...</li>
</ul>
<ul>
<li>La gestion de la sécurité des documents est intégrée DANS le document. En clair, si un client vous envoie un rapport sans avoir coché la case « Sauver pour tous les utilisateurs » à la sauvegarde, il est impossible de le récupérer, même en possédant l’univers utilisé. Il y avait une faille en v5 (n’importe quel administrateur BO pouvait charger n’importe quel fichier sur sa propre installation). Cette faille a été comblée par la suite. <br />Il est donc hautement conseillé de créer toute version intermédiaire ou de développement ou toute archive en cochant la case fatidique, sinon la destruction du document dans le référentiel entraîne le verrouillage définitif des sauvegardes sur disque dur.<br />Parmi mille autres conséquences d’une sécurité implémentée d’une manière assez bancale pour faire plaisir aux paranoïaques des tours de la Défense ou New York : si l’univers sur lequel un rapport est basé est indisponible, ou s’il est renommé, il est impossible de <em>voir</em> la requête du document. <br />Plus grave : pour changer d’univers sur une requête (pour tester différentes versions dans une phase de développement par exemple), il est obligatoire d’avoir aussi récupéré l’ANCIEN univers avec son ancien nom, sinon il ne le trouve pas (normal) et... refuse d’en changer ! Crispant.<br />De plus, en v5, parue pourtant cinq ans au bas mot après Windows 95, BO tient absolument à conserver un nom d’univers de huit (8) lettres. Il est parfois possible de magouiller en renommant un univers APRÈS l’avoir sauvé puis en le rouvrant. Il reste des scories de ce comportement en XI. <br /> <br />Tout cela pour dire que le travail avec un « référentiel » (base de données SQL contenant l’univers) est hautement conseillé pour contourner certains de ces problèmes.</li>
</ul>
<ul>
<li>Joie : en v5 on peut accéder en SQL au modèle de données de l’univers stocké dans le référentiel (pour des requêtes de contrôle, un export Excel...), on peut même obtenir par BO une vue sur un univers BO. Excellent ! Voire indispensable pour réaliser la documentation de l’univers. <br />Horreur : les rapports par contre ne sont sauvés dans le référentiel que sous la forme d’un LONG informe qui ne peut être lui-même analysé. Sauf à utiliser des macros VBA miraculeusement disponibles sur le web, impossible de récupérer une liste à peu près complète des objets contenus dans une masse de rapports préexistants (dans le cadre d’une étude de migration par exemple).</li>
</ul>
<ul>
<li>La réutilisation de code (requêtes et formules de calculs) entre différents rapports n’est pas encouragée. Il est déjà beau qu’à partir de la v6 on puisse dupliquer une simple requête au sein d’un document, pour comparer plusieurs modes de calculs légèrement différents par exemple, ou différents paramètres. <br />Il est donc conseillé de caser le maximum de « logique fonctionnelle » dans les univers... si vous en avez la maîtrise (ils peuvent être fournis par les éditeurs des autres progiciels comme l’ERP ou la compta).</li>
</ul>
<ul>
<li>Un autre problème classique qui m’a fait m’arracher les cheveux après que mon client se soit arraché les siens : il existe un temps maximum d’exécution d’une requête au-delà duquel BO se plaint que celle-ci est trop longue, et ne retourne que des résultats partiels, voire rien.<br />En fait, une requête BO peut être scindée en deux ordres SQL (c’est normal et souvent pertinent). Et si le premier de ces ordres fait plus de la moitié du temps maximum... le <em>timeout</em> est considéré comme atteint ! Rien que rajouter systématiquement des objets « de contrôle » (date d’alimentation de la base...) peut provoquer ce phénomène !</li>
</ul>
<ul>
<li>De manière générale, les messages d'erreurs sont très imprécis et abscons. (Ça ne s’est pas arrangé avec Webi...)</li>
</ul>
<ul>
<li>Les forums de support BO sont décevants. (<strong>Ajout de décembre 2008</strong> : C’est encore pire et encore plus verrouillé depuis que tout est passé dans le giron de SAP.) Préférer le très connu <a href="http://www.forumtopics.com/busobj/index.php" hreflang="en">BOB : http://www.forumtopics.com/busobj/index.php</a>.</li>
</ul>
<h3>XI R2 SP2</h3>
<p>Comme dit plus haut, ce système de nommage de version est inspiré directement de celle de Microsoft : actuellement je travaille pour un client sous <em>Business Objects XI Release 2 Service Pack 2 Fixpack 2.6</em>. La nomenclature elle-même n’est pas très stable : les <em>Fixpacks</em> ont succédé aux <em>Hotfixes</em> et MHF, et <em>XI R3</em> s’appellera en fait « <em>XI 3.0</em> ».</p>
<p>Il faut bien faire attention aux chemins de migration ; par exemple le SP3 tout récent n’est installable que sur un SP2 jusqu’au FP2.5, sinon il faut aussi ajouter le FP 3.1, qui n’a cependant pas été disponible en même temps que le SP3. Au moment où j’écris, un 2.7 est aussi paru, et un 3.3 aussi. Sachant que le moindre de ces patchs pèsent des dizaines ou centaines de Mo et que l’installation est une orgie de configuration et de manipulation de petits fichers xml, jar et de clés de registres, un essai coûte cher en intervention de prestataire…</p>
<p>Bref, tout cela donne des indices inquiétants sur la manière bureaucratique dont s’effectue le développement...</p>
<p>XI reprend le principe du référentiel mais utilise en fait l’infrastructure développée autrefois pour Crystal Reports (racheté depuis longtemps et maintenu dans XI parallèlement au « BO » classique), avec des conséquences effroyables :</p>
<ul>
<li>La nouvelle infrastructure met en place une flopée de serveurs, dont la configuration est complexe et peu claire. Les documentations d’administration font plusieurs centimètres d’épaisseur.<br />On notera une intéressante et piégeuse distinction entre « démarrage » et « activation » d’un service d’arrière-plan. Le démarrage s’effectue par le CCM (<em>Central Configuration Manager</em>), une application Windows. L’activation s’effectue plutôt par le CMC (une console web). Oui, on a bien un CCM et une CMC ; il faut oser. Il existe aussi le CMS (un service maître). <br />Comme dans nombre de jeux, l’administration possède des outils cachés que ne trouvera que celui qui fouine partout.<br />Bref, cette plate-forme a hérité de <em>Crystal</em> la solidité que suggère le nom... <br />(Je me demande souvent si le but n'est pas de maximiser la complexité pour justifier des tarifs délirants et se mettre dans la poche des administrateurs et consultants dont le travail est garanti pour une demi-décennie. La théorie alternative remarque que BO est maintenant <em>Made in India</em>, ce qui n’a jamais été un gage de compacité et d’élégance dans l’architecture.)</li>
</ul>
<ul>
<li>BO avait déjà tendance à vouloir imposer ses répertoires de travail. À présent il impose carrément de passer par son <em>Infoview</em> (un portail web). On peut encore contourner avec le client Windows, mais pas avec Webi (la version "full web"). Bon, ça se défend. <br />L’interface du portail est fort perfectible, et fait à mon sens doublon avec la gestion des sécurités déjà présentes sur des serveurs réseau, éventuellement entre en conflit avec les serveurs web, documentaires et autres déjà en place. Mais le « portail décisionnel » est à la mode, il doit bien se marier avec les masses de documents qu’une administration privée ou publique génère.<br />L’ergonomie est basique, loin derrière le simple explorateur de Windows ; ne serait-ce qu’à cause de l’absence de glisser-déplacer et la relative lenteur de l’interface web. Certains libellés sont scandaleux (« Déplacer dans un nouveau répertoire » sert à créer un nouveau répertoire, et/ou à déplacer un rapport dans un répertoire préexistant), et la manipulation des droits est tordue. Le bouton « Supprimer » change de nom, de place, ou devient une simple icône suivant les pages. Autre exemple, l’emplacement de « Modifier » dépend du type de documents (première option pour du Webi, dernière pour du Deski...) : un véritable piège quand on est fatigué.<br />Cerise pourrie sur le gâteau, les rapports Webi ne sont plus de simples fichiers copier-collables, il faut se taper toute une procédure d’import-export entre référentiels (histoire de bétonner la cohérence entre documents, droits, univers...).</li>
</ul>
<ul>
<li>En XI, on perd la possibilité de consulter le modèle de données de l’univers directement dans le référentiel par SQL. Ce qui oblige à des recherches beaucoup plus fastidieuses quand on veut ausculter l’intérieur d'un univers (export Excel par exemple). Là aussi c’est fournir du boulot fastidieux sans fin à des consultants. (Cependant un univers XI est encore à peu près lisible par un BO v5, ce qui permet de contourner le problème... pour le moment.)<br />Autre horreur technique à mes yeux, la division des documents entre le référentiel BO dans la base de données (toujours là) qui ne contient plus que les identifiants des documents et leurs relations, et les documents eux-mêmes, cette fois stockés sous forme de fichiers sur le disque dur du serveur lui-même. Le piège est de bien synchroniser la sauvegarde du référentiel SQL et de ces documents, sinon... (On se demande à quoi bon avoir une base de données moderne derrière si on jette par dessus bord toute notion d’intégrité. J’ai du mal à croire les arguments de performances.)</li>
</ul>
<ul>
<li>Accessoirement et péniblement, XI me plante régulièrement à la tronche. Sous Webi notamment, il existe plein de délais d’expiration qui provoquent des messages d’insultes totalement hors sujet.</li>
</ul>
<p><strong>Ajout de décembre 2008</strong> : La version XI 3 ne lève pas ces remarques mais améliore tout de même sacrément l’apparence et l’ergonomie de l’interface.</p>
<h3>Webi</h3>
<p>Le client lourd habituel sous Windows, renommé « Desktop Intelligence » existe toujours — sous la pression insistante des clients, mais il est condamné. BO pousse les utilisateurs de XI à passer à la version web, « webi » (pour <em>Web Intelligence</em>).</p>
<p>Toute l’interface a donc été réécrite en Java (il y a même une version en HTML pur plus limitée, non testée), et l'éditeur en a profité pour revoir de fond en comble l’ergonomie. Les fonctionnalités sont beaucoup mieux réparties, un onglet <em>Propriétés</em> un peu fourre-tout mais bien trié permet de toujours savoir où modifier tel ou tel paramètre. Les barres d’icônes sont notablement allégées, à bon escient, et les menus ont carrément disparu.</p>
<p>La gestion des requêtes est bien plus cohérente et facile. Il y a de gros progrès aussi dans le mode exploration (changement instantané du niveau de détail de l’année au jour, ou du continent à la rue, très pratique pour l'analyse). La gestion des sections de documents est plus claire. La logique qui traite de la « fusion des dimensions » (<em>ie</em> le rapprochement des données de deux sources qui se complètent sans se recouper totalement) est nettement plus carrée. Globalement, tout est d’ailleurs plus carré.</p>
<p>Ah non, il n'y a pas toutes les fonctionnalités du client lourd Windows, même si on en est proche. Les rapports sont compatibles à 90%. Mais certaines astuces archi-classiques de formatage ne sont plus possibles, comme les copies dans les entêtes de rupture (la colonne source ne peut plus être supprimée ; cependant il est encore possible de la rendre invisible par formatage, ou de jouer avec les sections).</p>
<p>Impossible encore de voir les données brutes depuis le rapport (le « microcube »). La fonctionnalité « Coller la mise en forme » a aussi disparu, et c’est très dommage. (<strong>Mise à jour de décembre</strong> : Elle est revenue en XI 3). Les filtres ne peuvent plus être que de la forme <code>[Champ] (opérateur) <Valeur></code>, finies les formules <em>sioux</em> (il faut fastidieusement passer par des variables et non, le convertisseur ne le fera pas pour vous). Les graphiques sont à la fois mieux gérés et moins flexibles.</p>
<p>Il faudra apprendre à sauvegarder fréquemment : le bouton d’annulation ne permet plus qu’<strong>un</strong> (1) seul et unique retour en arrière (aucun en mode exploration) !!! (<strong>Mise à jour</strong> : Là aussi, c'est corrigé en XI 3). Ça tombe bien, la session du serveur expirant au bout de 20 minutes, vous pouvez perdre tout le travail en cours pendant une pause café.</p>
<p>Oubliez aussi les boutons d'alignement des cellules : disparus ! À côté de ça on remarque à peine la disparition des fonctionnalités de gestion fine des bordures (distinction intérieur/extérieur, pointillés...). La philosophie de cliquodrome total est également encore accentuée par rapport au client lourd (perte des raccourcis clavier de la version Windows).</p>
<p>Pour l’affichage et l’impression, la régression est monumentale, avec certes le PDF et le HTML comme formats d’exports privilégiés, mais on perd nombre de fonctionnalités de mise en page à l’impression qui vont de soi sous Windows (notamment le très pratique « Ajuster sur N pages en largeur et M en hauteur »).</p>
<p>Entre autres gags, les insertions de logo sont foireuses : soit on veut un logo de haute qualité, qu’il faut redimensionner dans un coin de la page, et cela ne marche qu’en impression PDF, mais pas en affichage HTML (logo tronqué), soit il faut se contenter d’un logo ayant la même taille en pixels que la cellule, et la qualité d’impression sera moyenne.</p>
<p>Je passe sur le fait que les machines de formation chez BO possédaient 2,5 Go de RAM, un processeur à 3 GHz pour faire tourner les serveurs BO et Webi (certes dans un VMWare). Ma machine au bureau, bien moins costaude, tire juste un peu la langue. Mais en tant que client simple, un XP sur une machine récente avec 512 Mo de RAM est suffisant. Certains rapports très lourds génèrent cependant lamentablement des messages d’erreurs incompréhensibles au bout de quelques temps, un des innombrables délais d’expiration doit être silencieusement violé : Webi est moins stable que le client lourd.</p>
<p>Si le développement de nouveaux rapports se fait sans trop d’anicroches, la migration des anciens peut être très fastidieuse à cause de tous les problèmes ci-dessus, des règles plus strictes qui font voler en éclat nombre d’astuces, et d’un convertisseur qui, une fois de plus, préfère inventer un message d’erreur stupide que dire la vérité. Si en plus <del>l’utilisateur</del> le lecteur final tient à sa mise en forme identique au micropoil près...</p>
<p>Bref, Webi est BO tel qu'il aurait dû être dès le départ, mais avec de scandaleuses régressions d’ergonomie par rapport au client lourd, parfois incompréhensibles. On se croit parfois revenu en 1990. On verra ce que donnera la version R3 promise pour très très bientôt.</p>
<p>D’un autre côté, Webi tourne sous Linux (j’ai sommairement testé sous Ubuntu), ça fait toujours un lien de moins avec Microsoft.</p>
<h3>Dans le futur</h3>
<p>Si je laisse parler mon côté mauvaise langue, je pourrais dire que l’alliance avec SAP est une garantie que l’ergonomie, la complexité et la lourdeur ne vont PAS s’améliorer. Pour l’ergonomie, on verra comment évolue Webi, mais le produit existe depuis longtemps et ne rattrape que lentement son retard…</p>
<p><strong>Mise à jour de décembre 2008</strong> : Il faut reconnaître que XI 3 est un énorme progrès — il corrige nombre de lacunes fonctionnelles béantes et de manques ergonomiques. XIR2 sentait le « pas fini » à plein nez, XI3 est plus léché et beaucoup plus agréable.</p>
<p><strong>Mise à jour de mai 2011</strong> : XI3 est mieux, mais au final toujours farci de bugs.</p>
<p>(<em>Suite dans : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/08/22/525-l-abominable-bo-suite-de-r2-a-30-et-de-bo-a-sap-et-une-pincee-de-schizophrenie-web">L’abominable BO (suite) : de R2 à 3.0 et de BO à SAP et une pincée de schizophrénie web</a></em>)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/03/05/451-l-abominable-bo#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/410
Des employés interchangeables
urn:md5:9f7b5cb210a28623867c6f2c3cb2af8b
2008-02-06T22:17:00+00:00
2011-05-25T20:37:00+00:00
Christophe
Il faut bien manger
court terme
cynisme
mercenaire
mobilité
organisation
perspective
SSII
travail
<p>« Le système actuel considère que les gens doivent être interchangeables. Ce n’est pas que du cynisme, mais une des raisons même pour lesquelles les entreprises en question ont réussi à survivre. »</p> <p>Un petit billet <a href="http://it.slashdot.org/comments.pl?sid=188572&cid=15541422" hreflang="en">sur une perle de sagesse croisée au détour d’une conversation sur Slashdot</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/06/221-des-employes-interchangeables#pnote-199-1" id="rev-pnote-199-1">1</a>]</sup> :</p>
<p>À une remarque sur le fait que les entreprises voient trop à court terme, à cause des bilans de fin de trimestre, et donc rechignent massivement à augmenter les salaires, quitte à laisser partir du monde<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/06/221-des-employes-interchangeables#pnote-199-2" id="rev-pnote-199-2">2</a>]</sup>, un sage au doux pseudonyme de « kfg » répond (je résume) :</p>
<blockquote><p>C’est pire que ça. Le système actuel considère que les gens <em>doivent</em> être interchangeables. Ce n’est pas que du cynisme, mais une des raisons même pour lesquelles les entreprises en question ont réussi à survivre : pour un boulot médiocre, on peut prendre n’importe quel médiocre, et on en trouvera toujours à un prix raisonnable. Les procédures et flux de ces entreprises sont conçues en fonction de cela.<br /> <br /> Évidemment, à force d’embaucher des médiocres, les grosses entreprises peuvent se voir laminer ponctuellement par de plus petites menées par des fondateurs brillants (j’ajouterais que jouent aussi les handicaps liés à l’échelle : inertie, communications, couches de management, conservatisme de celui qui est protégé par sa taille...). <br /> <br />Revers de la médaille, les petites structures sont beaucoup plus vulnérables à une défaillance de leur fondateur. Celles qui se reposent sur des gens brillants irremplaçables passent un sale moment quand ces gens indispensables s’en vont. Donc une entreprise <em>doit</em> s’organiser de manière à pouvoir remplacer une bonne partie de son personnel. <br /> <br />En résumé : « <em>The opposite of love is not hate; it is indifference. In the average company they aren't actually out to get you, they simply don't give a fuck about you.</em> »</p></blockquote>
<p><strong>Ajout personnel</strong> : Je me demande de quelle manière ce phénomène n’est pas un minimum local de tout ou partie de notre économie. Dans un secteur en crise, l’entreprise qui ronronne à coups de gens médiocres ou mal formés ou peu motivés se fera laminer par les nouveaux venus (faillibles mais nombreux, et qui peuvent vite grossir...) ou d’autres concurrents moins cyniques, ou simplement moins chers, plus motivés, qui trouvent facilement à se démarquer.</p>
<p>D’un autre côté, peu après mes débuts dans la grosse SSII où je suis arrivé trop longtemps, chez le client où je suis aussi resté trop longtemps, un des anciens a posé sa dém’ pour gagner plus au Luxembourg. (Je ne savais pas à l’époque que ladite SSII vivait en permanence une fuite des cerveaux.) À ma réflexion que l’on allait avoir du mal à faire sans lui, le chef a répondu que justement, personne n’était indispensable. Et effectivement, on a fait sans lui, et j’ai même souvent fait tout seul.</p>
<p>Contre-exemple : Google a bâti sa réputation sur le phénomène inverse, en siphonnant un bon paquet de la matière grise haute qualité disponible. D’un autre côté, Google aurait maintenant le problème de devoir balayer plus large dans son recrutement. Enfin, Google pourrait être justement <em>le</em> contre-exemple, celui qui a adopté une stratégie de niche que les autres ne peuvent pas tous suivre, et qui ne peut devenir la norme. Après tout, la plupart des salariés sont, par définition, des gens normaux, dans la moyenne, bref pas exceptionnels, et tout le monde ne peut embaucher la crème.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/06/221-des-employes-interchangeables#rev-pnote-199-1" id="pnote-199-1">1</a>] <em>Slashdot, c’est comme le café du commerce : on se tient au courant des ragots, le niveau est en général très bas, et parfois il y a quelqu’un de vraiment bien qui passe, ou bien le radotage d’un vieux combattant livre une des clés de l’existence.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/06/221-des-employes-interchangeables#rev-pnote-199-2" id="pnote-199-2">2</a>] <em>Toute ressemblance avec une grande SSII où je suis passé n’est pas fortuite, mais elle est plus représentative du genre que l’exception.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/02/06/221-des-employes-interchangeables#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/199
Où sont les specs ???
urn:md5:def436a14ea2e1e449bc25aa52c1a04a
2008-01-29T22:56:00+00:00
2011-05-24T20:46:29+00:00
Christophe
Informatique : l’art du développement
auto-organisation
complexité
développement
fichage
incohérence
informatique
métainformation
organisation
perspective
signifié
travail
<p>Écrire les spécifications fonctionnelles puis techniques d’un logiciel est un métier, et les interpréter pour développer un autre. Encore y a-t-il un problème intermédiaire bassement pratique : elles sont <em>où</em> les spécs ???</p> <p>Supposons que, dans une entreprise, il ait été jugé que tel besoin doit être satisfait par un petit développement informatique, et que le programme ait reçu <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/09/03/224-codes-projets">son précieux code projet (j’ai déjà causé de cette odyssée)</a>, par exemple VER78 (VEntes/Rapport/78ème programme développé pour ce domaine).</p>
<h3>Les « specs »</h3>
<p>Concrètement, dans une entreprise organisée, on écrit d’abord des <strong>spécifications</strong> (« Ce logiciel doit faire telle chose. ») et ensuite un ou des développeur(s) programme(nt).</p>
<p>Le processus peut être plus compliqué : expression de besoins formelle ; réunions d’arbitrage ; spécifications écrites par un <em>key user</em>, ou un consultant interne, ou externe, ou dossier géré de A à Z par un technico-fonctionnel solitaire ; développement en <em>waterfall</em> ou <em>extreme programming</em> ; dossiers de mise en production, d’exploitation... Mais en gros on se résume à : <strong>spécification / programme</strong>.</p>
<p>Pour le programme lui-même, son code, ses objets... pas de problème, le développeur sait où les trouver et déposer, il est naturellement assez ordonné<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/01/29/228-ou-sont-les-specs#pnote-204-1" id="rev-pnote-204-1">1</a>]</sup>. De plus, en cas de négligence, la sanction est immédiate : ça ne compile plus. Les outils de gestions de version permettent également suivi et centralisation. Un programme est donc rarement perdu.</p>
<p>Les spécifications ne sont pas soumises à la même rigueur. Souvent, elles se matérialisent en tant que fichiers Word, dont l’éclosion s’effectue en un endroit souvent non public (disque dur personnel, clé USB, répertoire réseau privé...).</p>
<p>Dans les cas les plus défavorables, seul le développeur s’intéresse au code du programme, et la rédaction intervient <em>avant</em> l’étape d’attribution du nom VER78. Le document peut donc ne comporter qu’un titre (« Spécifications commissions sous-traitants.doc »), pas forcément explicite (« Spf comms sst TEST v7.doc »), et se trouver à peu près n’importe où sur l’intranet local…</p>
<p>Un cauchemar pour le petit pion de SSII qui débarque sans idée des nomenclatures et habitudes locales. C’est encore plus drôle quand les gens ne sont pas d’accord sur l’endroit où les documents doivent être déposés ; dans ce cas les chances de posséder plusieurs exemplaires des spécifications évoluant en parallèle est réel.</p>
<h3>De l’unicité du code</h3>
<p>J’ai donné l’exemple de VER78, sans parler d’un pépin courant : pourquoi VER79 et pas VER80 ? Qu’est-ce qui garantit que VER78 ne va pas être utilisé par quelqu’un d’autre pour un projet différent ?</p>
<p>Qu’on utilise un numéro (comme VER78) ou un code plus littéraire (du genre de « Nabuchodonosor »), le problème se pose rapidement (dès que l’équipe dépasse une personne — et même) : <strong>ne pas se retrouver avec deux programmes de même nom</strong>. C’est tout bête, mais dans une phase de foisonnement (installation d’un système) impliquant pléthore de consultants et développeurs, le danger est réel.</p>
<p>En informatique théorique, le cas est connu, il suffit de « poser un verrou » sur un numéro. Sous Oracle, on parlerait de « séquence » (à part pour le problème de non-continuité des numéros). En clair, une référence unique où se trouvent ces numéros, et qui garantit un minimum que deux personnes ne peuvent pas utiliser deux noms de programme en même temps. Mais c’est la théorie, où les programmes suivent toujours les procédures ; les humains font ce qu’ils veulent et sont faillibles.</p>
<p>Un collègue m’a parlé d’une technique primitive mais efficace : le <strong>classeur papier</strong> unique (le truc plat en plastique ou carton avec des anneaux métalliques et des feuilles dedans, pas un fichier Excel !). Le chef de projet ou le développeur qui a besoin de « tirer un numéro » pour nommer une brique logicielle va dans le classeur, regarde le dernier numéro ou nom utilisé, rajoute le sien, et est certain que personne ne créera le même au même moment. Inconvénient : à l’heure des bases de données réparties sur plusieurs sites, et de la sous-traitance massive aux antipodes, un classeur ne voyage ni par email ni par intranet.</p>
<p>Le dérivé de l’ère numérique est évident : un <strong>simple fichier Excel sur un intranet public</strong>. Encore faut-il savoir où il est sur la jungle de l’intranet réseau (<em>a priori</em> simple, parfois non, voir plus loin). De plus, les classeurs Excel ont le don de scissiparité, et les <em>managers</em> sont vite enclins à en créer d’autres pour le pilotage<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/01/29/228-ou-sont-les-specs#pnote-204-2" id="rev-pnote-204-2">2</a>]</sup>. Le fichier unique « bête liste des programmes maison » tend très vite à évoluer en outil de mesure de la progression de projets.</p>
<p>La technique la plus efficace à ma connaissance est simplissime : puisque chaque développement implique la génération d’au moins un document (spécifications), autant utiliser cette base documentaire comme base pour la génération du nom du logiciel. On peut effectuer une recherche sur tous les documents intitulés VER*, trouver le dernier (VER77), pour décider de créer le VER78 — mais créer ce document n’est pas instantané, et il vaut mieux que ce code existe avant la moindre action (pour la cohérence des noms des objets à développer, pour les imputations du temps passé à écrire chaque spécification…).</p>
<p>Plus sûrement, <strong>utiliser les répertoires</strong> (du genre « R:\Développements\Ventes\Rapports\VER78\ »). Un répertoire se crée en deux secondes, le code VER78 est réservé même si aucun document n’a été généré, et le collègue dans l’autre bâtiment, dix secondes plus tard, avec besoin équivalent, créera son VER79.</p>
<p>Archi-simple. Beaucoup trop pour certains.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/01/29/228-ou-sont-les-specs#rev-pnote-204-1" id="pnote-204-1">1</a>] <em>Dans ses fichiers, pas toujours sur son bureau.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/01/29/228-ou-sont-les-specs#rev-pnote-204-2" id="pnote-204-2">2</a>] <em>Dans les gros projets, il y a des gens qui passent leur temps à remplir des fichiers Excel avec les informations d’autres fichiers Excel, ou d’informations disponibles dans l’intranet local...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2008/01/29/228-ou-sont-les-specs#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/204
Une tâche à la fois
urn:md5:efb28f8521504ff00ec6e77dd921e271
2007-12-09T21:11:00+00:00
2023-12-27T11:01:58+00:00
Christophe
Informatique : l’art du développement
dommage
dysfonctionnement
développement
informatique
intelligence
mercenaire
mobilité
mémoire
offshore
optimisation
organisation
pessimisme
prise de tête
psychologie
saturation
SSII
temps
travail
ténacité
économie
économie de l’attention
<p>L’écho de ce billet de Joel Spolsky a résonné au plus profond de mon être le jour où je l’ai découvert :
<em><a href="http://www.joelonsoftware.com/articles/fog0000000022.html" hreflang="en">Human Task Switches Considered Harmful</a></em>.</p> <p>En gros, un développeur est un genre assez particulier d’humain qui a besoin de se concentrer pendant de longues périodes. Il se comporte comme un microprocesseur quand on lui demande de changer de tâche régulièrement. Le <a href="http://www.commentcamarche.net/forum/affich-696642-qu-est-ce-qu-un-changement-de-contexte">changement de contexte</a> est une opération lourde qui ne doit pas être répétée trop souvent ; dans le cas extrême le processeur passe son temps à passer d’une tâche à l’autre, à se reconcentrer sur ce qu’il fait, et ne fournit plus de travail utile.</p>
<p>À un moment, ce phénomène a constitué un gros problème dans mon boulot, au moment où je prestais<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/09/207-une-tache-a-la-fois#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> chez un client, à gérer dix micro-projets à la fois avec un bon paquet d’interlocuteurs. Le client désirait une sous-traitance à fond, avec moi et un collègue dans le rôle de l’« interface » avec le centre de développement de notre SSII à plusieurs centaines de kilomètres. Impossible de se plonger une demi-heure sur un problème quelconque sans être interrompu par un coup de fil à tel ou tel sujet.</p>
<p>Mon boulot actuel comporte à nouveau ce genre de pépin, mais sur une autre échelle : je me retrouve sur trois missions à la fois (du genre deux jours sur l’une, deux sur la deuxième, une journée sur la troisième) et, à chaque fois, me « replonger dans le contexte » de chacune va me faire perdre quelques cycles cérébraux, de la même manière qu’en rentrant de vacances je ne suis pas à 100% immédiatement. J’ai observé le phénomène dans le cas extrême d’un collègue obligé de « caser » des jours de réalisation de rapports complexes dans les trous d’une autre mission : il redécouvrait les spécifications et réanalysait ses propres réalisations quasiment d’un mois sur l’autre. Je l’observe sur moi-même sur une maintenance applicative à long terme qui tombe dans les « trous » des autres prestations (en gros une ou deux fois par mois…). Bref, ça n’avance pas.</p>
<p>Je l’observe sur un autre projet : je dois à nouveau sous-traiter la partie la plus fastidieuse de la réalisation à un collègue situé sur un autre site… d’où pas mal de temps perdu en explication de contexte, préparation de docs, CD, mise en place de spécifications bien plus précises que je ne l’aurais fait pour moi-même, bref tout un surcoût (<em>overhead</em>) identique à celui impliqué quand un programme sous-traite une partie du travail à un autre. Ajoutons des « effets tunnel » dus à des disponibilités épisodique de ma part (je preste ailleurs) et du client de ce projet, avec donc nécessité de nous poser des synchronisations. Ajoutons les besoins de recharger ma petite mémoire cache cérébrale avec les éléments dudit projet à la moindre question du sous-traitant.</p>
<p>L’informatique n’a jamais avancé que comme cela mais ma capacité de travail à moi ne double pas tous les deux ans… Mon cerveau est configuré pour du mode <em>batch</em>, et multiplier les tâches d’arrière-plan augmente mon stress de manière exponentielle.</p>
<p>Et je ne parle pas de la difficulté à développer quoi que ce soit à la maison avec une famille qui exige un peu de temps avec elle, et un gamin de 4 ans en particulier. Moi j’ai abandonné.</p>
<p><strong>Mise à jour de mai 2011</strong> : Et ça continue en ce moment, avec plein de clients exigeants à la fois, un téléphone professionnel qui me tombe dessus, et une tornade de dix-huit mois à la maison. Soupir.</p>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/09/207-une-tache-a-la-fois#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Du verbe « <a href="http://forum.wordreference.com/archive/index.php/t-391694.html">prester</a> » qui, s’il n’existe pas en français de France officiel, devrait y être inclus.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/09/207-une-tache-a-la-fois#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/185
Les joies de la SSII (7) : Un expert, sisi !
urn:md5:dfe29b4f14dcbd8bcbb39c969ac022ca
2007-12-04T21:32:00+00:00
2011-05-12T20:23:58+00:00
Christophe
Il faut bien manger
court terme
expertise
mercenaire
offshore
paradoxe
SSII
travail
virtuel
économie
<p>Quand il paye cher, un client exige forcément un prestataire expérimenté. Or quand on débute ou qu’on change de spécialité, on est forcément un peu vert. Contradiction...</p> <p>Pour une personne comme moi qui déteste mentir (parce que ça se voit et qu’immanquablement ça me retombe sur la g...), un inconvénient de la vie en SSII réside dans la nécessité de masquer sa vraie nature à son client. Les entreprises acceptent de payer pour des profils pointus, de vrais experts qui leur apportent quelque chose, mais des « juniors » ? Rarement. Donc les « juniors » sont vendus comme experts.</p>
<p>Je ne dis pas que les commerciaux présentent systématiquement n’importe qui en pipotant qu’il a quinze ans d’expérience sur le logiciel du client et sa configuration. Non, du moins dans les boîtes sérieuses qui tiennent à garder la confiance de leur client. Il y a un monde entre présenter un « excellent profil de jeune qui en veut et qui apprendra très vite » (pas forcément embauché d’ailleurs) et un « expert incollable » (formé la veille sur un coin de table).</p>
<p>Les clients évoluent aussi : ceux qui acceptaient n’importe quel petit jeune avec une bonne tête et un diplôme Bac+2/3/4/5/8 à l’encre à peine sèche pour leurs projets « An 2000 » ne voulaient parfois plus que de vrais experts quand la conjoncture était redevenue morose après 2001. Les conséquences furent tragiques pour les statistiques d’embauche des jeunes diplômés, les SSII en embauchant une énorme proportion. À cette même période morose, certains expérimentés, bien que lassés de leur spécialisation actuelle, sentaient la pression pour faire valoir cette expérience là où justement on pouvait la vendre chère — impossible de se recycler en redevenant un temps « junior ». Il fallut attendre la période « faste » actuelle où la pénurie facilite à nouveau les transitions vers les créneaux « à la mode ».</p>
<h3>Mon cas à moi personnel qui me concerne</h3>
<p>Je ne vais pas trop me plaindre pour ma part. Au siècle dernier, la <em>start-up</em> de clowns où j’ai démarré ma carrière a effectivement caviardé mon CV (expert d’assurance avec plusieurs années d’expérience, ouaouh !), rien moins qu’auprès d’un énorme client format CAC40.</p>
<p>Mais la grosse SSII où je suis tombé ensuite, bien qu’haïssable par certains aspects, a été beaucoup plus honnête sur ce point. Je ne connaissais effectivement pas grand-chose aux ERP quand je suis arrivé dans une usine d’un grand groupe d’électronique pour un projet de migration, mais le client le savait. Comme il savait être de fait un centre de formation bien pratique pour son fournisseur ! J’ai bien été intégré dans l’équipe, massivement formé à Oracle, rapidement facturé ; cinq ans après j’étais encore là. Pareil pour le client suivant, à qui j’étais vendu pour un poste moins technique, mais avec l’expérience du concept d’ERP cette fois.</p>
<p>Mon travail actuel a impliqué à nouveau un changement de spécialité. Après une nouvelle série de formations, la phase de mise en jambe a été « masquée » aux clients par un poste un peu bâtard moitié service moitié éditeur. N’avoir le client qu’au téléphone ou par mail pour du support permet de lui masquer de grands moments de solitude (« Mais de quoi il me cause ? Mais comment veut-il que je sache si on peut faire ci ou ça avec ce soft que j’ai découvert le mois dernier ? »). Évidemment, la personne que je remplaçais était injoignable, facturant ailleurs.</p>
<h3>En presta</h3>
<p>« Au front », <em>ie</em> en prestation en face du client, si on est encore un peu vert sur la dernière version du logiciel dans une configuration « réelle » un peu tordue, il faut apprendre à tergiverser quand le client attend des réponses sur des points précis, supposant que l’on en sait plus que l’éditeur parce que, quelque part, un commercial lui a dit que notre SSII était « partenaire <em>superpremium</em> » ou un truc comme ça.</p>
<p>Mais mes connaissances sur leur soft, je ne les ai trouvées qu’en formation (utile mais jamais suffisante), en parcourant les forums dédiés sur Internet, ou en côtoyant les gens plus expérimentés que moi : je ne suis pas un intime des développeurs ! Et notre service de support interne, effectivement performant, est refacturé à mon agence, donc il ne faut pas trop y toucher. Effet pervers haïssable de la logique des centres de coûts et de profits. Évidemment, le client refuse de se voir opposer ce genre d’argument de cuisine interne, et il a raison.</p>
<p>Il faudra faire illusion. Et ne pas dire au client que non, je n’ai pas pas derrière moi cinquante installations comme le commercial lui a peut-être fait comprendre sans jamais le dire. D’ailleurs il est rare de savoir ce que le commercial a dit au client, ça rend le jeu de rôle plus intéressant. De toute façon, le client aime comprendre autre chose, ce qui est déjà un progrès par rapport au cas fréquent du client qui ne sait pas ce qu’il veut mais le veut tout de suite. Le devoir de conseil sur un domaine que l’on ne maîtrise pas encore totalement est un exercice difficile.</p>
<h3>Cas extrêmes</h3>
<p>Il n’empêche que les histoires d’horreur de pseudo-experts pas juste verts, mais totalement débutants, fleurissent. Une ancienne de la branche <em>consulting</em> d’un très gros éditeur de bases de données m’a confié avoir dû se cacher de son client pour rédiger son rapport de stage : elle n’avait même pas encore son diplôme, et était déjà en régie chèrement facturée.</p>
<p>Le formateur-formé-la-veille revient également souvent. Recracher en public des notions apprises douze heures auparavant peut encore se jouer, mais si par malheur il y a dans la salle un client avec des problématiques précises et qui attend de la formation un peu de <em>consulting</em> plutôt que la bête régurgitation d’un livre...</p>
<p>Sinon, de la même manière que le chercheur d’emploi embellit son parcours, certaines SSII usent et abusent des CVs « relookés », où une simple formation trois ans auparavant équivaut à « développeur confirmé », où le <em>coaching</em> d’un simple collègue moins expérimenté fait de vous un chef d’équipe, et où la maîtrise des fonctionnalités d’un logiciel permet de vous envoyer sur une installation critique auditer la manière dont travaillent des gens qui manipulaient déjà l’outil avant votre bac....</p>
<p>Le client se marre parfois en voyant proposer le même CV par trois SSII concurrentes, « réexprimé » dans doute différemment à chaque fois : les embauches ne se font souvent qu’en vue d’une mission précise, et le super-profil avancé n’a peut-être pas encore passé le premier entretien (par contre il a pu répondre à trois annonces de SSII qui évoquaient la même mission, ou se retrouver dans les fichiers pour avoir répondu à des annonces bidon, et ne plus être disponible).</p>
<h3>Formation</h3>
<p>Bienheureux celui qui a été formé par un vrai formateur sur le produit qu’il va devoir utiliser, et non la veille, par un collègue déjà débordé qui subit déjà la pression pour son propre projet. Oui, la caractéristique d’une SSII, même en plateau, est que tout le monde <em>doit</em> facturer. Les formations formelles sont un moyen de sortir de l’engrenage, de réellement consacrer du temps à apprendre un sujet. Mais le formé coûte alors doublement de l’argent : il en coûte directement, et il n’en rapporte pas.</p>
<p>Sinon, rarissimes sont les cas où l’on peut consacrer du temps à un sujet, expérimenter des choses, tester une nouvelle version d’un soft « pour voir » : il faut « imputer » et facturer, et la pression pour « faire de la marge » est d’autant plus énorme qu’elle vient du plus haut de la hiérarchie (les actionnaires).</p>
<p>Au mieux, on arrivera à découvrir des choses « en temps masqué », noyé dans la masse de temps consacrée à un projet. Le <em>e-learning</em> facilite un peu la chose même si je n’en suis pas un fanatique. Il s’est d’abord imposé comme moyen de réduire les coûts. De toute façon il nécessite du temps aussi.</p>
<p>La conséquence, fatale de la logique « on forme (peut-être) et on facture » est que certains projets « essuient les plâtres » de la première réalisation d’un nouveau formé. Après tout, on n’apprend bien qu’en réalisant avec un but concret. Dans le meilleur des cas, le reste de l’équipe épaule et forme le nouveau. Dans le pire, le client paye longtemps (donc cher) une formation sur le tas qui a bonnes chances de déboucher sur un développement bancal.</p>
<p>Une mode actuelle réduit l’ampleur du phénomène du pseudo-expert : l’organisation en « plateau » ou « centre de compétence », bref en équipe de gens rassemblés autour d’une spécialité, et utilisés comme <em>pool</em> de compétences qui peut travailler simultanément pour plusieurs clients. Ce système permet d’intégrer en douceur les petits nouveaux. Le client ne les voit pas, ou sait qu’ils sont encadrés par des gens plus expérimentés, ou se contrefiche de leur existence.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">Partie 1 : Angoisse existentielle</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs">Partie 2 : Plein plein de chefs</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">Partie 3 : Le portable</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant">Partie 4 : Le consultant-migrant</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser">Partie 5 : Se battre pour bosser</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail">Partie 6 : Les joies de l’accès à distance</a><br />
Partie 7 : Un expert, sisi !<br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/18/480-les-joies-de-la-ssii-8-imputer-oui-mais-sur-quoi">Partie 8 : Imputer, oui, mais sur quoi ?</a></p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/12/04/447-les-joies-de-la-ssii-7-un-expert-sisi#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/409
Arrondir : oui mais comment ?
urn:md5:54ea730b2e67dbf93d15b11cd2a4439b
2007-11-15T21:33:00+00:00
2011-05-09T19:59:04+00:00
Christophe
Informatique : l’art du développement
chiffres
complexité
dysfonctionnement
développement
Europe
informatique
mathématiques
métainformation
paradoxe
perspective
précision
travail
valeur
économie
<p>Arrondir un chiffre n’est pas innocent, du moins pas en comptabilité ou informatique, encore moins en sciences.</p> <p>C’était un article passionnant dont je voulais parler il y a déjà longtemps : <em><a href="http://www.pldesignline.com/howto/showArticle.jhtml;?articleID=175801189" hreflang="en">An introduction to different rounding algorithms</a></em>.</p>
<p>On rappelle qu’en ingénierie (donc dans le monde réel auquel le résultat d’un programme se confronte fatalement un jour), un nombre comme 4,0 est forcément associé à un degré de précision exprimé par le nombre de chiffres : ici, deux chiffres significatifs impliquent une valeur entre 3,9 et 4,1.</p>
<p>En comptabilité, les nombres sont en général fixes : 3,56 € est implicitement strictement équivalent à 3,56 ± 0,0000000000000000000000000000000... € aussi précisément qu’est défini π. Et 200 €, c’est également 200,0000000000000000000000000000000000000000000000... €. Même la manipulation des quantités (addition, multiplication...) ne pose pas de problème, parce que la division d’une somme de 3 € en dix ne donnera <em>jamais</em> naissance à des tiers de centime, mais quelque part quelqu’un prendra ou supprimera ce centime. Idem dans les transactions de devises, on se contente d’échanger des yens contre des euros, qui existent déjà, avec un nombre décimales fixes. J’ai vu des prix fixés en dollars avec six décimales<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/11/15/80-arrondir-oui-mais-comment#pnote-81-1" id="rev-pnote-81-1">1</a>]</sup> mais le prix final, lui, produit d’une multiplication, était arrondi : on n’ergote pas sur un dixième de centime quand la somme finale se chiffre en centaine de milliers.</p>
<p>Les comptables ont plus sué (et les consultants ont gagné pas mal de sous) lors du passage à l’euro ; là pas d’échange de devises, mais une conversion de la monnaie en une autre avec un taux pas simple du tout<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/11/15/80-arrondir-oui-mais-comment#pnote-81-2" id="rev-pnote-81-2">2</a>]</sup>, et la garantie que la conversion des francs/marks/pesetas/florins/lires/schillings... en euros ne tomberait pas souvent juste. Ce fut une orgie de comptes destinés à récupérer des minuscules erreurs d’arrondis (calculés à quel niveau ? sur quels totaux ou sous-totaux ?), et je suis fort aise de ne pas avoir touché à la compta à cette époque.</p>
<p>Il n’empêche que dans tous les cas il faut <em>arrondir</em>. Si dans les transactions commerciales de tous les jours on arrondit en général vers le bas ou au plus proche ou à la tête du client sans se poser de questions, le jeu devient plus délicat pour les ingénieurs et quelques comptables qui ne veulent pas voir s’accumuler des approximations dues à ces arrondis, surtout dans les opérations répétitives.</p>
<p>Avec un chiffre significatif, on arrondit 3,1 à 3, et 3,8 à 4, mais <em>quid</em> de 3,5 situé à mi-chemin entre 3 et 4 ? En général on décide d’arrondir à l’inférieur (les cinq premières valeurs après le 3 arrondies au 3, les cinq suivantes au 4), ce qui donne 3. Mais pour être cohérent il faudrait arrondir -3,5 à -4, ce qui peut choquer. Même problème pour la technique d’arrondi au supérieur, et là aussi on risque un biais.</p>
<p>L’<strong>arrondi du banquier</strong> demande d’intervertir le sens d’arrondi alternativement pour la valeur « du milieu » : 3,1 arrondi à 3, 3,5 arrondi à 4, 4,5 arrondi à 4, et 5,5 arrondi à 6. Là aussi, il y a risque de biais si les valeurs penchent pour une parité particulière.</p>
<p>L’<strong>arrondi stochastique</strong> choisit de façon aléatoire 3 ou 4 pour arrondir 3,5. Franchement, calculer en n’étant pas certain d’avoir deux fois le même résultat me rend très dubitatif...</p>
<p>Les fonctions <strong><em>floor</em></strong> (sol) et <strong><em>ceil</em></strong> (plafond) souvent rencontrées se contrefichent de la valeur de la mantisse : 3,1 comme 3,9 s’arrondissent en 3 avec <em>floor</em>, et en 4 avec <em>ceil</em> (et -3,1 respectivement en -4 et -3). Ils introduisent donc un biais, mais cela n’a pas forcément d’importance.</p>
<p>L’<strong>arrondi vers le zéro</strong> utilise <em>floor</em> pour les nombres positifs, <em>ceil</em> pour les négatifs pour supprimer les biais.</p>
<p>La pure <strong>suppression de la mantisse</strong> (<em>chopping</em>) semble simple mais peut générer de sulfureux problèmes selon les objets informatiques réels que l’on manipule.</p>
<p>En deuxième partie, l’article s’étend sur les considérations très techniques, notamment si c’est du matériel simple, et non un processeur surdopé aux gigahertz, qui doit effectuer le travail.</p>
<p>J’ajouterai que limiter les erreurs d’arrondis est un but souvent suffisant, mais les supprimer est illusoire. En conséquence, en calcul numérique, comparer deux valeurs qui n’ont pas implicitement une précision exacte (comme de la monnaie ou un entier stocké sous forme d’<em>integer</em>) relève de la roulette russe, puisqu’à cause de l’arrondi le bête ordinateur risque de ne pas voir que le 9,999999999999999999 qu’il a calculé n’est pas égal à 10 (sous-entendu 10,0000000000000...). Il faut alors définir un seuil de tolérance ε (par exemple 0,000000000001) en-dessous duquel on estimera que la différence entre les deux chiffres est du bruit, et qu’il sont égaux.</p>
<p>Personnellement, je reste parfois rêveur devant des rapports Business Objects qui se limitent à des sommations et soustractions, mais affichent 0,00 sur une ligne, et -0,00 sur la suivante.</p>
<p>Par contre, les non-arrondis parfois bien nécessaires me font hurler : un institut de sondage sort par exemple un nombre de deux chiffres significatifs calculé à partir d’une poignée de personnes alors que la précision est plutôt de l’ordre du chiffre unique. Mais parler de « 57% des Français » fait plus sérieux que « 50% à 10 points près ». Voir par exemple <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/05/07/343-demographie-des-electeurs-du-second-tour">une célèbre étude sur la composition démographique de l’électorat de Sarkozy, dont j’avais parlé ici</a>.</p>
<p>En informatique de gestion, on apprend bien vite que les nombres ne sont pas les seuls à s’arrondir. La première fois que l’on calcule <code>TRUNC(une_date)</code> (dans mon cas avec Oracle) cela surprend, mais on s’y fait très vite : sous Oracle, un jour s’identifie à un entier. Le tronquer (supprimer la mantisse) revient à en prendre le début à minuit. Et on obtient le premier janvier de l’année avec <code>TRUNC(une_date,'YYYY')</code>.</p>
<p>Qu’une opération aussi basique que l’arrondi puisse donner lieu parfois à d’énormes prises de têtes me fascinera toujours. <em>Der Teufel steckt im Detail</em>.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/11/15/80-arrondir-oui-mais-comment#rev-pnote-81-1" id="pnote-81-1">1</a>] <em>Pour chiffrer ce qui passait à la sortie d’un </em>pipeline<em>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/11/15/80-arrondir-oui-mais-comment#rev-pnote-81-2" id="pnote-81-2">2</a>] <em>Quoique le facteur de conversion français de 6,55957 ne pose ni plus ni moins de problème que le 1,95583 allemand, qui ne s’arrondit que psychologiquement à 2, pas comptablement.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/11/15/80-arrondir-oui-mais-comment#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/81
Le spam délirant du jour
urn:md5:b43b5dc368247053a5f4f49c9811ac7c
2007-10-21T16:36:00+00:00
2011-05-08T20:47:16+00:00
Christophe
Inclassable & inclassé
Afrique
argent
dommage
incohérence
surréalisme
travail
<p><em>Salut Mr le Responsable l’Argent</em>...</p> <p>Je viens de recevoir ceci, posté à partir de <a href="https://www.coindeweb.net/citations/argent.html">ma page de citations sur l’argent</a> :</p>
<blockquote><p>Salut Mr le Responsable l’Argent <br /> <br />Je voulais juste savoir comment je peus faire pour travailler dans votre société de l’argent. Je suis Gradué en science commerciale option comptabilité.<br /> <br />Je vous demande si je peu envoyé mon CV et le Demande d’emploi<br /> <br />Merci j’attends votre réponse.<br /> <br /> Que les bon Dieu vous bénisse</p></blockquote>
<p>L’adresse est en yahoo.fr mais l’IP de provenance relève de la compétence de <a href="http://www.ic.cd/">ic.cd</a> - en clair, le Congo Démocratique.</p>
<p>Laissons de côté le fait que ce mail est tellement hors sujet (pas envoyé à la bonne adresse, à la bonne personne...) que, même si je cherchais à recruter, cette personne serait automatiquement disqualifiée, surtout pour un commercial. Je suis tout de même songeur. <em>Spam</em> massif (et manuel ?) d’un chômeur désespéré ? Variante pitoyable des <em>spams</em> nigérians (mais là j’ai du mal à voir où est le piège) ? Incompréhension complète de ma page de citations due à la maîtrise très approximative du français par cette personne ? Ou il y a un fossé culturel que je ne vois pas ?</p>
<p><strong>PS pour les copains</strong> : Fini le torticolis grâce peut-être au kétaprofène et au diclofénac de sodium. Pour traiter la cause profonde, il va me falloir une douzaine de séances de rééducation... chez l’orthoptiste !</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/10/21/435-le-spam-delirant-du-jour#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/394
L’échec du CRM ?
urn:md5:7ec424ffc7df88aceae312b0054c99b2
2007-08-21T07:54:00+00:00
2011-04-25T21:12:44+00:00
Christophe
Informatique lourde
administration
anticonsumérisme
base de données
bon sens
communication
complexité
CRM
dommage
déshumanisation
ergonomie
ERP
informatique
perspective
travail
<p>Grandeur et malheurs d’un <em>buzzword</em> adoré des vendeurs de logiciels.</p> <p>« Les clients se disent victimes des systèmes de GRC<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/21/366-l-echec-du-crm#pnote-70-1" id="rev-pnote-70-1">1</a>]</sup> » : l’article qui dénonce est ici :
<a href="http://www.lemondeinformatique.fr/actualites/lire-les-clients-se-disent-victimes-des-systemes-de-grc-22970.html">http://www.lemondeinformatique.fr/actualites/lire-les-clients-se-disent-victimes-des-systemes-de-grc-22970.html</a>.</p>
<p>Questions :</p>
<p>- Quelle est la part de l’enquête, et la part de l’envie de faire un titre un peu provocant de la part du journaliste ? Ou d’Accenture, qui a fait l’étude, et qui doit se demander quoi vendre après avoir fait l’apologie de tous les systèmes de gestion à la mode depuis un bout de temps ?</p>
<p>- On accuse le logiciel de dégrader la qualité des prestations de service au client, mais le logiciel est-il coupable quand le processus entier exige souvent des téléopérateurs et -vendeurs sous-traités et payés au lance-pierre qu’ils se comportent comme des robots et ne s’intéressent qu’à réduire au maximum la durée des appels (au pire), ou sont des petits jeunes sans expérience chargés de fourguer au client le maximum de produits (au mieux) ?</p>
<p>- Pour avoir vu fonctionner avec succès deux CRM d’assez près (support interne d’un service après-vente d’un fabricant d’électronique, et télévente de « matière première » à des professionnels de la restauration), je sais que le paramétrage d’un tel monstre est une entreprise titanesque. Les CRM sont <em>vraiment</em> flexibles, mais il faut beaucoup de réflexion et de temps. Évidemment, à l’autre bout, les besoins des clients sont infinis, donc jamais totalement couverts, et immédiats. Je me demande si ces trucs ne sont pas <em>trop</em> compliqués pour être totalement maîtrisés.</p>
<p>- L’une des plaies de notre société est le saucissonnage des tâches : un client a rarement le même interlocuteur de A à Z quand il a un problème, ce qui impose un système de suivi mais augmente les chances de « tomber au travers » et dépersonnalise la relation. Rien de logiciel là-dedans.</p>
<p>- La « relation client » est par définition la part la plus « humaine » de tout ce que peut faire une entreprise. Faut-il vraiment automatiser ça à fond ?</p>
<p>Bref, le problème est-il lié aux logiciels ou à la philosophie actuelle du service au client ?</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/21/366-l-echec-du-crm#rev-pnote-70-1" id="pnote-70-1">1</a>] <em>GRC est le tout aussi imprononçable équivalent français de CRM : </em>Customer Relationship Management<em> ou </em>Gestion de la Relation au Client<em>, au choix. Un concept très à la mode qui a fait la fortune des actionnaires de Siebel, SAP, Salesforce.com et consorts.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/08/21/366-l-echec-du-crm#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/70
Jack Welsh et les nouvelles règles du bizness
urn:md5:0dffc32ef2677fbac456dfe1519db164
2007-06-07T21:10:00+00:00
2011-04-09T13:50:15+00:00
Christophe
Il faut bien manger
cynisme
expertise
organisation
perspective
théorie
travail
économie
États-Unis
<p><a href="http://www.valuebasedmanagement.net/leaders_welch.html" hreflang="en">Jack Welsh</a> est l’homme qui dans les années 80 et 90 a dirigé <em><a href="http://www.ge.com/en/company/companyinfo/at_a_glance/history_story.htm" hreflang="en">General Electric</a></em>, une des plus grosses entreprises mondiales, héritière d’Edison. Son influence sur le <em>management</em> dans le monde entier a été déterminant.</p> <p>En juillet dernier, un article de CNN a repris ses principales règles (être numéro 1 ou 2, ou rien ; l’actionnaire est roi ; n’embaucher que les meilleurs...) , et les a méthodiquement assassinées :
<a href="http://money.cnn.com/2006/07/10/magazines/fortune/rules.fortune/index.htm?cnn=yes" hreflang="en">http://money.cnn.com/2006/07/10/magazines/fortune/rules.fortune/index.htm?cnn=yes</a>.</p>
<p>Certaines vacheries de CNN sur la pression des actionnaires et les effets pervers sur la gestion de l’entreprise seraient applaudies des deux mains par Lutte Ouvrière (et pas seulement).</p>
<p>Welsh a répondu :<br />
<a href="http://money.cnn.com/2006/07/10/magazines/fortune/welch_defends.fortune/index.htm" hreflang="en">http://money.cnn.com/2006/07/10/magazines/fortune/welch_defends.fortune/index.htm</a>.</p>
<p>Quand ces articles sont parus, je m’étais promis d’en faire un résumé, mais l’excellent Éric Cabrol m’avait pris de court : <a href="http://eric.cabrol.free.fr/dotclear/index.php/2006/09/12/275-les-nouvelles-regles-du-business?cos=1">allez lire son résumé de la polémique chez lui !</a></p>
<p>En annexe, voir également <a href="http://it.slashdot.org/article.pl?sid=06/07/11/1552245&threshold=4" hreflang="en">la discussion sur le sujet sur Slashdot</a>, avec quelques réflexions de saint mauvais esprit (du genre : être passionné par son métier, c’est bien, ce n’est pas un prétexte pour se faire exploiter).</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/06/07/225-welsh-et-les-nouvelles-regles-du-bizness#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/202
Je hais Notes
urn:md5:67f76177f8b5fb7a75b855f26a3345bb
2007-04-17T22:44:00+00:00
2014-02-26T11:23:14+00:00
Christophe
Informatique pratique
haine
informatique
Lotus Notes
réseau
sabotage
travail
<p><a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/12/239-signatures-dans-lotus-notes">J’ai déjà eu l’occasion de dire du mal de Lotus Notes</a>, subi chez un client l’an dernier, et utilisé régulièrement dans mes nouvelles fonctions. <a href="http://homepage.mac.com/bradster/iarchitect/lotus.htm" hreflang="en">Je ne suis pas le seul à en dire du mal</a> (merci à <a href="http://guerby.org/blog/">Laurent Guerby</a> pour le lien), je crois même que <a href="http://padawan.info/fr/humour/loi_de_murphy_appliquee_aux_conferences.html">ce soft fait l’unanimité contre lui</a>.</p> <p><em>(</em>Caveat<em> du 6 février 2008 : Suite aux affrontements dans les commentaires, je précise que mon ire est dirigée sur la version 5.0.5 de l’an 2000 de Notes, celle que <del>j’utilise</del> je subis au boulot, qui est certes ancienne. La plupart des doléances ci-dessous n’en restent pas moins valables, et sont scandaleuses même pour un produit aussi ancien.)</em></p>
<ul>
<li><strong>Je déteste ses raccourcis claviers non standard</strong>, <em>ie</em> différents de ceux en cours sur la plate-forme, qu’il est de bon ton de respecter : <code>Ctrl-A</code> pour tout sélectionner (et pas <code>Ctrl-T</code>), etc.</li>
</ul>
<ul>
<li>Le <strong>vocabulaire est aussi non standard</strong>. Qui dit « mémo » pour un courrier ou email ? Notes remonte peut-être à Mathusalem, mais il faut savoir évoluer avec le monde. « Détacher » pour sauvegarder une pièce jointe : bizarre (et non, la pièce jointe reste quand même dans le mail).</li>
</ul>
<ul>
<li>C’est lié au paramétrage chez mon employeur : <strong>impossible de rafraîchir le courrier sans vider la corbeille</strong> ! Avec demande de conformation en plus. À quoi sert une poubelle que l’on doit vider sur le champ ? <br />J’ai à présent un répertoire « Z-Corbeille » mais le bouton <code>Supprimer</code> ne sert alors plus à rien.<br />D’ailleurs, c’est peut-être mieux ainsi : un message supprimé est conservé dans l’affichage, simplement doté d’une icône de corbeille à papier supplémentaire. Il gêne toujours.</li>
</ul>
<ul>
<li>Cet abruti n’est <strong>pas capable de suivre un raccourci vers un répertoire</strong> ; si je ne fais pas attention je joins un fichier <code>.lnk</code> ! À l’inverse, à la sauvegarde d’une pièce jointe, cliquer sur un raccourci de répertoire mène à l’enregistrement de son fichier sous le nom du répertoire.lnk...</li>
</ul>
<ul>
<li>Le glisser-déplacer n’est pas une solution, <strong>le fichier apparaît bien dans la fenêtre... sous son nom DOS</strong> : <code>fichier~1.txt</code> !!! Quel immonde pile de <em>patchs</em> et de <em>hacks</em> contient donc ce programme pour que de tels morceaux de la première moitié de la décennie précédente remontent à la surface ??!!</li>
</ul>
<ul>
<li>Il existe une <strong>version web</strong> : elle n’est pas compatible Firefox (mais ça passe avec <a href="http://extensions.geckozone.org/IETab">IETab</a>).</li>
</ul>
<ul>
<li>De même, cette version web possède une <strong>ergonomie complètement différente de la version client-serveur</strong> lourde. Je ne parle pas d’apparence ou de fonctionnalité évoluée disparue (après tout c’est du web), mais de logique : par exemple les éléments envoyés ne peuvent pas être classés automatiquement dans un dossier dans la version web, ils restent dans les « Envoyés ».</li>
</ul>
<ul>
<li>D’ailleurs, ces éléments classés apparaissent quand même dans la vue des messages « Envoyés » (d’où doublonnage) !</li>
</ul>
<ul>
<li>Il existe une autre version web (!) compatible, ultra-légère (en fonctionnalités sinon c’est <em>full Java</em>) et ultra-limitée, et ultra-pitoyable par rapport au moindre webmail libre comme <a href="http://www.squirrelmail.org/screenshots.php" hreflang="en">Squirrelmail</a> ou <a href="http://www.horde.org/imp/screenshots/" hreflang="en">Imp</a>.</li>
</ul>
<ul>
<li><strong>L’archivage dans une base de courrier locale ne tient pas compte des nouveaux dossiers</strong> créés après l’initialisation de ladite base, histoire d’être sûr de bien flinguer l’arborescence.</li>
</ul>
<ul>
<li>La recherche fonctionne très mal.</li>
</ul>
<ul>
<li>L’identification se fait grâce à un fichier ID : pourquoi pas ? Mais ce n’est pas parce qu’on a installé ce fichier sur une machine que l’on retrouve son environnement de travail. <strong>Aucune intégration avec l’authentification système</strong>.</li>
</ul>
<ul>
<li>Dans la vue des dossiers, <strong>il n’y a pas l’heure</strong>. Pas pratique quand on trie des courriers tous reçus le même jour.</li>
</ul>
<ul>
<li>Si vous savez comment <strong>trier des mails en cascade</strong> (les réponses placées sous le mail d’origine avec un petit décalage à chaque réponse), comme doivent savoir le faire tous les logiciels du domaine depuis quinze ans, je suis preneur. <br />De plus, il me semble que Notes est incapable de conserver les références entre mail, toutes les enfilades sont cassées à chaque fois que je réponds à un message. Saleté. (Je n’ose penser aux outrages que doivent subir toutes les RFC à chaque courrier qui entre ou sort de cette bouse.)</li>
</ul>
<ul>
<li>Je ne connais <strong>pas deux boîtes de dialogue au look identique</strong> dans toute l’application.</li>
</ul>
<ul>
<li>Cette abomination est très douée pour <strong>planter à l’ouverture d’un mail en HTML</strong>. Heureusement, j’ai pu paramétrer un appel à Firefox (ne me demandez pas comment, je ne pense pas pouvoir retrouver). Après, il y a juste un bug mineur de perte du focus quelque part mais bon...</li>
</ul>
<ul>
<li>Notes tient à la distinction entre « Visualiser » et « Lancer » une pièce attachée. La première option utilise un moteur interne assez laid (surtout pour le texte), l’autre lance l’application associée (Word...). Mouais.</li>
</ul>
<ul>
<li>On a l’impression qu’il y a des menus tout en bas, mais rien ne se passe quand on clique.</li>
</ul>
<ul>
<li><strong>Ce boulet interrompt volontiers l’utilisateur</strong> pour dire « Y a un mail, dis, y a un mail ! ». Je n’ai pas encore désactivé ce comportement, il est encore assez rare (pas de spams sur ma boîte pro), et par OK on retourne à l’application qui était active.<br />Par contre en basculant un peu plus tard sur Notes, le nouveau courrier n’apparaît pas, il faut rafraîchir. Grandiose.</li>
</ul>
<ul>
<li>Ne me demandez pas quelle version j’utilise, je ne sais pas. D’ailleurs, vue l’inertie monstrueuse dans une grande entreprise sur ce sujet (on ne change pas de client mail tous les deux ans, il ne faut pas changer les habitudes d’autant de monde sur un sujet si critique ; ils ne sont pas fous au support bureautique), la version à l’ergonomie retravaillée par des anciens d’Apple (ou même de Microsoft, à ce stade je m’en fous) pourrait sortir demain que je ne la verrai pas avant un lustre.</li>
</ul>
<p><strong>Mise à jour de 2011</strong> : Mon employeur a migré (enfin et dans la douleur) à la version 8. La plupart des reproches ci-dessus ne sont plus valables. On revient de loin ! L’outil est utilisable, surtout le <em>webmail</em> qui en fait remplace très bien le client lourd (devenu lui absolument escargotesque).</p>
<p><strong>Mise à jour de 2014</strong> : L’an dernier nous avons migré vers Outlook. Même si je n’aime pas Microsoft plus qu’avant, au moins leur programme est-il utilisable (je parle du client).</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/04/17/321-je-hais-notes#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/277
Service après-vente
urn:md5:571cd74a007eb8ab57be8df3293b3619
2007-04-14T21:00:00+00:00
2011-03-28T20:15:11+00:00
Christophe
Blogger, une aventure
Allemagne
anticonsumérisme
blog
communication
coup bas
dommage
DRM
dysfonctionnement
ERP
espionnage
foutage de gueule
Léandri
Microsoft
MP3
Oracle
perspective
réseau
SAP
saturation
Seconde Guerre Mondiale
travail
Windows
économie
<p>Des billets de blog liés à l’actualité, c’est bien, mais il faut assurer le service après-vente et suivre les affaires évoquées.</p> <p>Mini-compilation :</p>
<ul>
<li><a href="http://www.petiteanglaise.com/" hreflang="en">Petite Anglaise</a> a <a href="http://maitre.eolas.free.fr/journal/index.php?2007/03/29/587-affaire-petite-anglaise-la-victoire-de-la-blogueuse">gagné son procès aux prud’hommes pour licenciement abusif</a>. J’avais participé au <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/21/188-google-bombing-pour-petite-anglaise">Google bombing en sa faveur</a>, mais mon billet est à présent redescendu bien bas dans les résultats de Google, éclipsé par tous les articles à ce sujet. Il est vrai aussi que <a href="http://searchenginewatch.com/showPage.html?page=2164611" hreflang="en">Google a récemment pris des mesures contre le bombing</a>.<br /> <a href="http://www.20minutes.fr/article/148757/20070329-Strasbourg-Victoire-pour-Petite-Anglaise.php">Un an de salaire, soit 44 000 euros de dédommagement</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/04/14/323-service-apres-vente#pnote-275-1" id="rev-pnote-275-1">1</a>]</sup>, c’est assez sympa ; à ce tarif je veux bien me faire virer tous les ans. Je me sens motivé pour prolonger <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">ma série sur la vie en SSII</a> :-)</li>
</ul>
<ul>
<li>Après la FNAC et <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/02/28/313-mp3-sans-drm-achetables-en-ligne-enfin">ses (quelques) MP3 non protégés</a>, <a href="http://www.ratiatum.com/news4733_EMI_abandonne_les_DRM_sur_iTunes_quelles_consequences.html">iTunes se lance aussi dans le sans-DRM : EMI a cédé et vendra des morceaux non plombés</a>. L’avenir semble soudain moins sombre dans la guerre contre le verrouillage de la « propriété intellectuelle », même si on est sans doute plus proche du vent qui tourne, style Stalingrad, que de la victoire presque finale, genre chute du Mur de Berlin.</li>
</ul>
<ul>
<li>Même sur des sujets historiques, je me fais rattraper par l’actualité : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/04/14/139-fritz-kolbe">Fritz Kolbe, l’Allemand anti-nazi qui renseignait les Américains</a>, a droit à <a href="http://www.telleestmatele.com/article-6269574.html">une émission d’une heure mercredi 11 avril sur Arte</a>. (Et à cause de mon manque de temps, je publie ceci beaucoup trop tard...)</li>
</ul>
<ul>
<li>Vu le temps dont je dispose, non, je ne parlerai pas de la présidentielle. Allez, juste un lien sur un passionnant et affligeant billet de Maître Eolas : <a href="http://www.maitre-eolas.fr/2007/04/03/592-la-machine-a-fabriquer-des-delinquants">comment faire replonger des délinquants rangés des voitures</a> (<strong>2009</strong> : Lien mis à jour).</li>
</ul>
<ul>
<li>Je ne parlerai pas non plus du dernier monstre de Microsoft, sinon pour dire que je l’ai vu rapidement, et que, s’il est moins laid que XP, rien ne m’a frappé qui me donne envie de migrer la machine du boulot, ou d’abandonner mon Mac ou ma Ubuntu.<br />Au passage, le début du rejet des DRM décrit ci-dessus montre, une fois de plus, que Microsoft est incapable de sentir où va tourner le vent de l’histoire informatique : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/02/12/298-analyse-du-cout-de-la-protection-de-contenu-de-windows-vista-par-peter-gutmann">une des principales causes du retard de Vista vient de l’incrustation des DRM à un niveau très profond</a>.</li>
</ul>
<ul>
<li><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2005/09/16/2-hd-dvd-contre-blu-ray">Un an et demi après mon billet sur le sujet</a>, la bataille entre HD DVD et Blu-Ray fait rage, et pour ce que j’en vois, ça a quand même du mal à décoller dans notre coin de la planète. Je laisse filer, ma télé est encore cathodique et le disque dur du magnétoscope plein à ras bord de feuilletons, séries, documentaires, vieux films.</li>
</ul>
<ul>
<li>J’avais fait l’apologie de l’<em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/18/123-encyclopedie-du-derisoire">Encyclopédie du Dérisoire</a></em> de Bruno Léandri : il continue à sévir dans <em>Fluide Glacial</em>, et je <a href="http://www.fluideboutique.com/cgi-bin/fluide/resultatrech.asp?Option=R">conseille fortement les Hors-Série</a> <em>Votre Entreprise en 2007</em> et <em>Élections 2007</em> (tous publics).</li>
</ul>
<ul>
<li>Je ne devrais plus trop parler de SAP et d’Oracle Applications, je n’y touche plus. Quoique si ça se trouve il me reste des brouillons de billets sur une comparaison d’un point obscur entre ABAP et PL/SQL.</li>
</ul>
<ul>
<li>J’ai plein de billets de <a href="http://www.joelonsoftware.com/" hreflang="en">Spolsky</a> en attente de lecture, donc pas la peine de les lire vous non plus, je les paraphraserai ici dans les quelques années qui viennent.</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/04/14/323-service-apres-vente#rev-pnote-275-1" id="pnote-275-1">1</a>] <em>Nets d’impôts, sans doute, puisque ce sont des dommages et intérêts...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/04/14/323-service-apres-vente#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/275
Des psychopathes à la tête d’entreprises
urn:md5:7ab9188d900a1c05855fc3f5c0752402
2007-02-26T00:00:00+00:00
2010-11-24T20:28:05+00:00
Christophe
Res publica
coup bas
hiérarchie
travail
économie
<p>Certains dirigeants se comportent en psychopathes au sens clinique du terme : comment les repérer ?</p> <p>Robert Hare, un psychologue canadien, <a href="http://www.fastcompany.com/magazine/96/open_boss.html" hreflang="en">fait le lien entre les psychopathes et certains chefs d’entreprise</a>.</p>
<p><em>Résumé-traduction-paraphrase</em> :</p>
<p>Rappelons que les psychopathes sont, en gros, le 1% de la population constitué de gens que leur conscience et leur manque total d’empathie et de remords rendent dangereux : menteurs sans complexes, manipulateurs, ils portent souvent un masque qui masque leur nature et aiment le pouvoir. Les psychopathes ne sont pas tous violents, surtout les moins atteints.</p>
<p>Le lien avec certains patrons qui ne s’intéressent qu’à leur intérêt (soit-disante <em>shareholder value</em>) sans aucun remord quant aux dégâts, par exemple ceux d’Enron, est évident. D’où une question : ne peut-on les repérer ? Les Américains aiment soumettre à des tests de nombreuses catégories professionnelles : pourquoi pas un test pour repérer les psychopathes aux postes de responsabilité ?</p>
<p>Les entreprises sont-elles des monstres psychopathes, où pouvoir et contrôle sur les autres attirent ce genre de population ? Est-ce une conséquence de la vénération des chefs charismatiques qu’on ne juge qu’aux résultats, sélectionnant ainsi ceux totalement insensibles au sort des autres ?</p>
<p>En effet, les psychopathes d’entreprise sont à l’aise dans le chaos de restructurations, fusions, acquisitions... du monde moderne, tout comme une guerre ou une période politiquement troublée révèle les plus dangereux d’entre eux (Milosevic, Karadzic...). Le monde de la « nouvelle économie », bien différent des structures figées de grandes entreprises, attire le psychopathe avide de sensations fortes.</p>
<p><strong>Comment les reconnaître</strong> ? Hare a mis un test au point. Il recherche certaines caractéristiques : haute estime de soi, égoïsme, hypocrisie, mensonge pathologique, manipulation, manque de remords et d’empathie, refus de reconnaître ses torts. <br />L’enfance des psychopathes d’entreprise (ou <em>successful pyschopaths</em>) a plutôt été dorée ; ils sont peu « instables » ou « socialement déviants ». (Ces derniers, si ce sont des psychopathes, versent plus souvent dans la violence que dans la « comptabilité créative ». )</p>
<p>Ces traits ont été retrouvés dans nombre de chefs d’entreprise connus, d’Henry Ford aux patrons d’Enron, ou dans Al Dunlap : celui-ci a viré des milliers de personnes sans réel besoin, manipulé des comptes, et par-dessus le marché osé demander une prime de licenciement (accessoirement il n’est pas allé à l’enterrement de ses parents, et a perdu un divorce pour « cruauté extrême »).<br />Beaucoup d’autres, moins spectaculaires et plus mesurés, restent inconnus. Nous en connaissons tous probablement un (<em>Rappelez-vous : 1% de la population. Ça fait du monde...</em>).</p>
<p>Face à un monstre de ce genre, la plupart des gens tombent dans le piège en supposant que son interlocuteur se soucie un tant soit peu des sentiments des autres. Au contraire, il joue là-dessus et mime la loyauté et l’amitié. Le commun des mortels a du mal à réaliser à quel point un psychopathe est différent.</p>
<p>Attention, ne pas confondre le psychopathe avec une autre espèce moins dangereuse qui fleurit dans les hiérarchies : <strong>le narcissique</strong>, qui transforme parfois son défaut en atout (Steve Jobs, Jack Welch, Andy Grove, Bill Gates... - rien que ça !), et dont le but, même égoïste, est plus « noble » (changer le monde, quel que soit l’avis des autres) et en tout cas n’est pas de manipuler et torturer autrui. Couplé avec un « obsédé de la productivité » (Steve Ballmer...), le narcissique peut faire merveille.</p>
<p>Le psychopathe se rencontre peu dans les fondateurs d’entreprise, car ce milieu convient mal à un parasite qui mise sur le court-terme ; il ne s’intéresse pas à l’entreprise - au contraire du narcissique qui s’y identifie et y est loyal.</p>
<p>Pour s’en préserver, les tests d’embauche sont un début, mais la vraie réponse est une culture d’ouverture et de confiance, surtout dans les périodes de changements. Les lois sur le harcèlement sont un outil, mais, plus que les Européens, les Américains sont handicapés par leur culture individualiste. Les Asiatiques sont moins touchés, de par leur culture du consensus (<em>Remarque personnelle : Mao est un gros contre-exemple...</em>) : la création d’un psychopathe est à moitié culturelle...</p>
<p><em>Fin du résumé-traduction</em>.</p>
<p>Pour finir, j’ajouterai deux remarques :</p>
<ul>
<li>Une, que je tiens de je ne sais où, notamment dans le contexte des détournements de fonds et des délits d’initiés : <strong>des gens assez intelligents pour gérer des entreprises gigantesques le seront aussi assez pour contourner tout moyen destiné à les garder, eux, sous contrôle</strong>. Ceux au sommet ont donc une forte chance de « se sucrer » quel que soit le système. (Question de proportion aussi, certains aux bas échelons sont des champions de l’optimisation des notes de frais.)</li>
</ul>
<ul>
<li>D’autre part, l’<strong>empathie chute avec l’éloignement</strong> : si je suis un chef d’entreprise, j’aurai du mal à virer des gens avec lesquels je travaille ; si je suis l’actionnaire qui papillonne entre plusieurs entreprises sans côtoyer grand monde, moins ; si je suis le petit porteur qui a placé son argent là où il rapportait 0,1% de plus, je n’aurai aucun scrupule, surtout que mon action sera totalement indirecte.</li>
</ul>
<p>Et pas besoin de chercher des tendances psychopathes dans ces deux phénomènes.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/26/173-des-psychopathes-la-tte-dentreprises#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/156
Des noms de tables à 4 lettres
urn:md5:2464c25eae7abe52e5e454c65cf2e06a
2007-02-16T20:49:00+00:00
2011-03-27T20:56:41+00:00
Christophe
Informatique : l’art du développement
base de données
développement
informatique
métainformation
organisation
signifié
travail
<p>Problème concret dans une création de base de données : faut-il des noms de tables compacts ou verbeux ?</p> <p>Un problème récurrent quand on se balade dans un modèle de données d’une base pas connue est de comprendre rapidement quelle colonne pointe sur quoi (organisation) et ce que signifie la donnée (sens). Je parle là de <strong>lisibilité</strong> , au sens du développeur, qui rend rapide la compréhension d’un programme, et sa modification.</p>
<p>J’avais vu jusque récemment deux <del>techniques</del> <del>habitudes</del> cultures principales (parmi ce qui est plus ou moins correctement conçu, je laisse les gadgets Access bricolés de côté) :</p>
<ul>
<li>Le schéma aux <strong>noms de tables à rallonge</strong>, avec des noms de champs à rallonge. <br />Cas typique : Oracle Applications. On sait tout de suite ce que contient la colonne <code>ORDER_LINE_NUMBER</code> dans la table <code>OE_ORDER_LINES</code>, et la clé est de manière assez évidente <code>ORDER_LINE_ID</code>. Inutile de se demander longtemps ce que contient une colonne <code>CUSTOMER_ID</code> (pour un anglophone du moins) (quoique <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii">la notion de client soit parfois assez subtile</a>...).<br /><em>Avantage</em> : la lisibilité, la facilité de compréhension immédiate, au moins dans les grandes lignes. <br /><em>Inconvénient</em> : des requêtes à rallonge, longues à taper, du code peu compact sauf à utiliser <del>massivement</del> judicieusement des alias.</li>
</ul>
<ul>
<li>Le schéma aux <strong>noms courts</strong>, assez cryptiques en fait. <br />Le pire exemple est SAP, avec ses noms de table à 4 lettres, aux noms de champs à peine plus longs. L’équivalent de l’exemple ci-dessus est la colonne <code>POSNR</code> dans la table <code>VBAP</code>, la clé est composée de <code>VBELN</code> et de <code>POSNR</code>, et l’équivalent du dernier exemple ci-dessus est <code>KUNNR</code>. Oui, c’est de l’allemand, en plus.<br /><em>Avantage</em> : du code compact et rapide à lire... si on connaît par cœur le modèle de données.<br /><em>Inconvénient</em> : la moindre nouvelle table ou colonne rencontrée force à se reporter à la doc, et la mémorisation est un cauchemar.</li>
</ul>
<p>(<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">J’ai déjà parlé de la différence entre les modèles de SAP et d’Oracle</a> sur le plan philosophico-technique, ce n’est pas le sujet ici.)</p>
<p>J’ai récemment découvert, dans un logiciel qui n’a rien à voir avec un ERP, une troisième technique, proche de la seconde mais qui ne me donne pas immédiatement de l’urticaire, elle. Les principes sont :</p>
<ul>
<li>les noms de tables sont très courts, 4 lettres (ça c’est le point négatif) ;</li>
<li><strong>les noms de colonnes commencent par le nom de la table dont ils sont la clé</strong> !</li>
</ul>
<p><em>Exemple</em> : Un « code de collectivité » est défini dans la table <code>COLL</code> et le champ <code>COD</code> : la colonne sera en fait <code>COLLCOD</code>, clé primaire. (Le fait que ce soit, là, du français, facilite la mémorisation :-). Idem pour la colonne <code>OPEGANN</code> : une année (budgétaire) référencée dans <code>OPEG</code>.</p>
<p>Le plus intéressant est que si ce code est repris dans une autre table comme clé étrangère, je n’ai pas à me casser le crâne à me demander « mais où <code>BUPRNUMINT</code> pointe-t-il ? à quelle table <code>BUDGEXE</code> fait-il référence ? » — chose parfois difficile avec les deux normes ci-dessus (et non, <a href="http://www.developpez.net/forums/archive/index.php/t-32600.html">les modèles ne sont pas contraints</a>, le prix en performance et administration est bien trop lourd pour un ERP, et/ou n’était pas prévu dans les softs les plus anciens).</p>
<p>Et quand on bosse dans la décisionnel et les <a href="http://fr.wikipedia.org/wiki/Extract_Transform_Load">ETL</a>, ou dans l’intégration de données, où toutes les incohérences de données remontent comme le gaz carbonique dans une bouteille de champagne après un tour en centrifugeuse, ce genre de gadget est pain béni :-)</p>
<p>(Soyons lucide, il est impossible de généraliser cette astuce au-delà de quelques dizaines de tables, 4 lettres ne suffisent plus, on doit recourir aux soulignés (<code>_</code>) et la lisibilité s’effondre.)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/16/309-noms-de-tables-a-4-lettres#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/281
Encore un nouveau langage à apprendre : le D
urn:md5:6b4c0bd5b2cd68aa49e08300ceb75686
2007-02-10T21:40:00+00:00
2017-06-29T10:35:46+00:00
Christophe
Informatique : l’art du développement
développement
expertise
informatique
ouverture d’esprit
travail
économie de l’attention
<p>Faut-il se lancer dans ce potentiel successeur du C++ ?</p> <p>La liste des langages-que-je-voudrais-bien-apprendre-mais-j’aurai-jamais-le-temps-avant-la retraite était déjà longue<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> : <br />Perl (au moins ai-je fait quelques petits exercices il y a quelques années, mais de là à tutoyer le <a href="http://www.cpan.org/" hreflang="en">CPAN</a>…) ; <br />Python (<strong>Mise à jour</strong> : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/07/09/521-python-et-moi">ah depuis, j’ai pu commencer</a> !) ;<br /> Ruby (apparemment très élégant) ;<br /> Java (survolé <a href="http://penserenjava.free.fr/">un bon livre d’initiation</a>, mais jamais pratiqué, et la verbosité et le mécanisme de gestion des erreurs me font peur) ;<br />Objective C (le <a href="http://penserenjava.free.fr/" hreflang="en">livre était bon</a> mais il m’a fallu un an pour arriver au bout, et si l’élégance et la compacité me séduisent, impossible de commencer à mettre en pratique, surtout que le langage n’est réellement utilisé que sur Mac...)<br />...</p>
<p>Il manque un langage fonctionnel là-dedans, ou le Lisp, qui paraît-il offre une toute autre perspective sur la programmation.</p>
<p>Et ce n’est pas professionnellement que ça va s’arranger : si le PL/SQL était robuste et assez bien conçu (inspiré du Pascal), il ne sert pas à grand-chose d’autre qu’à tirer tout le jus d’Oracle, et <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/19/186-prise-de-tete-en-abap">j’ai vidé ici ma bile sur l’ABAP</a>, de toute façon propre à SAP. L’avenir immédiat s’annonce d’ailleurs plus orienté vers des outils de matraquage de bases de données à base de cliquodrome.</p>
<p><strong>Et puis arrive ce D</strong>.</p>
<p>Le promoteur est <a href="http://www.digitalmars.com/" hreflang="en">Digitalmars</a>, un éditeur de compilateurs C et C++, suite à la pertinente réflexion suivante :</p>
<blockquote><p>“<em>It seems to me that most of the "new" programming languages fall into one of two categories: Those from academia with radical new paradigms and those from large corporations with a focus on RAD and the web. Maybe it’s time for a new language born out of practical experience implementing compilers.</em>” <br /> <br />« Il me semble que la plupart des “nouveaux”langages tombent dans une de deux catégories : ceux du monde académique avec des paradigmes radicalement différents, et ceux des grandes entreprises avec un accent mis sur les outils RAD et le web. Peut-être le temps est-il venu pour un langage né d’une expérience pratique dans l’implémentation de compilateurs. »<br /> <br />— Michael</p></blockquote>
<p>La version 1.0 est sortie en janvier. Un <a href="http://www.heise.de/ct/inhverz/search.shtml?T=programmieren+mit+D&Suchen=suchen&nm=0" hreflang="de">article de C’t</a> en dévoile rapidement quelques aspects. Si la syntaxe rappelle furieusement le C, et que le D s’inspire du C++, il n’en dérive pas, et nombre d’améliorations lui évitent de devenir l’aberration que, selon certains et d’après ce que j’en ai entendu, le C++ est devenu.</p>
<p>Au menu : plus de préprocesseur, mais une gestion interne des versions ; des fonctionnalités objet plus propres qu’en C++ (pas d’héritage multiple, l’exemple de la fausse bonne idée) mais sans devenir le corset qu’est Java ; l’équivalent des <em>hash tables</em> de Perl, des <em>delegates</em>, des <em>templates</em> ; pas mal de sucre syntaxique<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup> ; un <em>garbage collector</em> rustique ; et (ce qui m’attire le plus) gestion des tests unitaires et <em>design by contract</em><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>.</p>
<p>Au final rien de très nouveau, j’ai l’impression d’une mise à niveau du C, vieillissant et trop proche de la gestion mémoire réelle, au moyen de concepts plus modernes déjà maintes fois implémentés.</p>
<p>Le langage va-t-il trouver son public ? Il est déjà utilisable (intégration GCC, <em>plugin</em> Eclipse...). Bjarne Stroupstrup, le créateur du C++ <a href="http://www.research.att.com/~bs/dne.html" hreflang="en">se moquait de son œuvre un jour</a> : “<em>Within C++, there is a much smaller and cleaner language struggling to get out</em>” : le D est-il celui-là ?</p>
<p>Mais sans point fort ou « étendard » (comme les sites <em>Ruby On Rails</em> pour Ruby), ni mégacorporation derrière lui, comment faire son trou à côté du rouleau compresseur C#, et mordre sur le monstrueux existant en C et C++ (bien que des convertisseurs automatiques imparfaits existent) ou celui en Java ?</p>
<p><strong>Ajout de 2009</strong> : Une <a href="http://tech.slashdot.org/article.pl?sid=09/02/22/1346256" hreflang="en">discussion sur Slashdot</a> en février montre que le langage vit toujours et a conquis quelques adeptes. Sortira-t-il de sa niche ?</p>
<p><strong>Ajout de 2012</strong> : <a href="http://linuxfr.org/news/le-langage-d--2">Le langage vit toujours, 25è des plus utilisés</a> paraît-il.</p>
<p><strong>2017</strong> : Le D est <a href="https://gcc.gnu.org/ml/gcc/2017-06/msg00111.html" hreflang="en">inclus dans les outils GNU</a></p>
<h4>Bibliographie</h4>
<ul>
<li>Article Wikipédia : <a href="http://en.wikipedia.org/wiki/D_programming_language" hreflang="en">http://en.wikipedia.org/wiki/D_programming_language</a></li>
<li>Site officiel : <a href="http://www.digitalmars.com/d/index.html" hreflang="en">http://www.digitalmars.com/d/index.html</a></li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Et encore me limité-je ici aux langages informatiques. J’ai dû abandonner les cours d’espagnol après la naissance du Mimi, et je n’ai jamais donné au chinois le temps que j’aurais voulu - pas facile tout seul.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>J’adore cette expression.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Je ne suis toujours pas sûr de <a href="http://archive.eiffel.com/doc/manuals/technology/contract/" hreflang="en">savoir concrètement ce qu’implique le DBC</a>, et surtout si à l’usage c’est une si bonne idée que ça.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/02/10/311-encore-un-nouveau-langage-a-apprendre-le-d#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/283
La sécurité informatique par l’exemple : l’approche BOFH
urn:md5:6e8b266edc9cc72d5d374ce85b9ff1cc
2007-01-23T22:23:00+00:00
2010-10-25T19:40:57+00:00
Christophe
Informatique militante et technologie
communication
cynisme
foutage de gueule
hiérarchie
howto
humour
informatique
sabotage
sécurité
travail
<p>Pour forcer les utilisateurs à prendre en compte l’aspect « sécurité » de l’informatique, il existe une méthode violente.</p> <p>Une forme de pédagogie « à la dure » consiste à laisser un enfant se brûler pour qu’il comprenne qu’un four est chaud. L’approche s’étend facilement au domaine de la sécurité informatique, où l’utilisateur est volontiers réticent. C’est la manière <a href="http://www.tout-savoir.net/lexique.php?rub=definition&code=1048">BOFH</a>.</p>
<p>Un <a href="http://it.slashdot.org/comments.pl?sid=205511&cid=16772805" hreflang="en">billet anonyme sur Slashdot</a> donne la recette précise :</p>
<ul>
<li>faire la démonstration d’une attaque par déni de service en coupant le courant aux serveur des « compteurs de haricots » ;</li>
</ul>
<ul>
<li>simuler les effets d’un <em>spyware</em> en affichant le contenu de la collection « photographique » du chef de service, ainsi que son historique de navigation ;</li>
</ul>
<ul>
<li>les conséquences d’un mot de passe faiblard se montrent en se connectant à la place du chef, et en envoyant en son nom quelques lettres de démission incendiaires au PDG ;</li>
</ul>
<ul>
<li>insister sur l’importance des sauvegardes quotidiennes par des <code>rm -rf</code> aléatoires ;</li>
</ul>
<ul>
<li>en utilisant un compte utilisateur, télécharger la base clients entière, et l’utiliser pour spammer massivement.</li>
</ul>
<p>Ou bien décrire simplement les facteurs de risques aux décideurs, auquel cas ils feront comme si les trous dans le gruyère étaient théoriques. <em>(Fin de citation.)</em></p>
<p>Hélas, le sens des responsabilités de l’informaticien moyen, couplé au spectre de l’ANPE, le retiendra d’en venir à de telles extrémités. Pourtant, comme chacun sait, rien de tel qu’une expérience douloureuse pour se souvenir des choses sérieuses. Combien de personnes devenues des maniaques de la sauvegarde automatisée et permanente après la perte d’un disque dur entier ?</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/01/23/299-la-securite-informatique-par-l-exemple-l-approche-bofh#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/269
Six ans et demi et un carton
urn:md5:a788f5c63cbc2a64b7ea9412742fb08e
2007-01-16T22:54:00+00:00
2016-08-16T14:29:25+00:00
Christophe
Il faut bien manger
mercenaire
mobilité
paradoxe
sauvegardes
SSII
travail
valeur
virtuel
<p>Une page se tourne...</p> <p>Une ère se termine, j’ai quitté ce soir l’employeur qui me payait depuis plus de six ans et demi (je n’ai pas dit « l’employeur <em>pour qui</em> je travaillais » — fameux problème de l’écartèlement de la loyauté dans une société de service).</p>
<p>J’ai emporté la totalité de mes biens matériels personnels en vidant le bureau qui m’a servi de port d’attache quelques mois (après des années de régie en clientèle) : un demi-carton. Et encore y avait-il des choses retrouvées dans la sacoche du <a href="https://www.coindeweb.net/blogsanssujetprecis//index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">portable </a> rendu ce jour : un CD, le chargeur du portable, un magazine sur Oracle, des kleenex, de la paperasse.</p>
<p>Damnée société de l’immatériel — même si je sais bien que les acquis principaux de ces années sont dans ma tête.</p>
<p>Drôle de boulot de <a href="https://www.coindeweb.net/blogsanssujetprecis//index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant">migrant</a> poussé à ne rien garder qui ne soit pas stockable sur le disque dur du précieux portable. Et le reste, imprimé, ne mérite pas d’être transmis aux collègues qui n’auront pas le temps de lire, ou imprimeront eux-même.</p>
<p>Bizarre civilisation où tout ce qu’on manipule ne vous appartient pas — et non, je ne veux pas avoir à payer mon ordi portable :-)</p>
<p>Ça fait bizarre.</p>
<p>(<strong>Mise à jour de 2010, presque quatre ans après</strong> : Aucun regret.)</p>
<p>(<strong>Mise à jour de 2016, presque dix ans après</strong> : Toujours aucun regret, mais <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/Presque-10-ans-et-boen-plus-qu-un-carton">il a fallu à nouveau tourner cette page</a>.)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2007/01/16/305-six-ans-et-demi-et-un-carton#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/238
Les joies de la SSII (6) : Accès à distance et télétravail
urn:md5:d5f65db2256879a572a3c3bc54267e21
2006-12-21T13:58:00+00:00
2020-03-31T15:32:49+00:00
Christophe
Il faut bien manger
informatique
logistique
mercenaire
mobilité
organisation
paradoxe
paranoïa
réseau
SSII
travail
<p>La technologie actuelle rend le travail à distance possible. Culturellement et sécuritairement, ça coince.</p> <p>Consultants migrants en clientèle, sous-traitants développeurs <em>off-shore</em> ou pas, ou simples télétravailleurs, nombreux sont ceux qui se connectent à distance chez leur employeur ou leur client <em>via</em> Internet.
<br />Les avantages sont innombrables, y compris sur le plan écologique et de la réduction des coûts<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>, comme sur la qualité de vie et donc la productivité du télétravailleur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.</p>
<p>(<em>Caveat</em> : Oui, une partie de ce qui suit est à mettre sur le compte de ma tendance à râler et une certaine impatience naturelle. Mais tout de même.)</p>
<h3>Technologie</h3>
<p>Évidemment, la connexion à distance nécessite quelques outils.</p>
<p>D’abord un <strong>accès Internet</strong>. <strong>Rapide</strong>. Allez faire du télétravail avec un simple modem, ou quand le réseau de votre agence est tellement encombré que la connexion aux serveurs du client dure trois ou quatre éternités ! Des échanges de fichiers un peu imposants à 3 ko/s deviennent très vite pénibles. Pénible aussi le parcours d’une arborescence réseau profonde quand le résultat d’un clic n’est pas instantané. Extrêmement pénible aussi de déboguer pas à pas un programme quand chaque appui de touche déclenche une réflexion de deux secondes au bas mot.</p>
<p>Le <strong><a href="http://www.commentcamarche.net/initiation/vpn.php3">VPN</a></strong> est l’autre mot magique de la connexion à distance. <br />En deux mots, il s’agit juste d’un moyen de crypter les échanges entre le télétravailleur et le site central d’une part, et aussi de faire en sorte que le poste distant croit se trouver sur le réseau de l’entreprise où il se connecte, avec les droits et accès pour bosser. C’est très bien quand ça marche. <br />Quand ça <del>merd</del> ne marche pas, ou mal, la liaison est encore plus lente, les tables de <a href="http://fr.wikipedia.org/wiki/Routage">routage </a> ne sont pas à jour et interdisent l’accès à tel ou tel logiciel ou serveur, etc.</p>
<p>Un autre élément beaucoup moins drôle mais courant est <strong><a href="http://fr.wikipedia.org/wiki/Citrix_MetaFrame">Citrix</a></strong>, ou un équivalent (protocole X, RDP, etc.). L’outil offre la possibilité d’afficher sur son poste un programme qui, en réalité, tourne ailleurs. Le poste du télétravailleur devient donc un simple terminal. Un logiciel très lourd sur un serveur très costaud peut donc être utilisé à distance sans problème, et les administrateurs apprécient de n’installer certains logiciels qu’une seule fois sur une machine « publique ».</p>
<p>Mais pour la bureautique, le cauchemar commence.<br />Par exemple, j’ai accès à un Citrix qui me « mappe » un lecteur réseau du client comme si j’étais sur son réseau. Sympa à première vue, très lent à deuxième vue. <br />À troisième vue, je m’aperçois que la session de l’explorateur (exécutée à distance) ne connaît pas mes raccourcis (et si j’en pose, il les oublie), mes préférences d’affichage<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>, etc. <br />Les documents s’ouvrent d’un clic... dans une session Word qui elle aussi tourne au loin sur un serveur du client. Cette session est lente (tolérablement), ne connaît pas la configuration de mes barres d’outils, et autres frustrations mineures mais répétées. <br />Si je veux transférer le fichier sur mon disque dur, le copier-coller ne fonctionne pas (deux fenêtres d’explorateur sur deux machines différentes) : il faut ruser et cliquer sur l’icône « Dossiers » dans l’explorateur distant, et là, ô joie, apparaît un lecteur <strong>D$:</strong> qui est une fenêtre ouverte sur mon disque (ça se complique : il s’agit bien d’un accès du serveur distant vers <em>mon</em> poste pour afficher <em>mon</em> arborescence dans <em>sa</em> fenêtre) ; si je parcoure l’arborescence de <em>mon</em> disque dur, les aller-retours à travers Internet de chaque clic transforment un bête glisser-déplacer en exercice de bouddhisme zen<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup>.</p>
<h3>Les <em>time-outs</em></h3>
<p>Je <strong>hais</strong> les <em>time outs</em>. Ils brisent une concentration toujours chèrement acquise, en me forçant à me reconnecter. Mal gérés, ils peuvent transformer un télétravailleur en chèvre.</p>
<p>Après une heure de développement, je veux me connecter en vitesse à une autre base pour comparer quelque chose ? Clic sur la bonne icône, et bang ! Citrix demande une nouvelle connexion (en plus, bien sûr, de la connexion à ladite nouvelle base). <br />Un petit coup d’œil sur le courrier dans INotes ? Ah non, il faut se réauthentifier (deux fois, systématiquement et bizarrement). <br />Je termine un gros mail important sur le webmail de mon employeur ? Chlack ! Le <em>firewall</em> tombe (<em>time out</em> de quatre heures pile, non paramétrable), il faut ressortir la <a href="http://www.safeword.com/cisco/" hreflang="en">calculette Cisco</a> pour me reconnecter. Quant au contenu du mail, il est perdu, bien sûr.</p>
<p>Moins grave, Citrix, de temps à autre, m’interrompt pour me dire « Hé, tu m’oublies, là, je vais me déconnecter dans deux minutes ! » - très agréable avec quatre ou cinq applis ouvertes en même temps, chacune réclamant un petit clic pour survivre une demi-heure de plus. <br />Chez un client, le <em>proxy</em> standard exigeait systématiquement une authentification régulière : un cauchemar de sessions perdues avec certains sites mal fichus (celui de <a href="http://services.sap.com/sscr/" hreflang="en">SAP</a> par exemple).<br />Et au fait, je faisais quoi, là déjà, avant de me réauthentifier deux fois ?</p>
<p>Je comprends la paranoïa du service informatique qui, dans les accès à distance, force des sessions courtes. Mais de plus en plus de monde travaille à distance, justement, en jonglant comme moi entre les logiciels. Si l’un d’eux ne supporte pas que l’on ne lui accorde pas d’attention pendant une heure ou deux sans se déconnecter, il devient un problème.</p>
<h3>Service informatique</h3>
<p>Les services informatiques centraux ont du mal à intégrer la généralisation du télétravail (le vrai, ou la sous-traitance à distance).</p>
<p>Il ne s’agit pas de mauvaise volonté, mais l’ouverture que cette révolution entraîne entre en <strong>conflit frontal avec les missions traditionnelles de l’exploitation</strong> (fiabilité, sécurité, performance des réseaux et serveurs), missions rendant ces gens légitimement <strong>conservateurs</strong> (« on ne change pas une équipe qui gagne ») et <strong>suspicieux</strong> (« qui est cette personne que je ne connais pas qui veut attaquer mon précieux serveur ? »). <br />L’hystérie sécuritaire actuelle, et la peur du <em>hacker</em> boutonneux ou mafieux, n’arrangent rien.</p>
<p>Ces employés travaillent de plus depuis le « cœur du donjon », connectés sur du RJ45, à l’intérieur des murs, voire au siège, de l’entreprise, et n’utilisent souvent pas quotidiennement et des heures durant les outils qu’ils maintiennent. Le boulot du sous-traitant de base ne leur est pas familier (même si intellectuellement ils sont d’accord pour satisfaire ses besoins).</p>
<p>Un exemple caricatural : si j’appelle le support de mon client pour un problème quelconque, en précisant bien que je suis sous-traitant, une de leurs première questions est « puis-je me connecter à distance sur votre poste ? ». La personne du support (elle-même souvent un petit jeune employé par un sous-traitant d’ailleurs...) n’a pas compris que, non, je n’ai pas un poste avec la configuration standard du client.</p>
<p>Même de grandes SSII sont frappées : combien de fois ai-je reçu des mails annonçant la disponibilité d’un site, blog ou wiki sur tel ou tel sujet, sur le réseau <em>interne</em>... inaccessible sans accès au minimum au VPN du groupe, chose techniquement impossible depuis les réseaux des clients où je facture, réseaux cadenassés et <em>firewallés</em> à mort (hors proxy web, point de salut) ?</p>
<p>J’ai vu le cas extrême de l’accès à distance totalement interdit à un sous-traitant extérieur indien par des règles imposées par le groupe. D’où des <strong>coûts cachés</strong> : réseaux séparés donc nécessité d’une machine de développement supplémentaire, donc taillée au plus juste, avec une praticité de maintenance nulle avec les conséquences que l’on devine, un manque de synchronisation avec les développements sur la machine « interne », des passages en recette et des mises à jour fastidieux (par clé USB), etc.</p>
<h3>Leeeeeeeeeenteeeeuuuuuuurrrrrr</h3>
<p>J’ai déjà <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/09/12/239-signatures-dans-lotus-notes">dit du mal de Lotus Notes</a>. En natif il est déjà lent (systématiquement trois secondes pour ouvrir un mail déjà précédemment ouvert, apparemment le cache marche mal). Via un VPN, il devient pour moi intolérable. Le moindre clic fait un aller-retour jusqu’au serveur. En ce moment, je tape souvent du courrier à travers INotes, l’interface web de l’<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/09/12/239-signatures-dans-lotus-notes">abomination ergonomique qu’est Notes</a> : chaque lettre semble faire l’aller-retour de mon bureau jusqu’au serveur (en traversant la moitié du pays au passage) avant de s’afficher.</p>
<p>Œuvrer depuis une agence de SSII n’est pas toujours une sinécure. Puisque tout le monde travaille à distance pour un client différent, que l’accès Internet est centralisé à Paris alors que mon client est dans ma ville, j’obtiens fatalement un débit final escargotesque (sauf aux heures de pause). Et quand on joint deux réseaux, on obtient deux fois plus de problèmes de connexion ou de débit.</p>
<p>Je me demande comment opèrent des Indiens depuis leur continent. Les horaires décalés se transforment là en avantage - si les tuyaux suivent de leur côté...</p>
<h3>Les imprimantes</h3>
<p>Cela semble innocent mais le piège est très courant : lors d’un accès à distance, les imprimantes connues du serveur sont physiquement inaccessibles, et celles physiquement proches sont inconnues du serveur. Ce n’est pas gênant lors d’un accès <em>full web</em>, ou lors du développement d’un logiciel compilable sur son poste, ou pour une spécification sous Word téléchargeable en local.</p>
<p>Mais dans le cas d’une connexion Citrix (affichée sur un poste mais fonctionnant sur un serveur chez le client), <strong>les imprimantes locales n’existent pas du point de vue de l’application</strong>, ou sont ignorées. Cela se paramètre peut-être.</p>
<p>De même, je n’ai pas vu d’ERP qui imprime spontanément sur une imprimante propre au prestataire, et non explicitement déclarée par l’administrateur (et vue la manière dont se gèrent les imprimantes dans ces monstres, je ne jette pas la pierre : rien à voir avec le <em>plug and play</em> de l’informatique personnelle). Je peux donc imprimer en théorie de superbes factures, mais le papier sortira à des kilomètres de mon siège, sinon sur un autre continent. Dans ces conditions, le débogage téléphonique lasse vite (et nécessite une bonne âme au téléphone près de l’imprimante, aux bonnes heures, décrivant les problèmes dans la bonne langue).</p>
<p>Il existe bien sûr des <strong>contournements</strong>. L’aperçu avant impression fonctionne suivant les logiciels ; la copie d’écran peut suffire , une impression dans un fichier (voire un PDF) se récupère souvent par le réseau ; etc. <br />Ce n’est pas toujours aussi simple quand la chaîne d’impression est un peu longue, tordue ou hermétique aux standards courants. Le coût en paramétrage, accès distants (avec mots de passe ?), et en temps s’ajoute à l’énervement si le travail est répétitif.</p>
<p>D’autres cas existent où la proximité physique génère un gain de temps si elle ne s’avère pas absolument nécessaire : problèmes réseaux, support utilisateur pointu, spécifications floues ou développées au fur et à mesure de la réalisation...</p>
<h3>Non existence</h3>
<p>Suivent les problèmes classiques d’un sous-traitant physiquement absent : le personnel du client ne pense pas toujours à lui, il n’est pas là lors des annonces orales, le « <strong>non-dit</strong> » (communication non verbale, ambiance de travail) se perd, les noms n’ont pas de visage, les <strong>niveaux d’urgence ou importance</strong> de tel ou tel problème deviennent moins facilement décryptables, les informations glanées inconsciemment en laissant traîner son oreille (avantage principal de l’« <em>open space</em> ») ne parviennent pas, « <strong>radio moquette</strong> » est muette, la <strong>culture d’entreprise</strong> n’est pas assimilée, le jargon local s’acquiert bien plus lentement, une réunion de travail impromptue ou informelle se transforme en messe planifiée au moins douze ou vingt-quatre heures à l’avance, l’absence d’un intervenant n’est pas connue dès l’arrivée au travail (« Pourquoi il répond pas à mes mails, Untel ? »), les structures hiérarchiques officielles ou officieuses sont masquées, les problèmes « dans l’air » mais non formalisés sont inconnus des télétravailleurs, etc. etc.</p>
<p>Par contre, le « téléphone arabe » fonctionne à plein, notamment via les <strong>intermédiaires</strong> (« interface », « <em>front</em> »...) pour coordonner tout ce monde qui n’arrive plus à communiquer. Et si au contraire la communication est bonne, malgré la distance et grâce à la technologie moderne et à de bons contacts, l’intermédiaire devient un frein car par définition il doit être au courant de tout<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup>. <br />Ajoutons les problèmes de langue et d’incompréhension culturelle dans certains cas.</p>
<p>Il existe des méthodes et technologies pour corriger partiellemement les problèmes : <strong>rencontres physiques</strong> régulières (pas un problème pour un prestataire de la même ville, mais le travail avec l’Inde devient vite plus coûteux), conférences téléphoniques à plusieurs voire vidéoconférences, usage massif du courrier électronique, des wikis, des intranets, remplacement de la communication informelle par des <strong>spécifications très précises</strong> (un effet de bord de la sous-traitance qui a son coût, en temps et flexibilité, mais de gros avantages aussi), etc.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">Partie 1 : Angoisse existentielle</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs">Partie 2 : Plein plein de chefs</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">Partie 3 : Le portable</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant">Partie 4 : Le consultant-migrant</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser">Partie 5 : Se battre pour bosser</a><br />
Partie 6 : Les joies de l’accès à distance<br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/12/04/447-les-joies-de-la-ssii-7-un-expert-sisi">Partie 7 : Un expert, sisi !</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/18/480-les-joies-de-la-ssii-8-imputer-oui-mais-sur-quoi">Partie 8 : Imputer, oui, mais sur quoi ?</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Dans le cas du télétravail ou de l’</em>off-shore<em>, je serais moins catégorique. Mais c’est un autre débat.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Mais mon patron n’a pas compris ça. Je dois faire des kilomètres pour venir au bureau me connecter sur le serveur de mon client à une vitesse nettement inférieure à celle fournie par mon fournisseur ADSL. Bref.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Je ne supporte </em>pas<em> l’affichage par défaut de Windows, avec ses icônes encombrantes, ses noms de fichiers tronqués, les extensions de fichiers absentes...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Facturé environ 1 € la minute par le consultant moyen, rappelons-le.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>C’est l’intermédiaire qui parle...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/232
Initialiser tu n’oublieras pas !
urn:md5:c8fecc474a35cdcefe10e9f63248b725
2006-12-19T13:47:00+00:00
2010-11-19T21:38:17+00:00
Christophe
Informatique lourde
abomination
dommage
déterminisme
développement
ERP
foutage de gueule
gaspillage
haine
incohérence
informatique
métainformation
Oracle
perfectionnisme
prise de tête
sabotage
SAP
SQL
sécurité
travail
<p>Bien programmer c’est en partie bien initialiser pour bâtir sur de bonnes bases. Évidemment, l’ABAP ne peut pas laisser passer ça !</p> <p>Une des raisons pour lesquelles l’ABAP m’énerve est que ce langage me met des bâtons dans les roues lorsque je cherche à réutiliser mes habitudes de programmation en mode « défensif ».</p>
<p>Prenons un exemple où l’on balaye une innocente table (disons les lignes d’une facture) ; le curseur est nommé <code>x</code> et on veut un <code>compteur</code> qui somme le contenu de la colonne <code>un_autre_champ</code> (un prix par exemple), <em>plus</em> une valeur calculée arbitrairement (par exemple une taxe) si la colonne <code>un_champ</code> prend une valeur quelconque. Cela donne :</p>
<p>En PL/SQL (langage d’Oracle Applications, entre autres) :</p>
<blockquote><p>.<code><strong>FOR</strong> x IN (SELECT * FROM matable) LOOP </code><br />
.<code> <strong>DECLARE</strong> </code><br />
.<code> v VARCHAR(2) := 0 ; </code><br />
.<code> <strong>BEGIN</strong> </code><br />
.<code> <strong>IF</strong> x.un_champ = ... THEN </code><br />
.<code> v = c_une_valeur ; </code><br />
.<code> <strong>END IF</strong> ; </code><br />
.<code> compteur = compteur + v + x.un_autre_champ ; </code><br />
.<code> <strong>END</strong> ; </code><br />
.<code><strong>END LOOP</strong> ; </code><br /></p></blockquote>
<p>En ABAP (langage de SAP exclusivement) :</p>
<blockquote><p>.<code><strong>SELECT</strong> * FROM matable INTO x.</code><br />
.<code> <strong>DATA</strong> v TYPE c VALUE '0'.</code><br />
.<code> <strong>IF</strong> x-un_champ = ... .</code><br />
.<code> v = c_une_valeur.</code><br />
.<code> <strong>ENDIF</strong>.</code><br />
.<code> compteur = compteur + v + x-un_autre_champ.</code><br />
.<code><strong>ENDSELECT</strong>. </code> " <em>Fin de la boucle</em></p></blockquote>
<p>Ces deux codes, bien que fort semblables aux différences syntaxiques superficielles près, ne feront en fait pas la même chose. Comme j’ai dit, on ne recalcule <code>v</code> que dans certains cas.</p>
<p>En PL/SQL, la déclaration de <code>v</code> <em>à l’intérieur</em> de la boucle (donc comme variable la <em>moins globale</em> possible), permet de redéclarer et réinitialiser à zéro <code>v</code> à chaque tour de boucle.</p>
<p>En ABAP, la combine ne fonctionne pas. Le code ci-dessus ne réinitialisera <em>pas</em> <code>v</code> à 0. Il n’y a aucune erreur due au fait que j’ai redéclaré ma variable à chaque tour de boucle. Entre deux tours, <code>v</code> gardera sa valeur !</p>
<p>On peut corriger de mille manières, par exemple en prévoyant une deuxième branche <code>ELSEIF</code>, qui effectue <code>v = 0</code>. <br />Ou bien, tout bêtement, en réinitialisant à chaque début de boucle : <code>CLEAR v.</code> En ABAP, c’est pas plus difficile que cela.</p>
<p>Mais. Ici il n’y a qu’<em>une</em> variable. <br />Dans la réalité des dizaines de variables, compteurs, structures, tableaux, déclarés un peu n’importe où, se partagent l’attention du programmeur. Je suis un ferme partisan de l’initialisation au moment de la déclaration, de la durée de vie la plus minimaliste possible des variables, un ennemi des variables globales et un accro de la réduction du <em><a href="http://www.digital-web.com/articles/variable_scope_for_new_programmers/" hreflang="en">scope</a></em>. Une variable qui n’existe pas ne me gênera jamais.</p>
<p>L’ABAP n’est pas un compilateur très coopératif pour ce genre de programmation. Les variables restent en général globales à un (sous-)programme, et les orgies de <code>CLEAR</code> parsèment les boucles. Je vois ressurgir des classes entières de bugs que je ne connaissais pas en PL/SQL. Et, je le redis, le PL/SQL n’a rien de très <em>sexy</em> ou avancé, c’est juste un langage bien foutu pour son boulot (fortement inspiré du Pascal, ce qui me plaît).</p>
<p><strong>NB</strong> : L’exemple ci-dessus néglige le fait que sous Oracle un ordre SQL aurait suffit, même pas la peine de dégainer le PL :<br /><code>SELECT SUM(un_autre_champ + DECODE (un_champ, ..., c_une_valeur) ) FROM ma_table</code> ou une autre astuce de la même veine. Je ne pense pas que ce soit facilement possible en ABAP pur - qu’on me corrige si je me trompe.</p>
<p>(<strong>Dernière minute</strong> : Et en plus, il semblerait que <a href="http://www.panopticoncentral.net/archive/2006/03/28/11552.aspx" hreflang="en">le Visual Basic (nouvelle version) soit aussi victime de ce problème</a> ! Différence entre scope et durée de vie d’une variable, dit l’auteur. En tout cas c’est source de bugs...)</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/19/210-initialiser-tu-n-oublieras-pas#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/188
Les ordinateurs nous rendent grossiers
urn:md5:848c6b2dafc0651bbb1ece4beb99cf75
2006-12-10T16:34:00+00:00
2010-11-18T21:13:41+00:00
Christophe
Informatique pratique
anthropomorphisme
bug
complexité
cynisme
dysfonctionnement
foutage de gueule
haine
informatique
psychologie
santé
travail
<p>Saleté de putain de bordel de machine de mes deux !</p> <p>Je l’ai remarqué chez moi, sur ma moitié, sur des personnes d’habitude très pondérées : les ordinateurs rendent grossier, voire violent.</p>
<p>Au point que <a href="http://trentaineordinaire.free.fr/">Jid</a> a érigé la chose en dicton :</p>
<blockquote><p>« Sachez que l’informaticien est bruyant et se parle à lui-même : un informaticien qui ne fait pas de bruit n’est pas en train de travailler, il fait des trucs perso. » (<a href="http://trentaineordinaire.free.fr/index.php/2006/08/01/214-droit-de-cuissage">Jid, 1er août 2006</a>)</p></blockquote>
<p><strong>Pourquoi ?</strong> Je n’ai jamais entendu un électricien se plaindre et ronchonner à cause d’un réseau électrique semi-sentient qui en voudrait à sa santé mentale. Par contre, que l’on tape une lettre sous Word ou qu’on développe un logiciel, et les « mais qu’est-ce qu’il me fait ?? », « quel con !!! », « pourquoi il me fait ça ? »... fusent très rapidement.</p>
<p>Les ordinateurs ont-ils atteint un tel niveau de complexité et d’autonomie que l’anthropomorphisme s’applique à plein, et que l’on assiste au choc de deux volontés, l’une de fer et d’électrons, l’autre simplement humaine ? L’humain ne tolère-t-il pas que l’ordinateur fasse ce qu’il lui a ordonné, et non ce qu’<em>il croit lui avoir dit</em> ? Cette dernière hypothèse se conçoit pour les développeurs, confrontés toute la journée à des erreurs nées de leurs propres lacunes en programmation (et rarement à un message « Félicitations ! Votre programme compile ! <em>Good job!</em> »)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/10/232-les-ordinateurs-nous-rendent-grossiers#pnote-206-1" id="rev-pnote-206-1">1</a>]</sup>; par contre pour les utilisateurs bureautiques, le problème vient souvent desdits bugs ou incohérences ou limites du logiciel, donc de l’interface, donc d’autres humains.</p>
<p>Je me demande combien de PC meurent chaque année sous les coups d’utilisateurs excédés.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/10/232-les-ordinateurs-nous-rendent-grossiers#rev-pnote-206-1" id="pnote-206-1">1</a>] <em><strong>Ajout de 2010</strong>: Si, en fait, j’ai vu UN logiciel professionnel dire que la formule de calcul entrée était correcte.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/12/10/232-les-ordinateurs-nous-rendent-grossiers#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/206
« Frameworks », Java, complexité, librairies et usines à gaz
urn:md5:36e03332ed402ada7eaa8ed4f3663230
2006-11-21T19:25:00+00:00
2008-11-25T22:02:10+00:00
Christophe
Informatique : l’art du développement
complexité
dysfonctionnement
développement
expertise
informatique
organisation
sabotage
travail
<p>Béni soit Steve pour m’avoir indiqué le morceau de bravoure de <a href="http://benjismith.net/" hreflang="en">BenjiSmith</a>, hébergé sur le site de Joel Spolski : <a href="http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12" hreflang="en">http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12</a></p>
<p>Il porte sur la profusion de <em>frameworks</em> disponibles notamment en Java, qui rajoutent une monstrueuse étape de complexité inutile. BenjiSmith ne veut pas de <em>frameworks</em> qui imposent leur structure à l’application, mais de belles librairies bien séparées qui font chacune un travail bien précis, et qu’on puisse agencer. La discussion finit d’ailleurs sur une extraction par BenjiSmith de librairies extraites de divers <em>frameworks</em>.</p>
<p>Comme tout, c’est affaire de juste milieu. Certains <em>frameworks</em> éprouvés sont universels et mûrs (le modèle de la base de données SQL est un bon exemple), d’autres sont pur <em>buzzword</em>.</p>
<p>Je prétends souvent (en ne plaisantant qu’à moitié) que ma formation d’ingénieur en génie chimique me permet de repérer les « usines à gaz » et de bien les construire. En fait, elle me permet surtout d’en avoir peur et de chercher à les éviter le plus possible. Rien que ces histoires de <em>frameworks</em> me font passer l’envie de me mettre un jour<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/21/268-frameworks-java-complexite-librairies-et-usines-a-gaz#pnote-239-1" id="rev-pnote-239-1">1</a>]</sup> à Java<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/21/268-frameworks-java-complexite-librairies-et-usines-a-gaz#pnote-239-2" id="rev-pnote-239-2">2</a>]</sup>.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/21/268-frameworks-java-complexite-librairies-et-usines-a-gaz#rev-pnote-239-1" id="pnote-239-1">1</a>] <em>Comme si j’avais le temps...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/21/268-frameworks-java-complexite-librairies-et-usines-a-gaz#rev-pnote-239-2" id="pnote-239-2">2</a>] <em>Et ceci en plus de la tendance apparente du langage à être inutilement verbeux.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/21/268-frameworks-java-complexite-librairies-et-usines-a-gaz#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/239
Par paquets de 5
urn:md5:da931c4493743ea43137bae625a401a6
2006-11-16T22:17:00+00:00
2010-11-16T06:22:02+00:00
Christophe
Informatique lourde
abomination
base de données
développement
ERP
foutage de gueule
gaspillage
haine
informatique
optimisation
Oracle
prise de tête
sabotage
SAP
SQL
travail
<p>Une fois de plus, l’ABAP de SAP me sabote mes requêtes soigneusement mitonnées.</p> <p>Ce n’est pas parce que <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/19/255-demission">la perspective de me débarrasser bientôt de SAP</a> se profile nettement à l’horizon que mes critiques vont se tarir.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#pnote-223-1" id="rev-pnote-223-1">1</a>]</sup>. La semaine dernière j’ai découvert une nouvelle manière de l’ABAP de fusiller le travail de la base Oracle en-dessous de lui.</p>
<p>Un exemple concret en ventes : je recherche quelques articles (premier <code>SELECT</code> sur la table <code>MARA</code>) et je veux afficher la liste des commandes portant sur ces articles. Le résultat ressemble à ça :</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/erp/abap-forallentries/liste_resultat.png" alt="Petite liste" style="display:block; margin:0 auto;" title="Liste d’articles avec les commandes qui vont avec." /></p>
<p>Pour obtenir ceci, je peux :</p>
<ul>
<li>soit faire un <code>SELECT</code> sur la table <code>VBAP</code> pour <em>chaque</em> article précédemment récupéré (méthode bovinement simple, fiable, très efficace si le but est de faire s’effondrer la base de données par des centaines ou des milliers de requêtes en rafale) ;</li>
<li>soit tenter de récupérer toutes les commandes concernées <em>en bloc</em> : la base recherchera d’un coup, optimisera son parcours de diverses manières (ne pas analyser 10 000 fois la même requête<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#pnote-223-2" id="rev-pnote-223-2">2</a>]</sup>, récupérer des blocs contigus, choisir un index plutôt qu’un autre...).</li>
</ul>
<p>La deuxième manière est un chouilla plus complexe (car on récupère en bloc un tableau des commandes voulues, qu’il faudra manipuler ensuite) mais monstrueusement plus efficace. <br />Si on utilise Oracle directement via la SQL ou le PL/SQL, <a href="http://tkyte.blogspot.com/2006/10/slow-by-slow.html" hreflang="en">on tente au maximum de tout regrouper en un seul ordre SQL</a>, ou on utilise les <a href="http://www.oracle.com/technology/oramag/oracle/03-sep/o53asktom.html" hreflang="en">ordres BULK</a>. <br />Si on est contraint de passer par l’ABAP, on utilise <code>FOR ALL ENTRIES</code><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#pnote-223-3" id="rev-pnote-223-3">3</a>]</sup>.</p>
<p>Concrètement, cela donne ce qui suit. Noter qu’en ABAP un <code>SELECT</code>/<code>ENDSELECT</code> est une boucle sur les lignes ramenées.</p>
<blockquote><p><code><em>*</em></code><br />
<code><em>* Report Z_FAE_TEST </em></code><br />
<code><em>* </em></code><br />
<code><em>*</em></code><br />
<code><em>* But : démonstration d utilisation basique de FOR ALL ENTRIES </em></code><br />
<code><em>* Recherche de quelques articles et affichage des commandes liées à </em></code><br />
<code><em>* ces articles. On aurait pu faire une simple jointure mais on passera</em></code><br />
<code><em>* par une table interne (un tableau) qui ontient ces commandes.</em></code><br />
<code><em>*</em></code><br />
<br />
<code><strong>REPORT Z_FAE_TEST</strong> .</code><br />
<br />
<code><em>* vbap est la table des commandes, et la déclaration</em></code><br />
<code><em>* suivante permet de ne pas déclarer des variables temporaires</em></code><br />
<code><em>* pour la parcourir</em></code><br />
<code>TABLES: vbap.</code><br />
<br />
<code><em>* Structure de table simple avec juste un champ article</em></code><br />
<code>TYPES: BEGIN OF article,</code><br />
<code> matnr TYPE matnr, " type prédéfini : un article</code><br />
<code> END OF article.</code><br />
<br />
<code><em>* Table des articles</em></code><br />
<code><strong>DATA</strong>: tab_articles TYPE TABLE OF article.</code><br />
<br />
<code><em>* Variable tampon car impossible de faire cette operation</em></code><br />
<code><em>* directement au sein du SQL ci-dessous.</em></code><br />
<code>DATA: date_min TYPE datum.</code><br />
<br />
<code><em>* Récupérer les articles créés dans les 200 derniers jours</em></code><br />
<code>date_min = sy-datum - 200.</code><br />
<br />
<code><strong>SELECT</strong> matnr <strong>FROM</strong> mara</code><br />
<code><strong>INTO TABLE</strong> tab_articles</code><br />
<code><strong>WHERE</strong> ersda > date_min.</code><br />
<code>.</code><br />
<br />
<br />
<code><em>* Pour tous ces articles, afficher</em></code><br />
<code><em>* toutes les commandes existantes</em></code><br />
<br />
<code><strong>SELECT</strong> * <strong>FROM</strong> vbap</code><br />
<code><em>* Prendre articles dans table interne précédente</em></code><br />
<code><strong>FOR ALL ENTRIES</strong> IN tab_articles</code><br />
<code><em>* Jointure sur code article</em></code><br />
<code><strong>WHERE</strong> vbap~matnr = tab_articles-matnr</code><br />
<code>.</code><br />
<br />
<code><em>* Affiche article/commande/poste</em></code><br />
<code> WRITE :/ vbap-matnr, vbap-vbeln, vbap-posnr .</code><br />
<br />
<code><strong>ENDSELECT</strong>.</code><br /></p>
<p></p></blockquote>
<p>Quand on lit ceci, et qu’on connaît un peu Oracle, on se dit que l’ABAP sur ce point n’est pas trop mal foutu, et qu’il a même eu un temps d’avance sur l’Oracle « pur » d’avant l’implémentation de <code>BULK COLLECT</code>, qui forçait à tout fusionner en un seul ordre SQL si l’on voulait éviter les boucles.</p>
<p>On se dit que l’ABAP doit lui-même écrire l’ordre SQL qui va bien. Ou qu’il rédige une clause <code>WHERE</code> de centaines de lignes avec les flopées de valeurs possibles.</p>
<p>Mais non.</p>
<p>Le SQL que SAP demande à Oracle d’exécuter servilement se présente ainsi (transaction <code>ST05</code> sous SAP) :</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/erp/abap-forallentries/sql_trace.png" alt="Trace SQL" style="display:block; margin:0 auto;" /></p>
<p>Il s’agit bien d’un bête <code>SELECT</code> avec une condition sur... <strong>CINQ valeurs possibles</strong>. Ceci répété x fois avec des valeurs différentes.<br />SAP <strong>fait donc exécuter à Oracle la boucle même que l’on cherchait à éviter à la main</strong>. Le seul avantage est que cette recherche se fait par paquet de cinq lignes. C’est déjà mieux que rien mais <a href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:73891904732164" hreflang="en">on est loin du Saint Graal de l’instruction SQL unique</a>.</p>
<p>Il existe un moyen de rentabiliser un peu plus chaque requête en passant à des bloc de vingt valeurs (rajouter le <em>hint</em> <code>%_HINTS ORACLE '&max_blocking_factor 20&'</code>), sans que j’en connaisse l’efficacité réelle.</p>
<p>Pourquoi faire simple (un bête curseur Oracle qui parcourt les lignes ramenées par paquets de quelques dizaines, avec un plan d’exécution mitonné pour l’intégrale du <em>recordset</em> à récupérer) quand on peut faire compliqué ?</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#rev-pnote-223-1" id="pnote-223-1">1</a>] <em>Sisi, un jour, je tenterai de faire un billet sur les gadgets sympa de SAP et de l’ABAP. Il y en a. <strong>Ajout de 2008</strong> : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap">C’est fait !</a></em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#rev-pnote-223-2" id="pnote-223-2">2</a>] <em>Le plus terrible est de générer des <a href="http://www.akadia.com/services/ora_bind_variables.html" hreflang="en">requêtes en dynamique, réellement différentes, sans variables bind</a>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#rev-pnote-223-3" id="pnote-223-3">3</a>] <em>Et c’est un des rares et précieux exemples de <a href="http://fr.wikipedia.org/wiki/Sucre_syntaxique">sucre syntaxique</a> de ce langage fossile.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/16/252-par-paquets-de-5#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/223
Ubu et réservation aérienne
urn:md5:a1abf6cac1c2fd8ecee7a161e1198ed4
2006-11-14T11:37:00+00:00
2023-12-27T11:04:23+00:00
Christophe
Guerre au marketing
abomination
anticonsumérisme
argent
bon sens
bug
chaos
communication
complexité
cynisme
dommage
dysfonctionnement
décadence
déshumanisation
emmerdeurs
foutage de gueule
gaspillage
incohérence
informatique
liberté
microéconomie
mème
optimisation
organisation
perspective
pessimisme
pouvoir d’acheter
prise de tête
provocation
sabotage
travail
valeur
économie
<p>Le calvaire aérien d’une collègue, typique des travers de notre époque.</p> <p>Je dis toujours que les compagnies aériennes constituent l’illustration parfaite de la différence entre <strong>sécurité</strong> et <strong>fiabilité</strong> : s’il est effectivement très peu risqué de prendre un avion (bien moins que sa voiture ou son vélo), les chances d’arriver en temps et en heure sans une contrariété quelconque évoluent plus près de 50 % que de 99,999 %. <br />Je vole peu, pourtant j’ai déjà ma part d’histoires de vols annulés, retardés, pour raisons techniques ou sociales, plus souvent pour des bouchons sur les pistes (typiquement à Orly le vendredi soir). <br /><a href="http://www.lgv-est.com/">Vivement le TGV</a> (et je dis ça peu après une grève de la SNCF). (<strong>Ajout de 2010</strong> : Le TGV on l’a et c’est super, mangez-en !)</p>
<h3>Les différents intervenants</h3>
<p>Une collègue vient de nous raconter son calvaire. <br />Elle utilise une compagnie très connue pour les vols intérieurs (appelons-là, disons, Air Gaule). Notre employeur commun nous <del>demande</del> ordonne de commander tous nos billets (ferroviaires, aériens…) par une agence de voyages assez connue qui fait aussi dans les services financiers ; appelons-la Antarctic Express.</p>
<p>Le passage par cette agence de voyages permet apparemment de gagner 20 € sur le prix du billet. Quand je dis « gagner », c’est l’agence qui encaisse 35 € de frais, au lieu de 15 € par Air Gaule.<br />En échange, nous disposons d’un joli site web qui stocke nombre d’informations confidentielles à notre sujet, et nous refuse des vols qui ne couvrent pas la « politique voyage ». (Ce sont des interdictions du genre : « non, tu ne traverseras pas la moitié de la France en avion, faudrait le faire en train et y passer quatre fois plus de temps au total et payer une nuit supplémentaire à Lutèce. » Bon, les <em>bigs chefs</em> valident systématiquement la dérogation aux critères sans doute pondus par un acheteur à la Défense qui ne doit pas aller souvent en clientèle hors d’Île-de-France. Bref.)</p>
<h3>Clouée au sol</h3>
<p>À notre époque, les billets sont tous électroniques, en fait juste un numéro quelque part pour qu’à l’enregistrement il soit possible de retrouver notre trace dans l’ordinateur au cas où le vol, le nom et le numéro de la pièce d’identité ne suffisent pas. L’inconvénient est qu’il n’existe plus aucune garantie <em>physique</em> au client que son billet est valable.</p>
<p>La collègue en question a donc été fort marrie quand, après une longue queue devant le guichet, l’humeur maussade comme on l’est à six heures du matin après s’être levé à quatre, la charmante hôtesse<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> ne l’a pas trouvée parmi les passagers recensés par le Grand Serveur Central : l’agence n’avait pas transmis la réservation. <br />Adrénaline, queue au guichet vente, re-queue devant l’enregistrement, obligation de se contenter des dernières places (ni hublot ni couloir) si même il y a encore de la place, retard éventuel, etc.</p>
<p>Ce genre d’incident est pénible la première fois ; mais bosser dans l’informatique enlève toute illusion sur la fiabilité absolue de tout ce qui est électronique, et rend philosophe.</p>
<p>La deuxième fois c’est encore plus pénible.</p>
<p>La troisième fois, on se demande si on ne va pas lâcher l’agence de voyages<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup>.<br />Surtout quand, au moment de re-réserver le billet qui n’a jamais été transmis, on s’aperçoit que l’abonnement à Air Gaule a été bloqué pour un papier jamais arrivé, jamais transmis apparemment par l’agence de voyage. Air Gaule proteste de sa bonne foi en avertissant qu’ils ont averti l’agence de voyages… qui n’a jamais averti sa cliente.<br />Le paiement, lui, a bien été transmis.</p>
<p>(Au passage : cette même collègue s’est fait « ensacheter » deux dangereux bâtons de rouge à lèvre par les services de sécurité. Coup de chance, ils n’ont pas vu ses médicaments, elle n’avait pas l’ordonnance.)</p>
<p>La même collègue a rapporté le cas d’un autre utilsateur d’Antarctic Express, qui un jour manqua son vol départ pour une raison quelconque. Après s’être débrouillé seul pour prendre un autre vol (sur le même billet affaire donc décalable), et avoir fait ce qu’il avait à faire là où il allait, le malheureux a découvert à l’enregistrement la disparition de son voyage retour : informée de son absence au départ originel, l’agence avait annulé le retour.</p>
<p>Ces problèmes, paraît-il, n’existaient pas avec l’agence de voyage locale utilisée encore il y a quelques années. Ces gens-là n’avaient pourtant pas de centre d’appel continental avec des employés dressés comme des robots à lire leur script et à ne surtout pas prendre d’initiative, et qui changent à chaque contact. Comment diable pouvaient-ils être compétitifs ?</p>
<h3>Moralités</h3>
<p>Que le malheur des uns serve de leçon aux autres : ces exemples pointent un problème de plus en plus courant à notre époque. Ici on ajoute un <strong>intermédiaire qui est censé fournir les mêmes services que le fournisseur final</strong>. Il ne s’agit pas ici de cas où une agence de voyages vous mitonne un Dijon-Christchurch<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup> <em>via</em> quatorze correspondances et huit compagnies, en choisissant parmi sept mille trajets possibles (rôle de courtier en quelque sorte), mais du cas très courant dans le métier de vols sur des lignes du principal opérateur national.</p>
<p>Intermédiaire inutile également car Air Gaule, non content de faire voler ses clients, fournit service web, centre d’appel, etc. <em>a priori</em> moins dysfonctionnels que tout intermédiaire puisque la compagnie a la maîtrise des machines et l’accès direct aux données et logiciels. (Quoique avec la vogue actuelle de décentralisation et filialisation, ce serait à vérifier…)</p>
<p>Bref, un cas typique de notre époque où <strong>les couches s’amoncellent, et les problèmes de communication (inévitables, même à l’époque d’Internet) vont avec la complexité du flux</strong>.</p>
<p>Bizarrement, la facturation ne tombe jamais en panne. Elle est même la seule à faire du zèle.</p>
<p>Je ferais volontier le parallèle avec <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille">mes problèmes très techniques et très personnels de sabotage mutuel entre trois outils qui essaient tous les trois de faire la même chose</a>…</p>
<p>Pour finir, revenons à la justification de l’utilisation de l’agence de voyage : il paraît qu’en fonction du chiffre d’affaire généré avec elle, notre groupe encaisse une ristourne. Cette ristourne est invisible sur les avances de fonds que nous, petits consultants migrants, faisons<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup> (avances débitées après le remboursement des frais, à quelques jours près, si le secrétariat ne fait pas d’erreur et est alimenté en feuilles de frais suffisamment à temps). Elle est aussi invisible sur les billets à titre privé que nous serions tentés de commander <em>via</em> Antarctic Express. On pointe là un autre problème, celui de la <strong>séparation entre l’effort et le bénéfice</strong>. La conscience professionnelle et la volonté de réduire les coûts de son employeur ont leurs limites quand les contraintes s’accumulent et que les gains ne sont jamais, même symboliquement, partagés.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Je brode, c’était peut-être un très moche </em>stewart<em>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>D’ailleurs elle a annoncé ne plus l’utiliser. Vue l’ambiance à l’agence, je ne pense pas qu’il y ait jamais de sanction pour cette violation des procédures.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>Nouvelle-Zélande.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Oui, dans ma <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">SSII</a> </em>(c’était en 2006, mon nouvel employeur paie lui-même l’avion. - Note de 2007)<em>, nous devons avancer </em>tous<em> les frais de déplacement sur nos deniers personnels, </em>via<em> la carte de crédit à débit différée fournie par l’entreprise et débitée sur notre compte personnel. Cela implique surtout d’assumer les risques qui vont avec toute transaction quelle qu’elle soit.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/11/14/270-ubu-et-reservation-aerienne#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/240
Les joies de la SSII (5) : Se battre pour bosser
urn:md5:0b1494d5a6617ac43d172ec965c35683
2006-10-31T11:34:00+00:00
2020-03-31T15:34:00+00:00
Christophe
Il faut bien manger
base de données
complexité
cynisme
logistique
mercenaire
mobilité
organisation
paradoxe
SSII
travail
<p>Il faut parfois une sacré motivation pour obtenir de quoi travailler normalement quand on est un « migrant ».</p> <p><em>Caveat : Ce qui suit ne concerne absolument aucune entreprise précise en particulier, mais des travers rencontrés par moi-même ou mes collègues parmi différents clients.</em></p>
<p>Le petit consultant migrant a enfin trouvé un siège, une prise électrique pour le portable, et s’est relié au réseau informatique par la précieuse prise RJ45. À ce stade, la récupération d’une adresse IP, par DHCP, ne posent aujourd’hui plus de problème (en général). Le paramétrage des imprimantes est une plaisanterie (enfin, si les pilotes sont accessibles...).</p>
<p>Enfin connecté, le consultant n’est pas au bout de ses peines : il doit à présent accéder à quatre outils capitaux : son mail professionnel, internet, les répertoires de documents de travail, les machines et serveurs.</p>
<ul>
<li>Le <strong>mail professionnel</strong>, <em>ie</em> de sa SSII, n’est pas un dû. <br />Le réseau de beaucoup de clients ne tolère pas d’accès vers l’extérieur autres que le web via un <em>proxy</em> : on oublie donc Outlook, Thunderbird et autre lecteur de courrier. Le consultant pourra se rabattre sur un webmail fourni par son entreprise (avec de la chance), ou faire rediriger son mail vers le compte mail interne fourni (imposé) par le client. <br />Parfois les règles de sécurité interdisent la redirection des mails. Cela fait partie des règles qu’il faut respecter jusqu’à ce qu’elles deviennent un frein au travail facturable (argument suffisant dans une SSII à condition de ne pas faire de bêtises ; de bonnes relations avec les administrateurs sont conseillées).</li>
</ul>
<ul>
<li><strong>Internet</strong> est devenu un outil absolument indispensable. <br />D’abord parce que Google et les différents forums constituent à présent la première source d’informations techniques ; ensuite à cause de la paperasse interne à la SSII à disposition des migrants, à un clic de souris.<br />Enfin parce que le consultant doit accéder à son webmail pour lire son courrier.<br /> <br />Certaines entreprises paranoïaques ne tolèrent pas le moindre accès à internet. Dieu merci, elles sont de plus en plus rares. Par contre, le <em>proxy</em> obligatoire est généralisé. Il fait partie des données obligatoires à collecter lors de la connexion à un réseau d’entreprise. Le consultant connaît par cœur les options d’IE (il est obligé de l’utiliser parce que ses clients l’utilisent parce que tout le monde l’utilise) et Firefox (il préfère, en général) pour modifier ce <em>proxy</em>. Il existe des extensions, scripts, sharewares... pour jongler entre plusieurs <em>proxys</em> en un clic.</li>
</ul>
<ul>
<li>Les <strong>documents de travail</strong> (spécifications, normes, documents divers...) peuvent être disposés de deux manières :
<ul>
<li>sur un répertoire réseau local ou un portail, plus ou moins bien rangés, éventuellement protégés par un mot de passe supplémentaire qu’il faudra lui aussi acquérir ;</li>
<li>ou bien distribués de manière <del>assez</del> totalement anarchique dans des documents, serveurs, portails, bases, dépendant de chaque sous-service. <br /> <br />Le jeu de la traque de <em>la</em> version de référence d’une spécification peut vite lasser. Surtout si elle est sur le disque dur (non sauvegardé, soit dit en passant) du portable d’un salarié du client en vacances au Kenya pour les trois semaines que durent la mission.</li>
</ul></li>
</ul>
<ul>
<li>Même à l’ère du <em>single sign on</em>, les <strong>serveurs, bases de données, applicatifs divers...</strong> gèrent parfois eux-mêmes leurs accès - et nominativement. <br /> <br />Dans un monde idéal, le consultant à peine arrivé se voit lister les accès à Oracle, SAP, etc. dont il a besoin ; et s’il manque quelque chose, un rapide message au service support puis une prompte approbation du responsable du domaine lui permet d’accéder dans le quart d’heure à ce qu’il lui faut.<br /> <br />Dans la réalité, un appel au service support (externalisé, débordé, mis au courant de rien) ressemble à une bouteille à la mer, ou se transforme en obligation de remplir une paperasse assez indigeste qui donne le droit d’attendre une semaine avant de relancer. Le responsable ayant autorité pour dire que M. Consultant peut aller lire les données hautement confidentielles de l’ERP est introuvable, si même on le connaît. L’administrateur Unix qui crée les comptes est un <a href="http://en.wikiquote.org/wiki/Bastard_Operator_From_Hell">BOFH</a>. Il n’y a plus de licence libre pour donner accès à tel applicatif hermétiquement verrouillé par son éditeur. Il est hors de question de donner accès à la production à un extérieur, mais les problèmes ne se manifestent justement qu’en production (la base de recette, elle, a deux ans d’âge ; encore heureux si ce sont encore des données réelles de l’époque et non un <em>mock up</em> théorique du début du projet). Etc.<br /> <br />J’ai vite pris le réflexe de chercher une ou deux personnes avec de la bouteille, ou connaissant nombre de leurs collègues dotés des sésames d’accès, et d’entretenir de bonnes relations avec elles.</li>
</ul>
<p>Au-delà d’un certain seuil d’écœurement du jeune consultant désireux pourtant de respecter les règles mais tenu de travailler sans aucun accès officiel, on entre dans le jeu du trafic des mot de passe de bases Oracle (ceux de défaut de l’installation, jamais changés), de serveurs ouverts à tous les vents, de comptes oubliés de prestataires disparus depuis le siècle dernier, de <em>proxys</em> officieux ; tout ceci par fichiers Excel entiers, transmis de prestataire à prestataire, recensant des accès que le support même serait incapable de donner. (Le cas est certes extrême mais réel.) <br />Dans les cas où les consultants ont pris en main des pans entiers du service, toute une activité peut donc se dérouler à l’insu du client<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>, et dans la plus pure tradition orale. Trois ans et deux générations de consultants plus tard, le système explose lors d’une crise de routine, et la vérité éclate : « On a toujours fait comme ça. » Et cette fois, on a cassé quelque chose.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">Partie 1 : Angoisse existentielle</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs">Partie 2 : Plein plein de chefs</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">Partie 3 : Le portable</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant">Partie 4 : Le consultant-migrant</a><br />
Partie 5 : Se battre pour bosser<br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail">Partie 6 : Les joies de l’accès à distance</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/12/04/447-les-joies-de-la-ssii-7-un-expert-sisi">Partie 7 : Un expert, sisi !</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/18/480-les-joies-de-la-ssii-8-imputer-oui-mais-sur-quoi">Partie 8 : Imputer, oui, mais sur quoi ?</a></p>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>La leçon à tirer est pour moi claire : toute <strong>sécurisation</strong> doit aller de pair avec une <strong>réactivité exemplaire</strong> des gens chargés de donner des accès. Car même intellectuellement convaincu du bien fondé d’accès limités et contrôlés, personne ne tolère longtemps un obstacle qui lui interdit de faire son travail - prestataire ou pas prestataire. Et une administration des droits défaillante se retrouve vite </em>de fait<em> contournée.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/231
Les joies de la SSII (4) : Le consultant migrant
urn:md5:384158006afd767e567a059df6988d41
2006-10-27T15:22:00+00:00
2020-03-31T15:34:59+00:00
Christophe
Il faut bien manger
informatique
logistique
mercenaire
mobilité
organisation
réseau
SSII
travail
<p>Un consultant bouge parfois beaucoup. Cela génère toute une gamme de problèmes.</p> <p>Dans le monde de l’informatique, et des SSII en particulier, un « <strong>consultant</strong> » est souvent un terme pompeux pour de l’intérim de luxe. Cet intérim peut durer des mois voire des années, sur le site du client, avec des outils (poste, logiciels) fournis par ledit client. C’est le mode <strong>régie</strong>, un extrême.</p>
<p>L’autre extrême est le <strong>consultant-papillon</strong> qui court d’un site à une agence, d’un client à l’autre. Plus souvent que son homologue sédentaire, il possède donc un ordinateur portable. J’ai déjà parlé de ce <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">portable lourd et encombrant</a>. Ce n’est que son piège le plus apparent.</p>
<h3>Chez le client</h3>
<p>À l’arrivée sur le site du client, le consultant migrant doit <del>marquer son territoire</del> se trouver une place.</p>
<p>Le client lui octroie parfois volontiers un coin de table et une chaise qui traîne par là (car personne n’en veut) ; parfois il l’exile dans une salle aveugle où un salarié normal refuse d’aller ; parfois le consultant enquête chaque matin pour savoir quel salarié est en RTT et squatter son poste. Le consultant en mission niche fréquemment dans les salles de réunion. Il y croise d’ailleurs parfois des salariés de l’entreprise qui ont un statut de migrant et ne sont pas mieux lotis, et bien sûr d’autres <del>mercenaires</del> consultants collègues et concurrents.</p>
<p>En se débrouillant, le consultant parvient à tirer jusqu’à son poste un <strong>câble réseau</strong> (placé selon les meilleures méthodes de braconnage afin que le premier venu se prenne les pieds dedans et emmène le PC à terre avec lui). Le wifi, non, n’est pas une solution fréquemment pratiquée : cela impliquerait de fournir à beaucoup trop de monde les clés d’accès au réseau sans fil.</p>
<p>Le consultant voyage volontiers en <del>meute</del> petit groupe, et bien sûr, il n’est venu à personne à l’idée que N consultants nécessitent N sièges et coins de table, mais aussi N prises électriques et N prises réseau. Le bricolage à base de multiprises et l’« emprunt » de <em>hubs</em> et <em>switchs</em> est une nécessité (les salariés du client connaissent également souvent ce jeu).</p>
<h3>« Chez soi »</h3>
<p>Ces problèmes logistiques ne se déroulent pas que dans un « contexte client ». En agence, « chez lui » donc, le consultant doit encore plus se battre. Chacun de ses collègues est dans la même situation, à chercher prises réseau et électrique.</p>
<p>De plus, une agence est dimensionnée pour abriter les administratifs, la hiérarchie, et le moins possible de <del>pions</del> consultants de base : s’il n’est pas chez le client, le consultant est en intercontrat et n’a donc rien à faire. Pas de chance, les projets actuels tendent vers <strong>l’externalisation jusqu’à l’absurde</strong>, la régie est démodée, et travailler à distance pour un client depuis son agence se rencontre de plus en plus fréquemment. Les locaux ne suivent pas toujours, et les capacités en débit Internet non plus. La solution pourrait s’appeler « <strong>télétravail</strong> », mais le concept parvient difficilement à atteindre le sommet de la hiérarchie.</p>
<p>Autres raisons du sous-équipement des agences : le matériel coûte cher (même s’il est loué en grande partie, il y a aussi la maintenance), surtout quand l’obsession est le résultat trimestriel ; les gains de productivité attendus d’écrans géants ou de sièges ergonomiques pour les développeurs ne sont pas engrangés par la SSII mais par le client ; une bonne part des consultants a son portable donc inutile d’investir en agence, etc.</p>
<h3>La sociabilisation</h3>
<p>L’esprit de corps dépend fortement des capacités sociales de chacun, du nombre de missions, de leurs durées, de l’éloignement des clients, du <em>turn over</em> dans l’entreprise, mais le consultant-papillon a tendance à connaître relativement peu de monde parmi ses collègues, et souvent très superficiellement. Le problème est récurrent dans toutes les SSII, dont la plupart ont du mal à créer une réelle culture commune (surtout dans l’actuelle ambiance productiviste à outrance).</p>
<p>Un passage en agence revient donc à croiser surtout des <strong>assistantes</strong>, qui constituent un des rares points fixes de la vie, et avec qui il n’est ni désagréable ni inutile de nouer des relations cordiales, ou bien des « chefs », qu’il faudra en général ménager ou éviter (il y en a des bons, aussi). On croise de plus en plus de gens « en fixe » travaillant à demeure en agence, encore faut-il avoir eu l’occasion de les connaître. De plus, le cliché veut que l’informaticien de base ne soit pas le plus spontanément sociable des êtres, et rassembler des gens dans une même salle d’intercontrat sans projet commun ne suffit pas pour souder une équipe.</p>
<h3>La cantine</h3>
<p>La nourriture est une activité capitale, et le consultant-papillon peut avoir accès à la cantine de son client... avec souvent le « <strong>droit d’entrée</strong> » à payer en plus du repas, pour qu’il ne profite pas indûment des tarifs subventionnés par le comité d’entreprise (soit environ 4 €). Les tickets restaurant ne sont pas acceptés, et si par malheur le consultant-papillon est trop près de son agence pour ne pouvoir faire passer le repas en frais de déplacement, c’est pour sa pomme. (Conséquence : il est plus économique de manger à l’extérieur avec les tickets restaurants, tant pis pour le client si le repas dure deux heures et non trente minutes). (<strong>Mise à jour</strong> de novembre 2007) Coup de bol, le client qui offre la cantine au sous-traitant qui vient dans ses locaux existe aussi, je peux en témoigner.</p>
<p>Tragique est le cas du consultant en régie très loin de chez lui, condamné au restaurant midi et soir pendant des mois d’affilée. Sans discipline de fer, la sanction pondérale est sévère. Ajoutons la joie d’annoncer à sa moitié délaissée que le week-end, on aimerait bien rester à la diète.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">Partie 1 : Angoisse existentielle</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs">Partie 2 : Plein plein de chefs</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">Partie 3 : Le portable</a><br />
Partie 4 : Le consultant-migrant<br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser">Partie 5 : Se battre pour bosser</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail">Partie 6 : Les joies de l’accès à distance</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/12/04/447-les-joies-de-la-ssii-7-un-expert-sisi">Partie 7 : Un expert, sisi !</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/18/480-les-joies-de-la-ssii-8-imputer-oui-mais-sur-quoi">Partie 8 : Imputer, oui, mais sur quoi ?</a></p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/230
Des millions de lignes à travers le millefeuille
urn:md5:e0087cac7dae17633e64eca1d6d9ca81
2006-10-14T12:47:00+00:00
2014-02-26T11:06:21+00:00
Christophe
Informatique lourde
abomination
autodestruction
base de données
complexité
dommage
dysfonctionnement
développement
ERP
expertise
gaspillage
informatique
optimisation
Oracle
organisation
provocation
sabotage
SAP
saturation
SQL
travail
ténacité
<p>Ou : « Du danger des outils qui s'empilent les uns sur les autres : autopsie d’un plantage en production. »</p> <p>Prenons un <a href="http://solutions.journaldunet.com/0208/020827_bi_panorama1.shtml">ETL</a>, outil chargé d’extraire bêtement des données d’un gros progiciel d’entreprise, <a href="https://www.coindeweb.net/blogsanssujetprecis//index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i">SAP</a> pour ne pas le nommer. SAP lui-même s’appuie sur une base de données <a href="http://www.oracle.com/lang/fr/database/index.html">Oracle</a>. L’ETL pourrait en principe attaquer les données directement au niveau Oracle, mais <strong>SAP impose que l’on passe par lui</strong><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-1" id="rev-pnote-217-1">1</a>]</sup>.</p>
<p>De ces trois outils, chacun utilise une variante de la <em>lingua franca</em> des bases de données, le <a href="http://www.commentcamarche.net/sql/sqlintro.php3">SQL</a> : Oracle connaît le PL/SQL (langage efficace et sans chichis que j’ai appris à apprécier), SAP utilise l’ABAP (mélange de Cobol et de SQL limité par sa tendance à vouloir s’appuyer sur plusieurs bases de données différentes sans en exploiter une à fond), et l’ETL définit ses requêtes sous forme graphique avec des morceaux de pseudo-SQL<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-2" id="rev-pnote-217-2">2</a>]</sup>.</p>
<h3>Besoin</h3>
<p>Au départ, le besoin était tout simple : une <strong>bête jointure de deux tables</strong> sur les « documents article », et récupération des lignes où au moins une de trois dates potentielles était dans une certaine fourchette.</p>
<p>Du côté de l’ETL, le développeur a exprimé cela ainsi :</p>
<blockquote><p>Joli graphique joignant les tables <code>MKPF</code> (en-têtes) et <code>MSEG</code> (lignes)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-3" id="rev-pnote-217-3">3</a>]</sup>, <br />et clause de filtrage définie ainsi :<br /> <br />
<code>MKPF.MBLNR = MSEG.MBLNR</code> (jointure)<br />
<code>AND</code><br />
<code>(</code><br />
<code> ( MKPF.CUPDT >= $PARAM2 AND MKPF.CPUDT <= $PARAM1 )</code><br />
<code>OR ( MKPF.AEDAT >= $PARAM2 AND MKPF.AEDAT <= $PARAM1 )</code><br />
<code>OR ( MKPF./BEV2/ED_AEDAT >= $PARAM2 AND MKPF./BEV2/ED_AEDAT <= $PARAM1 )</code><br />
<code>)</code></p></blockquote>
<h3>Boum !</h3>
<p>L’ETL s’adresse donc à SAP, et génère pour cela à la volée un programme ABAP ; le noyau SAP traduit cette requête dans le SQL d’Oracle, lequel renvoie les données au programme ABAP, dont la sortie est renvoyée à l’ETL.</p>
<p>Après quelques mois en production, ce programme a un soir littéralement explosé (le noyau de SAP refusa de lui allouer plus de mémoire, considérant qu’avec plusieurs gigaoctets il abusait déjà).</p>
<p>En fouillant on découvre déjà que la volumétrie remontant dans SAP se compte en <strong>millions de lignes</strong> (tables de mouvements de stocks d’une entreprise de belle taille sur plusieurs années), et qu’aucune des colonnes de filtrage n’est indexée dans la base de donnée. Le résultat final que recueille l’ETL ne compte cependant que peu d’enregistrements.</p>
<p>Dans le contexte présent d’un <em>cluster</em> de machines bien burnées, Oracle exécute ce double <em>full scan</em> en peu de temps — pas assez pour qu’on ait besoin de demander à un chef d’imposer à un administrateur système réticent de rajouter des index lourds sur des tables très sollicitées<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-4" id="rev-pnote-217-4">4</a>]</sup>. Ce n’est pas un <del>simple</del> classique problème de performances.</p>
<p>Le programme ABAP généré par l’ETL ressemble à ceci (je simplifie) :</p>
<blockquote><p><code><strong>SELECT</strong></code><br />
<code> MSEG9~MBLNR</code> (champs) <br />
<code> MSEG9~MJAHR</code><br />
<code> MSEG9~ZEILE</code><br />
<code> ...</code><br />
<code><strong>INTO</strong> (MSEG9MBLNR,</code> (stockage de la ligne dans des variables temporaires)<br />
<code> MSEG9MJAHR,</code><br />
<code> MSEG9ZEILE...)</code><br />
<code><strong>FROM</strong> MSEG AS MSEG9</code><br />
<code> <strong>INNER JOIN</strong> MKPF AS MKPF9</code> (jointure) <br />
<code> <strong>ON</strong> MKPF9<a></a>MBLNR </code><br />
<code>.</code><br />
...<br />
<code><strong>IF</strong> ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code> (clause de filtrage)<br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT <= $PARAM1 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code><br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT <= $PARAM1 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) )</code><br />
<code> AND ( ( ( ( MKPF9CPUDT <= $PARAM1 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) )</code><br />
<code> AND ( ( ( MKPF9CPUDT >= $PARAM2 )</code><br />
<code> OR ( MKPF9AEDAT >= $PARAM2 ) )</code><br />
<code> OR ( MSEG9/BEV2/ED_AEDAT >= $PARAM2 ) ) ) ) ) ) ) ) ).</code><br />
<br />
... (sauvegarde de la ligne dans une table interne qui sera envoyée à l’ETL)<br />
<br />
<code><strong>ENDIF</strong>.</code><br />
<br />
<code><strong>ENDSELECT</strong>.</code> (fin du parcours des lignes ramenées)</p></blockquote>
<p>J’ignore pourquoi la clause <code>IF</code> est si tourmentée, mais elle est mathématiquement équivalente à celle d’origine (une des trois dates doit être dans la fourchette demandée).</p>
<p>Le point à retenir est que <strong>ce <code>IF</code> est <em>hors</em> de la requête</strong>. Chacune des millions de lignes de la table passe dans ce <code>IF</code> ! <br />On objectera naïvement que de toute manière, faute d’index, il n’y a pas d’autre moyen que ce fastidieux méga-test.</p>
<p>Mais l’important est <strong>l’endroit où ce test s’effectue</strong> : les millions de lignes sont récupérées par la base Oracle, en sortent, entrent dans le noyau SAP (potentiellement une autre machine), et c’est le processeur ABAP qui se charge des tests sur les dates.</p>
<h3>Reformulation</h3>
<p>Le changement du programme ABAP est assez basique : j’ai déplacé la clause de filtrage <em>dans</em> la requête ABAP, espérant ainsi que SAP traduira cela à Oracle en une seule requête avec la clause de filtrage. (Et pour être propre on réécrit lisiblement la clause, et on rajoute <code>MJAHR</code> dans la jointure, qui manquait sans que cela gêne en pratique.)</p>
<blockquote><p><code><strong>SELECT</strong>...</code><br />
<code><strong>FROM</strong> MSEG AS MSEG9</code><br />
<code> <strong>INNER JOIN</strong> MKPF AS MKPF9</code><br />
<code> <strong>ON</strong> ( MKPF9<a></a>MBLNR</code> <br />
<code> AND MKPF9<a></a>MJAHR )</code><br />
<code><strong>WHERE</strong> ( MKPF9~CPUDT BETWEEN $PARAM2 AND $PARAM1 )</code><br />
<code> OR ( MKPF9~AEDAT BETWEEN $PARAM2 AND $PARAM1 )</code><br />
<code> OR ( MSEG9~/BEV2/ED_AEDAT BETWEEN $PARAM2 AND $PARAM1 )</code></p></blockquote>
<p>Oracle fait toujours un double <em>full scan</em>, le temps d’exécution est très proche, mais les lignes filtrées ne sortent même pas de la couche SQL, Oracle les jette à peine délivrées par le disque dur. On a évité à des gigaoctets de données de traverser au moins deux couches du mille-feuilles et d’occuper de la précieuse mémoire.</p>
<p>Pour les curieux, le SQL généré par SAP après la modification est basique :</p>
<blockquote><p><code> <strong>SELECT</strong> </code><br />
<code> T_00 . "MBLNR" , T_00 . "MJAHR" , T_00 . "ZEILE" , ...</code><br />
<code> <strong>FROM</strong> </code><br />
<code> "MSEG" T_00 , "MKPF" T_01</code><br />
<code> <strong>WHERE</strong> </code><br />
(jointure)<br />
<code> ( T_01 . "MANDT"<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-5" id="rev-pnote-217-5">5</a>]</sup> = :A0 AND T_01 . "MBLNR" = T_00 . "MBLNR" </code><br />
<code> AND T_01 . "MJAHR" = T_00 . "MJAHR" ) AND T_00 . "MANDT" = :A1</code><br />
(filtre sur les dates)<br />
<code> AND ( T_01 . "CPUDT" BETWEEN :A2 AND :A3</code><br />
<code> OR T_01 . "AEDAT" BETWEEN :A4 AND :A5</code><br />
<code> OR T_00 . "/BEV2/ED_AEDAT" BETWEEN :A6 AND :A7 </code><br />
<code> ) </code></p></blockquote>
<h3>Moralité</h3>
<p>Cet exemple est inhabituel : le développeur comme l’administrateur d’une base cherchent en général à limiter les <em>full scans</em> sur des tables aussi volumineuses, et rajoutent des index (mais il faut contrebalancer avec le coût en disque et en maintenance). On a ici la conjonction de plusieurs problèmes :</p>
<ul>
<li><strong>pas d’index</strong> sur de grosses tables (quoique, reconnaissons-le, des stats rafraîchies ont mené à un parcours un peu différent en joignant les tables par leur clé commune ; dans le cas d’un parcours complet des tables, cela n’est pas forcément une bonne chose, et on ne change rien au problème de la volumétrie) ;</li>
<li>un <strong>ETL qui n’a pas le droit de s’adresser directement à Oracle</strong>, alors qu’il connaît très bien son langage (un bon ETL est polyglotte : Oracle dans toutes ses variantes, Sybase, MS SQL Server, DB2...) ;</li>
<li>cet ETL (ou plutôt son <em>plug-in</em> pour SAP) commet une erreur stupide en <strong>séparant requête et filtrage (bug d’optimisation)</strong> <br />(<strong>Ajout de 2014</strong> : Cet ETL, je l’utilise encore des années après, et même dans des incarnations plus modernes il reste le plus stupide et le moins agréable de tous ceux que j’ai pu manipuler — mais il est vendu par SAP) ;</li>
<li>le compilateur ABAP n’est pas assez fûté pour repérer le problème et demande à Oracle le contenu complet de <code>MSEG</code> et <code>MKPF</code> ;</li>
<li>le compilateur ABAP semble <strong>incapable de gérer efficacement des paquets de plusieurs gigaoctets</strong>, il semble tout vouloir traiter d’un bloc, alors qu’Oracle traite ses données par paquets maniables de quelques dizaines de lignes (j’aimerais des détails, cette limite de SAP m’étonne) : le même bug ne serait pas apparu en PL/SQL ;</li>
<li>ajoutons un effet pervers dû au dimensionnement imposant des machines concernées : le problème n’est apparu ni en développement ni en recette (de plus ces bases sont anciennes, très anciennes, et je le déplore tous les jours), mais en production après un certain temps, quand les tables ont dépassé une certaine taille.</li>
</ul>
<p>Comme toutes les grandes catastrophes<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#pnote-217-6" id="rev-pnote-217-6">6</a>]</sup>, ce problème naît d’une accumulation de plusieurs bugs, et non d’un seul.</p>
<h3>Effet mille-feuilles et communication</h3>
<p>Les problèmes de communication entre programmes et la génération automatique de code sont courants, mais le « mille-feuilles » est une bonne pratique en programmation : vive la séparation des tâches entre modules spécialisés ! Cf couches OSI, TCP/IP, le protocole X, etc.</p>
<p>Mais ce n’est pas le cas ici : trois éléments ont <strong>chacun leur langage pour exprimer ce qui est fondamentalement une requête SQL</strong> ; la <strong>traduction n’est pas parfaite</strong> ou limitée, et n’utilise en tout cas pas toutes les possibilités de l’outil sous-jacent (Oracle).</p>
<p>On n’a pas <em>délégation</em> du travail et encapsulation des détails propres à un niveau qui ne concernent pas les autres (comme entre les différences couches de TCP/IP ou X), mais <em>réécriture</em> de consignes avec réinterprétation au passage à chaque étape : à la syntaxe près, la requête de l’ETL est strictement la même que le SQL d’Oracle, les couches qui font le boulot sont en dessous (dans le noyau Oracle).</p>
<h3>Analogie</h3>
<p>Cette histoire me rappelle furieusement le fonctionnement d’un service informatique au sens large, où la définition d’un développement à effectuer passe de l’utilisateur au support au fonctionnel interne au fonctionnel externe à l’analyste présent chez le client au chef de projet externe au développeur sur un autre continent, avec spécifications différentes à chaque niveau suivant les consignes/niveau/langue/priorités/besoins/limites/obsessions/normes de chaque strate ; alors que le premier besoin exprimée par l’utilisateur pourrait souvent (pas toujours, loin de là !) suffire au développeur final pour travailler, sans rajouter un effet téléphone arabe et une lourdeur monstrueuse en gestion et « pilotage ».</p>
<div class="footnotes"><h4 class="footnotes-title">Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-1" id="pnote-217-1">1</a>] <em>Je dis toujours que SAP est totalitaire car il veut </em>tout<em> contrôler.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-2" id="pnote-217-2">2</a>] <em>Ce qui devient vite illisible à mon avis.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-3" id="pnote-217-3">3</a>] <em>Si vous ne comprenez pas immédiatement la fonction des tables et colonnes par leur nom, c’est tout à fait <del>normal</del> habituel sur SAP.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-4" id="pnote-217-4">4</a>] <em>Au passage, je suis surpris du faible nombre d’index présents sur les tables de SAP par rapport à celles du concurrent Oracle Applications.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-5" id="pnote-217-5">5</a>] <em>Le mandant est une clé implicite de chaque table. Il correspond à une « vision du monde » et permet de séparer plusieurs jeux de données (test, paramétrage...) voire certains programmes.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#rev-pnote-217-6" id="pnote-217-6">6</a>] <em>N’exagérons pas, c’est « juste » du décisionnel, ni la production ni la logistique n’ont été affectées.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/217
Le code qui pue au premier coup d’œil
urn:md5:1dcba1bbf698f4eb9e56b1f291af7105
2006-09-25T22:47:00+00:00
2010-11-04T06:24:26+00:00
Christophe
Informatique : l’art du développement
auto-organisation
bug
citation
complexité
dysfonctionnement
développement
expertise
informatique
métainformation
signifié
sécurité
travail
<p>Comment repérer des bugs sans réfléchir, en lisant le code.</p> <p><em><a href="http://www.joelonsoftware.com/articles/Wrong.html" hreflang="en">Making Wrong Code Look Wrong</a></em> : ce billet de mai dernier de l’excellent <a href="http://www.joelonsoftware.com/" hreflang="en">Joel Spolski</a> porte sur les niveaux de lecture du code informatique, les normes de codages, la colocation, comment faire apparaître un bug à la lecture, sur la justification de la notation hongroise, et les dangers des exceptions.</p>
<p>Détaillons, traduisons, commentons :</p>
<h3>Propreté</h3>
<p>La <em>propreté</em> d’un environnement de travail dépend du but poursuivi et ne saute pas aux yeux d’un profane (Joel donne l'exemple d’une boulangerie). Seuls les gens expérimentés repèrent quels sont les objets/machines à surveiller/graisser, et ne font pas attention à la peinture défraîchie professionnellement sans intérêt.</p>
<p>Le débutant (ou le chef non issu du milieu) ne verra que l’extérieur : la peinture défraîchie (mais pas la machine bien graissée), le bureau mal rangé (mais sur le disque dur c’est au cordeau), le code qui ne respecte pas les <strong>normes de codage</strong> (indentation, nommage des variables, etc.)</p>
<p>Ce n’est qu’avec de l’habitude que le débutant repère les pièges qu’aucune norme n’évitera (Joel fournit quelques exemples vicieux en C). <strong>Le professionnel expérimenté <em>sent</em> les pièges</strong> invisibles au débutant.</p>
<h3>Les erreurs qui sautent aux yeux</h3>
<p>Le niveau encore supérieur est de <strong>construire le code pour que les erreurs sautent aux yeux</strong>. Suivent quelques exemples, notamment la proposition d’utiliser des <strong>préfixes</strong> comme dans <code>usMaChaîne</code> pour toute chaîne venue de l’extérieur non encore passée au filtre sécuritaire (contexte d’une appli web où chaque chaîne envoyée doit être considérée comme hostile et menant à une <a href="http://www.commentcamarche.net/attaques/injection-commandes-sql.php3">injection SQL</a>, jusqu’à ce qu’elle soit déclarée innocente).<br />C’est une sorte de <strong>typage destiné au développeur</strong>.</p>
<p>Pour faire apparaître à l’œil le code incorrect, une autre technique est de s’arranger pour ne pas avoir besoin, dans un bout de code, d’aller voir ailleurs.</p>
<ul>
<li>D’où la technique précédente qui évite de chercher le type jusque dans les déclarations.<br />D’où l’intérêt de faire des <strong>fonctions courtes</strong> (un écran), et des embranchements de conditions et des boucles que l’on peut embrasser d’un regard.</li>
<li>D’où une <strong>déclaration des variables le plus près possible de l’endroit où elles sont utilisées</strong> (colocation). <br />(Et pour ma part, je vois un autre intérêt : elles sont le plus <em>locales</em> possible, le moins sujettes à modification par effet de bord. Dans l’idéal, une variable utilisée à chaque pas d’une boucle est déclarée <em>dans</em> la boucle, réinitialisée ainsi à chaque itération. Hélas, l’ABAP, entre autres, ne le permet pas, et c’est une des raisons de ma répugnance à l’utiliser.)</li>
</ul>
<ul>
<li>J’ajouterai aussi que faire modifier des variables globales par des fonctions dont elles ne sont pas paramètres est une abomination : les paramètres doivent indiquer ce qui entre dans une routine, ce qui en sort, sans toucher au reste.</li>
</ul>
<ul>
<li><strong>Un code doit faire ce qu’il semble vouloir faire</strong> : macros et surcharge des opérateurs sont à proscrire.</li>
</ul>
<h3>Notation hongroise</h3>
<p>Joel revient à une méthode très souvent décriée : la <strong>notation hongroise</strong>.</p>
<p>À l’origine, son inventeur proposait d’inclure un préfixe dans le nom de la variable lié non à son <em>type</em> mais à son <em>genre</em> (<em>kind</em>), son utilité <em>fonctionnelle</em> :<br /> <code>usChaine</code> indique une <em>unsafe string</em> (dans l’exemple du code web ci-dessus), et <code>sfChaine</code> sa version sécurisée ; <br /> <code>rw</code> et <code>col</code> sont, dans le code d’Excel, respectivement des lignes (<em>rows</em>) et colonnes ; <br /> <code>xw</code>, <code>yw</code>, <code>xl</code> et <code>yl</code> indiquent des abscisses et des ordonnées par rapport à la fenêtre (<em>window</em>) ou au cadre d’affichage(<code>layout</code>) ; <br /> <code>c</code> indique un comptage et <code>d</code> une différence ;<br /> bref toute technique où un mélange direct saute aux yeux, car <strong>toute conversion doit être explicite</strong> (<code>sfChaine = SafeFromUnSafe (usChaine)</code> ou <code>xwTruc = xlTruc + xwLayout</code>).</p>
<p>La notation hongroise a tant d’ennemis parce que les développeurs pour Windows, notamment, en ont abusé (suivant les premiers manuels), et le préfixe n’indique en général que le type technique (<code>i</code> pour <code>int</code>, <code>dw</code> pour <code>double word</code>...), information inutile car le compilateur sait déjà repérer les erreurs d’affectations les plus grossières.<br />(Du moins à deux réserves près :</p>
<ul>
<li>Les avertissements du compilateur doivent être activés, ce qui paradoxalement n’est plus le cas dans les gros projets à l’historique chargé (<em>Word</em> par exemple, selon un commentateur de Slashdot ayant touché au code).</li>
<li>Les <strong>conversions implicites</strong> existent et pourrissent la vie de bien des programmeurs, en générant certains bugs vicieux.<br />En PL/SQL, mes favoris reposent sur les conversion de date (<code>TO_CHAR</code>) sans préciser le format (il faut plutôt par exemple <code>TO_CHAR(madate, ’DD-MON-YYYY’)</code>), ou en ABAP les nombres stockés sous forme de chaînes de caractères (ce qui flanque facilement tout tri ou filtre en l’air). )</li>
</ul>
<p>(Personnellement, je pense qu’une notation qui indique déjà le type technique est mieux que rien. J’aime savoir au premier coup d’œil si je manipule un tableau, une chaîne, un nombre. La notation hongroise utilisée à bon escient indique à quoi ils servent, en plus.)</p>
<p>(J’ajouterais aussi qu’il est possible dans certains langages de créer des types en fonction des besoins. L’exemple le plus primitif est mon cher ABAP, où par exemple il existe un type <code>KUNNR</code> pour les codes clients<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/25/45-le-code-qui-pue-au-premier-coup-d-oeil#pnote-46-1" id="rev-pnote-46-1">1</a>]</sup> (« élément de données » défini comme un CHAR de taille 10), ou <code>MATNR</code> pour les codes articles (CHAR de taille 18). <br />Dans le vieux <em>R/3</em> on ne profite pas des vérifications possibles, et l’intérêt est limité. Le module CRM, en ABAP objet, est bien plus strict, et impossible de fournir à une fonction un type quand elle en attend un autre, même si en réalité le type sous-jacent est le même. La conséquence est une orgie de variables temporaires de transtypage, et beaucoup d’énervement pour le développeur, car ces incompatibilités de types ne se révèlent pas à la compilation, mais <em>sous la forme de </em>dumps<em> du programme à l’exécution</em> !!!! <br />Même sans cela, un typage trop fort imposé par le compilateur devient vite fastidieux.)</p>
<h3>Exceptions</h3>
<p>Joel termine par sa <strong>haine des exceptions</strong> (si courantes en Java<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/25/45-le-code-qui-pue-au-premier-coup-d-oeil#pnote-46-2" id="rev-pnote-46-2">2</a>]</sup>). Elles éliminent la colocation du code, qui n’est alors plus linéaire et facile à suivre. Comme un haïssable <code>GOTO</code>, il permet de court-circuiter toute la logique du programme.</p>
<p>(En PL/SQL, j’utilisais les exceptions de manière très locale pour tester le résultat d’un <code>SELECT</code> (test de <code>NO_DATA_FOUND</code>, <code>TOO_MANY-ROWS</code>...), ou dans les cascades de tests de validation, seul endroit aussi où un <code>GOTO fin_test</code> peut être employé légitimement pour des raisons de lisibilité).</p>
<h3>Pour finir</h3>
<p>Sa conclusion : <strong>“<em>The way to write really reliable code is to try to use simple tools that take into account typical human frailty, not complex tools with hidden side effects and leaky abstractions that assume an infallible programmer.</em>”</strong></p>
<p>Et en tant qu’humain hautement faillible, je ne peux qu’approuver.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/25/45-le-code-qui-pue-au-premier-coup-d-oeil#rev-pnote-46-1" id="pnote-46-1">1</a>] <em>KUNde NummeR, </em>auf deutsch, natürlich<em>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/25/45-le-code-qui-pue-au-premier-coup-d-oeil#rev-pnote-46-2" id="pnote-46-2">2</a>] <em>Apparemment jusqu’à l’absurde.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/25/45-le-code-qui-pue-au-premier-coup-d-oeil#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/46
Le paradis des informaticiens
urn:md5:935ba465dae632342b488a1d9bbba45b
2006-09-15T00:00:00+00:00
2010-11-03T21:17:09+00:00
Christophe
Informatique : l’art du développement
administration
bon sens
développement
ergonomie
hiérarchie
informatique
optimisme
organisation
ouverture d’esprit
perspective
pouvoir d’acheter
science-fiction
surréalisme
travail
utopie
émerveillement
<p>Joel Spolsky décrit une entreprise où les développeurs sont choyés, et démontre que cela est rentable. Chiche !</p> <p>Je ne présente plus Joel Spolsky, le développeur new-yorkais chroniqueur. <a href="http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html">Son dernier billet en date au moment où je tape ceci explique comment recruter des développeurs (forcément des bons), comment les attirer, comment les conserver</a>.</p>
<p>C’est beau comme de la SF.</p>
<p>Il milite pour investir dans ce qui peut faire grimper la productivité du développeur, sans coûter forcément si cher au final. Notamment :</p>
<ul>
<li>des chaises ergonomiques (pub pour <a href="http://www.darwinmag.com/read/writeon/column.html?ArticleID=733" hreflang="en">Aeron</a>) : au final, un surcoût équivalent au budget papier toilette ;</li>
</ul>
<ul>
<li>des bureaux pour chacun :</li>
</ul>
<blockquote><p><em>So my experience has been that a number of excuses all pile up until it’s virtually impossible to get private offices for developers in any but the most enlightened of companies, and even in those companies, the decision of where to move and where people should work is often taken once every ten years by a committee consisting of the office manager’s secretary and a junior associate from a big architecture firm, who is apt to believe <strong>architecture-school fairy tales about how open spaces mean open companies</strong>, or whatever, with close to zero input from the developers or the development team.</em></p></blockquote>
<ul>
<li>tous les gadgets utiles possibles :</li>
</ul>
<blockquote><p><em>Similar logic applies for other developer toys. <strong>There is simply no reason not to get your developers top of the line computers</strong>, at least two large (21”) LCD screens (or one 30” screen), and give them free reign on Amazon.com to order any technical book they want. These are obvious productivity gains, but more importantly to our discussion here, they’re <strong>crucial recruiting tools</strong>, especially in a world where most companies treat programmers as interchangeable cogs, typists, really, why do you need such a big monitor and what’s wrong with 15” CRTs? </em></p></blockquote>
<ul>
<li>pas de politique interne au bureau à cause du sens de la justice très prononcé chez l’informaticien moyen :</li>
</ul>
<blockquote><p><em>Code either works, or it doesn’t. There’s no sense in arguing whether a bug exists, since you can test the code and find out. The world of programming is very just and very strictly ordered and a heck of a lot of people go into programming in the first place because they prefer to spend their time in a just, orderly place, <strong>a strict meritocracy where you can win any debate simply by being right</strong>.</em></p></blockquote>
<ul>
<li>l’envie de travailler (pour l’ambiance au bureau, le travail, ou le but final) :</li>
</ul>
<blockquote><p><em>Another thing developers like is working on something simple enough or popular enough that they can explain to Aunt Irma, at Thanksgiving. Aunt Irma, of course, being a nuclear physicist, doesn’t really know that much about Ruby programming in the gravel and sand industry.</em></p></blockquote>
<ul>
<li>l’argent, de manière relativement accessoire mais suffisante :</li>
</ul>
<blockquote><p><em>They don’t care about money, actually, unless you’re screwing up on the other things. <strong>If you start to hear complaints about salaries where you never heard them before, that’s usually a sign that people aren’t really loving their job</strong>. If potential new hires just won’t back down on their demands for outlandish salaries, you’re probably dealing with a case of people who are thinking, “Well, if it’s going to have to suck to go to work, at least I should be getting paid well.” (...)<br /> Offering high salaries is a surprisingly ineffective tool in overcoming problems like the fact that programmers get 15” monitors and salespeople yell at them all the time and the job involves making nuclear weapons out of baby seals.</em></p></blockquote>
<p>De la science-fiction, je vous dis !</p>
<p>(Actuellement, je travaille dans une salle de six personnes au bas mot, le bâtiment est promis à une destruction prochaine, les toilettes sont bouchées toutes les deux semaines, certaines chaises n’ont plus de rembourrage, les écrans cathodiques font un peu mal aux yeux mais je suis content du 13” de mon portable ; j’ai peiné à m’approprier un clavier USB pour soulager mes poignets ; la politique est présente mais, en tant que pion de société de service, ce n’est même pas la peine que je cherche à m’en mêler. Cadre, je dois (en théorie) demander l’autorisation pour acquérir le moindre livre. Mon salaire, certes humain, a progressé avec l’inflation mais je pleure en parcourant <em>Courrier Cadres</em> et je préfère ne pas en parler en famille de peur qu’on ait pitié de moi. Je travaille sur des technologies demandées mais archaïques <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/19/186-prise-de-tete-en-abap">voire que je déteste</a>, pour des industriels qui ne sauveront pas le monde, et pour la plus grande gloire d’actionnaires dont certains sont des caricatures vivantes. <del>Non je ne suis pas aigri.</del> Je suis conscient que mon sort est bien plus enviable que celui de beaucoup d’autres.)<br />(<strong>Note postérieure</strong> : J’ai quand même démissionné quelques semaines semaines après avoir écrit ces lignes.)</p>
<p><strong>Ajout du 17 janvier 2007</strong> : Dans le même esprit, mais plus revendicatif, existe une <a href="http://www.codinghorror.com/blog/archives/000666.html" hreflang="en">Déclaration des Droits du Programmeur</a> (merci Steve !). De l’utopie pure sur à peu près tous les points.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/15/236-le-paradis-des-informaticiens#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/208
Signatures dans Lotus Notes
urn:md5:35a6d5ca309bf418983302448a99d0dc
2006-09-12T00:00:00+00:00
2010-11-03T21:09:46+00:00
Christophe
Informatique pratique
foutage de gueule
haine
informatique
Lotus Notes
travail
<p>Coup de gueule dérisoire-car-inutile-mais-ça-soulage-de-le-dire sur l’ergonomie déplorable d’un logiciel cher et archi-répandu (et pour une fois ce n’est pas SAP).</p> <p>Dans <a href="http://fr.wikipedia.org/wiki/Lotus_Notes">Lotus Notes</a>, <a href="http://www.computergripes.com/LotusNotes.html" hreflang="en">qu’apparemment je ne suis pas seul à haïr</a>, il existe une entrée de menu <code>Fichiers / Préférences / Préférences Utilisateur</code>, offrant l'accès à une boîte de dialogue qui comporte un onglet <code>Courrier</code> et les options qui vont bien.</p>
<p>J’ai longtemps cherché dans ce dialogue <strong>où</strong> je pouvais changer ma signature automatique (et Dieu sait qu’il faut souvent la modifier quand on est un SBF<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/12/239-signatures-dans-lotus-notes#pnote-211-1" id="rev-pnote-211-1">1</a>]</sup> de l’informatique, et surtout SPTF<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/12/239-signatures-dans-lotus-notes#pnote-211-2" id="rev-pnote-211-2">2</a>]</sup>).</p>
<p>J’ai trouvé : c'est à l’autre bout du menu, dans <code>Actions / Outils / Préférences</code>. Là un sous-onglet dans une fenêtre au <em>look</em> totalement différent concède un espace où taper le précieux sceau.</p>
<p>Pourquoi un doublon aussi grotesque ? Mystère.</p>
<p>À côté de cela, les raccourcis claviers peu standards, ou le fait que la connexion à la version web de Notes m’affiche en triple chaque onglet, sont des détails.</p>
<p><strong>Ajout de 2010</strong> : Quatre ans déjà que je supporte cette bouse. Quelle horreur...</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/12/239-signatures-dans-lotus-notes#rev-pnote-211-1" id="pnote-211-1">1</a>] <em>Sans Bureau Fixe.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/12/239-signatures-dans-lotus-notes#rev-pnote-211-2" id="pnote-211-2">2</a>] <em>Sans Poste Téléphonique Fixe.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/12/239-signatures-dans-lotus-notes#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/211
Les noms et codes des projets et programmes
urn:md5:654263708d44e90acabac4a5297687b4
2006-09-03T22:09:00+00:00
2014-02-26T10:57:28+00:00
Christophe
Informatique : l’art du développement
administration
analogie
communication
développement
fichage
hiérarchie
informatique
métainformation
organisation
perspective
signifié
surréalisme
travail
<p>Micro-sociologie des noms de projets, grands ou petits, abscons ou pas.</p> <p>Dans toute entreprise d’une certaine taille, on parle à un moment ou un autre de « projet », sur tel ou tel sujet. Au sein du service informatique, ce peut être l’implémentation d’une fonctionnalité d’un outil, une migration d’outil, un développement complet demandé par les utilisateurs, de la maintenance, etc.</p>
<p>Et pour savoir de quoi on parle, il faut <strong>donner un nom au Projet</strong>.</p>
<h3>Le nom du Grand Projet</h3>
<p>L’accouchement de ce nom peut nécessiter un grand gaspillage d’énergie. De grandes boîtes paient des services ou agences de communication pour baptiser leurs Grands Projets<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#pnote-201-1" id="rev-pnote-201-1">1</a>]</sup> et organiser des campagnes de publicité internes. <em><a href="http://en.wikipedia.org/wiki/Design_by_committee" hreflang="en">Design by commitee</a></em> aidant, le résultat est un très décevant et consensuellement évident mot qui plaît aux <em>managers</em> et n’explique rien, genre « Goal », « Croissance », « Performance », « Ambition Réussite »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#pnote-201-2" id="rev-pnote-201-2">2</a>]</sup>...</p>
<p>Plus intéressant est le nom qui fait référence à l’histoire, à un domaine externe : j’ai croisé un projet « Silk Road » (« Route de la Soie » ; en rapport, bien sûr, avec des approvisionnements depuis l’Asie) et subi un « Vasco » (aucun rapport avec la Renaissance).<br />Parfois le commanditaire cherche un lien entre le nom et sa signification, et un acronyme est créé <em>à partir</em> du nom, souvent de manière tourmentée. Le cas est fréquent dans l’administration, par exemple le <a href="http://www.service-public.fr/accueil/retraite_cedre.html">CEDRE</a> (Calculateur Expert de Droits REtraites). L’humour peut être de la partie (quelque part à La Défense, un logiciel nommé « Calife » a eu pour successeur « Iznogoud »).</p>
<h3>Le nom du petit logiciel</h3>
<p>Ces grands noms de projets valent pour une entreprise entière. Quand la réalisation descend jusqu’à l’informatique, et plus précisément aux modifications des logiciels maison, le projet se concrétise en briques élémentaires : un programme sur <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Oracle ou SAP</a> modifiant tel comportement inadéquat de l’<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i">ERP</a>, un rapport Crystal Report généré périodiquement, des bases Access modifiées, des mails d’alerte automatisés, des morceaux d’intranet complétés, des interfaces utilisateur en <a href="http://dotnet.developpez.com/fr">.net</a>, des services en Java, des protocoles, des trous dans les <em>firewalls</em>, etc.</p>
<h4>Pas trop long...</h4>
<p>Pour des raisons de facilité et rapidité de communications, des <strong>noms courts</strong> sont nécessaires. Les libellés de micro-projets sont inutilisables dans la vie de tous les jours : « Édition de factures pour ventes de bidules en Irlande, Royaume-Uni et Portugal, version 2 », « Débloquage des avoirs générés par le logiciel de recalcul des avoirs pour différent commercial », « Import de la liste des concessionnaires de Toyotsushita pour lesquels nous assurons l’après-vente », « Génération automatique des informations de mises en palette de trucs-machins », « Recalcul des prix en tenant compte des surtaxes cachées pour les clients trop bonne poire pour aller voir la concurrence », etc.</p>
<h4>Pas arbitraire...</h4>
<p>Mais pas non plus question de se casser le crâne sur un nom recherché et explicite à chaque objet. On peut considérer que chacun est une entité séparée (programme d’éditions de telles factures, interface de soumission de tel programme, rapport sur ceci ou cela), mais <strong>donner un nom non descriptif deviendrait vite vain</strong>. En quelques années, les programmes gravitant autour d’un ERP d’une usine ou d’une entreprise un peu importante dépassent rapidement la <em>centaine</em>. Je parle des ERPs, que je connais, la situation est similaire ailleurs (peut-être moins grave dans les services dont le parc logiciel se renouvelle plus vite).</p>
<p>Ce nom doit donc être <strong>généré</strong> plus ou moins automatiquement.</p>
<p>Je m’interroge sur ce que pourrait donner un système de nommage systématique à partir de <strong>listes prédéfinies</strong> : peintres ou écrivains célèbres pour des rapports, villes européennes pour la gestion de la facturation, personnages du <em>Seigneur des Anneaux</em> pour des programmes d’administration très techniques, etc.</p>
<p>Toujours est-il que ce n’est pas le schéma qui est souvent retenu :</p>
<ul>
<li>un nom est lié à une identité apparente, et l’anthropomorphisme appliqué à un bout de logiciel (notamment par ceux qui écrivent les spécifications, ou les <em>managers</em>), est plus difficile que pour une machine, qui semble parfois avoir sa volonté propre et une unité physique concrète (ainsi les unixiens nomment leurs machines de noms poétiques depuis des décennies) ;</li>
</ul>
<ul>
<li>je suis persuadé que beaucoup d’habitudes de nomenclature interne ont été prises à l’époque de l’informatisation galopante sous DOS ou Windows 3.1 : avec huit caractères, difficile de nommer un fichier <code>Picasso_jeu_de_test.xls</code>, <code>Barcelone_Dossier_d_exploitation.doc</code> ou <code>Shadowfax<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#pnote-201-3" id="rev-pnote-201-3">3</a>]</sup>_spécifications.doc</code> ;</li>
</ul>
<ul>
<li>ces noms issus du monde extérieur sont en général trop longs pour une civilisation et un milieu où l’acronyme et le code d’identification sont rois, la mémoire courte, le sens poétique ou épique absent ;</li>
</ul>
<ul>
<li>les commerciaux et gens du marketing, nettement plus sensibles au nommage, ne s’intéressent pas au moindre petit bout de logiciel développé en interne (et ce n’est pas leur rôle) ;</li>
</ul>
<ul>
<li>il faut être sûr que tout le monde partage les mêmes références culturelles (« Comment ça Verlaine ce n’est pas un peintre ? Un écrivain ? C’est de la facturation, alors, pas de la vente ! »).</li>
</ul>
<h4>Triste solution</h4>
<p>Le résultat plairait donc à nos pires énarques, sous la forme d’un <strong>pur numérotage</strong>, en général par un <strong>découpage en domaines fonctionnels</strong>, chaque domaine étant désigné par une à trois lettres : <code>SPIP19</code>, <code>SPXC03</code>, <code>SC97</code>, <code>CRM17</code>, <code>VE71</code>...</p>
<p>Ensuite on décline. Pour les spécifications : <code>SC43_DSP.doc</code>, <code>SPIP08_maquette.xls</code>, etc. Le programme lui, est une collection de modules nommés sur ce radical : <code>XX_SC43_INPUT.sql</code>, <code>R567_RAPPORT.jar</code>, <code>CRM17_PLANNING.c</code>.</p>
<h4>Résultat</h4>
<p>On obtient ainsi un vocabulaire interne rapidement incompréhensible aux personnes extérieures :</p>
<blockquote><p>« Il y a une erreur dans SPR13. SPKV43 n’est pas passé car le SC88 s’est planté. Le client est furieux, mais impossible de lui faire un avoir par VE34. »</p></blockquote>
<p>Au moins, un nommage par noms serait d’un surréalisme plus agréable et prononçable :</p>
<blockquote><p>« Il y a une erreur dans Aragorn. De Vinci n’est pas passé car Milou s’est planté. Le client est furieux, mais impossible de lui faire un avoir par Barcelone. »</p></blockquote>
<div class="footnotes"><h4 class="footnotes-title">Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#rev-pnote-201-1" id="pnote-201-1">1</a>] <em>Dans les cas les plus graves, les Grands Projets ne sont d’ailleurs que ça : du vent, de la « comm’ » dans toute sa splendeur, pour laisser croire que l’on </em>fait<em> quelque chose - et à la tête on </em>croit<em> même faire quelque chose.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#rev-pnote-201-2" id="pnote-201-2">2</a>] <em>La mauvaise langue que je suis considère que de tels noms révèlent un niveau de créativité collective nulle dans une entreprise. Mais en général on se contrefiche de mon avis sur ces sujets-là.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#rev-pnote-201-3" id="pnote-201-3">3</a>] <em>Nom original du cheval de Gandalf dans le </em>Seigneur des Anneaux<em>, bien sûr.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/09/03/224-codes-projets#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/201
Les joies de la SSII (2) : Plein plein de chefs
urn:md5:1a76bfbc65b70ad1a4e3332d70b4fc02
2006-08-04T18:12:00+00:00
2020-03-31T15:34:57+00:00
Christophe
Il faut bien manger
complexité
hiérarchie
mercenaire
offshore
organisation
paradoxe
SSII
travail
économie
<p>En SSII, entre le client, les chefs sur le terrain, les fonctionnels, et tous ceux qui font l’« interface », il y a de quoi oublier à qui on obéit.</p> <p>Caveat : <em>Ce poste traite de généralités ; ne pas chercher à en déduire des choses sur </em>ma<em> vie professionnelle et les collègues que je côtoie.</em></p>
<p>Un problème récurrent pour le petit consultant de SSII est la multiplicité des chefs.</p>
<ul>
<li>Comme tout le monde, il y a le <strong>chef direct</strong>, celui qui est au-dessus dans l’organigramme officiel, qui décide de la note<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup>, de l’augmentation annuelle.<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-2" id="rev-wiki-footnote-2">2</a>]</sup></li>
</ul>
<ul>
<li>Et puis il y a souvent un <strong>chef de projet</strong>, qui gère le projet sur lequel on se trouve. Ça n’est valable que sur les projets un peu importants ; ceux qui travaillent en régie sont directement sous les ordres du client.<br /> Le chef peut être un quasi-inconnu dans une autre ville, qui ne connaît pas la moitié des gens qui bossent pour lui, et que le consultant ne verra pas, ou bien un collègue juste plus ancien que lui sur le projet, qui fait le même boulot.</li>
</ul>
<ul>
<li>Il y a le <strong>client</strong>. Certains le voient « en direct », reçoivent les ordres directement de lui (fonctionnement en régie - quasiment de l’intérim de luxe). D’autres ne le voient jamais, notamment lors des mises en <strong>plateau</strong> formé autour d’une compétence donnée, <em>ie</em> un groupe de personnes qui reçoit des spécifications de développements de toute la France, voire plus loin, et renvoie des programmes terminés.<br />Existe aussi le plateau de support à une entreprise, par exemple quand celle-ci a sous-traité <del>tout son système nerveux</del> toute son informatique à une SSII. Le client est loin et inconnu, mais ses besoins sont critiques<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-3" id="rev-wiki-footnote-3">3</a>]</sup>.</li>
</ul>
<ul>
<li>La <strong>sous-traitance à outrance</strong> (client qui sous-traite à la SSII locale qui sous-traite à son plateau spécialisé, ou une autre SSII, dans Dieu sait quel pays<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-4" id="rev-wiki-footnote-4">4</a>]</sup>) implique la coordination de tous ces flux. <br />On a donc parfois (et je ne caricature pas) :<br />
<ul>
<li>le demandeur côté client (lui-même parfois spécialiste fonctionnel interne recevant les demandes de correction ou amélioration de ses propres utilisateurs au sein de son entreprise : utilisateur final, chef de service, <em>key user</em>, etc.) ;</li>
<li>le <em>front-office</em> interne au client chargé de coordonner, valider ce qui entre et sort de l’entreprise vers son prestataire ;</li>
<li>le <em>front-office</em> de la SSII, donc un consultant en local (de préférence situé sur le site du client, mais pas toujours ; au moins capable d’assister à une réunion), qui reçoit les demandes du client, et réenvoie par exemple à l’autre bout de la planète le travail à faire ;</li>
<li>le <em>front-office</em> du côté du centre de service, qui lui réceptionne (valide, contrôle, etc.) le travail à faire et le redistribue ;</li>
<li>la petite main qui va faire le « vrai » boulot et la réenvoyer le long de la chaîne (parfois le même que le précédent, qui sous-traite éventuellement si la charge le justifie et qu’il a réussi à arracher des « ressources »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-5" id="rev-wiki-footnote-5">5</a>]</sup> aux autres projets traités par son centre de service.)</li>
</ul></li>
</ul>
<ul>
<li>Je n’ai jamais compris comment on pouvait réduire les coûts en multipliant à ce point les intervenants (forcément expérimentés à ces postes d’interface - ou inutiles) et la paperasserie associée (mails, coups de téléphone, remplissage de tableaux de suivi, transfert de dossiers de spécifications et de rapports de contrôle qualité dans des systèmes informatiques différents), mais je ne suis pas dans les hautes sphères.<br />Sans doute une volonté d’allier les prix bas des Indiens au confort d’avoir un interlocuteur physiquement présent (plus pratique pour lui expliquer un problème ou pour l’engueuler). Il y a aussi une facilité à réduire drastiquement la taille d’une équipe dès qu’un projet important se termine : les consultants vont simplement ailleurs<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-6" id="rev-wiki-footnote-6">6</a>]</sup> - avec une bonne partie de la connaissance métier d’ailleurs.<br />Les raccourcis peuvent être nombreux, le développeur final peut avoir le droit (si son <em>manager</em> local le tolère et n’exige pas que tout passe par lui) de poser des questions directement au client final, ou bien les consultants internes du client « pilotent » directement le développeur (système de développement au ticket).<br />Le plus agréable pour moi était le système hyper-raccourci où je faisais spécifications, tests et développement directement avec l’utilisateur final (et demandeur) du logiciel<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-7" id="rev-wiki-footnote-7">7</a>]</sup>. Soyons lucide, c’est rarissime.</li>
</ul>
<ul>
<li>La question, pour le petit consultant maillon de cette chaîne à un stade ou un autre, est : <strong>« qui est mon chef ? »</strong> Plus précisément : « à qui obéir de manière ultime, quand les intérêts se télescopent ? ».<br />La bonne réponse politiquement<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-8" id="rev-wiki-footnote-8">8</a>]</sup> correcte est bien sûr : « à tout le monde ». Le client doit être content, le chef doit avoir un bon taux d’activité et ne pas voir remonter trop de plaintes...</li>
</ul>
<ul>
<li>Plus contrètement, il y a parfois des choix déchirants à faire : quand deux maillons ne sont pas d’accord (et l’éloignement encourage malentendus et quiproquos, et décourage les bonnes volontés : on est moins arrangeant avec des inconnus), que faire ?<br />Les conflits sur ce qui est <em>bug</em> à corriger et évolution due à une spécification imprécise explosent dans ce cas. Chacun voudra améliorer SON rapport d’activité, envoyer la faute sur l’autre, pour se faire bien voir de <em>son</em> chef hiérarchique ou de projet local. C’est humain. La loyauté envers le groupe ou le projet commun est fragile, quand tous les intervenants appartiennent à des entités différentes aux intérêts différents<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-9" id="rev-wiki-footnote-9">9</a>]</sup>.</li>
</ul>
<ul>
<li>Pour le consultant maillon de la longue chaîne, comme pour celui isolé en régie pendant des années au sein d’un gros client qui ne veut pas le lâcher (j’ai vécu les deux), le problème principal apparaît aux <strong>entretiens de fins d’années</strong> avec le chef hiérarchique théorique : dans le pire des cas, il n’a pas vu son subordonné de l’année ou presque (surtout en cas de déplacement longue durée) ; il n’a aucune idée de ce qu’il fait ; s’il a fallu rester jusque minuit deux mois de suite, il ne l’a même pas vu ; le chef ignore souvent tout de l’ambiance de travail ainsi que toutes les informations qui passent de manière informelle au fil de l’année (« Radio Machine à café »).<br />Pas facile de discuter augmentations sinon de manière vague, ou de se distinguer des autres consultants de même spécialité. Le chef a parfois cent personnes sous ses ordres, et certaines se réduisent en pratique vite à une ligne dans un tableau Excel. On ne peut même pas en vouloir au chef dans un tel cas - surtout dans un contexte où ce <em>manager</em> change tous les dix-huit mois<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#wiki-footnote-10" id="rev-wiki-footnote-10">10</a>]</sup>.</li>
</ul>
<p>Ce qui précède doit varier énormément selon l’entreprise ou l’agence, le projet, les chefs. Bien des employés de grandes entreprises se retrouveront aussi là-dedans. Pour résumer, le principal problème que je vois est la dilution de la loyauté au groupe et au projet en cours, avec tous ces échelons et chefs différents - et ceci sans que personne pense à mal ni perde son professionnalisme. Les problèmes de communication au travers de tous les échelons, et le temps perdu à coordonner tout ce beau monde, sont un autre problème...</p>
<p><strong>Ajout du 11 août 2006</strong> : Voir aussi <a href="http://eric.cabrol.free.fr/dotclear/index.php/2006/08/08/249-l-industrie-automobile-et-la-sous-traitance-5-modes-de-fonctionnement">ce billet d’Éric sur le fonctionnement en régie pendant des années</a>.</p>
<p><strong>Ajout du 18 octobre 2006</strong> : Voir <a href="http://eric.cabrol.free.fr/dotclear/index.php/2006/10/17/321-l-industrie-automobile-et-la-sous-traitance-6-externalisons-externalisons-il-en-restera-toujours-quelque-chose">ce billet du même Éric sur les conséquences de l’externalisation</a>.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/31/187-les-joies-de-la-ssii-1-angoisse-existentielle">Partie 1 : Angoisse existentielle</a><br />
Partie 2 : Plein plein de chefs<br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/08/11/192-les-joies-de-la-ssii-3-le-portable">Partie 3 : Le portable</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/27/259-les-joies-de-la-ssii-4-le-consultant-migrant">Partie 4 : Le consultant-migrant</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/10/31/260-les-joies-de-la-ssii-5-se-battre-pour-bosser">Partie 5 : Se battre pour bosser</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/12/21/261-les-joies-de-la-ssii-6-acces-a-distance-et-teletravail">Partie 6 : Les joies de l’accès à distance</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2007/12/04/447-les-joies-de-la-ssii-7-un-expert-sisi">Partie 7 : Un expert, sisi !</a><br />
<a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/18/480-les-joies-de-la-ssii-8-imputer-oui-mais-sur-quoi">Partie 8 : Imputer, oui, mais sur quoi ?</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] <em>Enfin, en fonction de la péréquation définie par les « Ressources Humaines »...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-2" id="wiki-footnote-2">2</a>] <em>Enfin, dans la marge dérisoire (de l’ordre de l’inflation) qui lui est allouée.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-3" id="wiki-footnote-3">3</a>] <em>On se demande pourquoi il sous-traite si c’est aussi capital.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-4" id="wiki-footnote-4">4</a>] <em>Les grandes SSII françaises ont recruté des milliers de personnes en Inde, voire en Chine, parfois en Roumanie ou au Maroc.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-5" id="wiki-footnote-5">5</a>] <em>Le terme « personnes » rappelle trop qu’il s’agit d’humains et pas de machines ou de pions.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-6" id="wiki-footnote-6">6</a>] <em>Qu’on ne s’étonne pas ensuite du développement de la mentalité mercenaire ou d’un certain détachement face aux problèmes du client.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-7" id="wiki-footnote-7">7</a>] <em>Cela suppose aussi un utilisateur qui sait clairement ce qu’il veut et sait demander des choses réalistes. Cela existe, sisi.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-8" id="wiki-footnote-8">8</a>] <em>Dans le sens le plus méprisable du terme.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-9" id="wiki-footnote-9">9</a>] <em>Je n’ai pas dit « opposés » non plus.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#rev-wiki-footnote-10" id="wiki-footnote-10">10</a>] <em>C’est tellement fréquent dans nombre de SSII que c’est probablement délibéré, et pas seulement expliqué par le </em>turn-over<em>. Les promesses orales de l’un n’engagent pas les autres. Le bon côté est que les engueulades avec la hiérarchie, prud’hommes compris, s’oublient également avec le temps.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/08/04/193-les-joies-de-la-ssii-2-plein-plein-de-chefs#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/173
Google bombing pour Petite Anglaise
urn:md5:e666a8395510c1d5375952214bb512e1
2006-07-21T22:36:00+00:00
2010-11-01T18:22:42+00:00
Christophe
Blogger, une aventure
autodestruction
blog
dommage
justice
liberté
provocation
réseau
travail
<p>Comment se tirer dans le pied en virant une blogueuse pour des broutilles.</p> <p>C’est le dernier micro-scandale à la mode dans la blogosphère : une <a href="http://www.petiteanglaise.com/" hreflang="en">Anglaise de Paris (« Petite Anglaise », jamais lu pour ma part)</a> virée de son travail pour avoir tenu un blog pas vraiment méchant envers son employeur.</p>
<p><a href="http://maitre.eolas.free.fr/journal/index.php?2006/07/20/405-la-lettre-de-licenciement-de-petite-anglaise">Maître Eolas a tous les détails ; il décortique et taille en pièces la lettre de licenciement</a>. En gros, il n’y a pas de préjudice démontrable...</p>
<p>...sauf celui qu’est en train de se faire Dixon Wilson tout seul comme un grand. Un désastre de <em>public relations</em>.</p>
<p>Car le <a href="http://fr.wikipedia.org/wiki/Google_bombing">google bombing</a> a commencé !</p>
<p><a href="http://www.google.fr/search?q=dixon%20wilson">Demandez à Google.fr ce qu’il pense de Dixon Wilson</a> : rien que sur la première page, ce 21 juillet 2006, on note notamment :</p>
<ul>
<li>tout en bas, la page de Maître Eolas ci-dessus liée ;</li>
<li>tout en haut, deux liens sur le site de ladite entreprise ;</li>
<li>un lien sur l’article <em><a href="http://en.wikipedia.org/wiki/Stupid" hreflang="en">Stupid</a></em> de Wikipedia ;</li>
<li>un <a href="http://padawan.info/fr/blogueur_dentreprise/dixon_wilson_se_ridiculise_en_virant_une_salariee_a_cause_de_son_blog.html">billet du blog de Padawan sur Dixon Wilson</a>.</li>
</ul>
<p>M’en vais donc rajouter ma petite contribution et faire profiter de mon modeste mais réel <em><a href="http://fr.wikipedia.org/wiki/Pagerank">pagerank</a></em> les deux liens de blog ci-dessus (qui n’en ont pas forcément besoin mais ça ne peut pas faire de mal...), en espérant que Google les affichera vite en début de page.</p>
<p>Le bon côté de l’histoire, c’est que la jurisprudence prud’hommale sur les blogs va s’étoffer...</p>
<p><strong>Mise à jour du 25 juillet 2006</strong> : En quatre jours, la situation a déjà évolué. Google fait accéder Padawan au podium ; deux autres blogs font leur apparition, Maître Eolas est en page 2, moi en 3.</p>
<p><strong>Mise à jour du 6 avril 2007</strong> : <a href="http://maitre.eolas.free.fr/journal/index.php?2007/03/29/587-affaire-petite-anglaise-la-victoire-de-la-blogueuse">Petite Anglaise a gagné son procès aux prud’hommes, le licenciement a été jugé comme abusif</a>. Et le présent billet est descendu bien bas dans les résultats de Google, éclipsé par tous les articles à ce sujet. Il est vrai aussi que <a href="http://searchenginewatch.com/showPage.html?page=2164611" hreflang="en">Google a récemment pris des mesures contre le bombing</a>.</p>
<p><strong>Mise à jour de janvier 2009</strong> : Presque deux ans après, toute recherche sur Dixon Wilson ramène plusieurs billets sur l’affaire, y compris en première page (Padawan et Maître Eolas).</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/21/188-google-bombing-pour-petite-anglaise#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/169
De la hiérarchie sémantique des sous-traitants
urn:md5:1d2eb6dbf9a4fa2bb53b018ae693ac59
2006-07-20T00:00:00+00:00
2006-11-21T16:21:03+00:00
Christophe
Il faut bien manger
cynisme
hiérarchie
perspective
SSII
travail
économie
<p>Comment déterminer la considération accordée à un sous-traitant par la manière dont on le nomme.</p> <p>P., un collègue, a une très intéressante théorie sur la hiérarchisation sémantique des partenaires d’une entreprise, du point de vue de celui qui achète/commandite.</p>
<p>Du plus considéré/respecté/craint au plus méprisé/exploité :</p>
<ul>
<li><strong>Maison mère</strong> : on lui dit inconditionnellement « Amen ».</li>
</ul>
<ul>
<li><strong>Autre filiale</strong> : par exemple l’entité commerciale d’un groupe industriel ; les usines s’écrasent devant et lui abandonnent leur marge.</li>
</ul>
<ul>
<li><strong>Partenaire</strong> : quasiment un égal. Chacun a un but et on négocie.</li>
</ul>
<ul>
<li><strong>Fournisseur</strong> : il amène ce qu’on lui a demandé, il fournit quelque chose.</li>
</ul>
<ul>
<li><strong>Prestataire</strong> : un cran en dessous ; il <em>fait</em> (et donc se salit les mains ; hou que c’est vil).</li>
</ul>
<ul>
<li><strong>Sous-traitant</strong> : exécutant pur.</li>
</ul>
<ul>
<li><strong>Autre filiale</strong> : symétrique de ci-dessus ; par exemple ici les usines du point de vue des entités commerciales ; on peut décider de leur fermeture depuis le siège sur un autre continent.</li>
</ul>
<ul>
<li><strong>Serf</strong> : Exploitable et corvéable à merci jusqu’à ce qu’il crève.</li>
</ul>
<p>Le dernier terme n’est jamais employé (il doit bien y avoir des équivalents modernes dans la <em>novlange</em> des maîtres du monde ?). Il suffit donc d’écouter quel terme un <em>manager</em> emploie pour parler des gens d’autres entreprises qui bossent pour lui pour connaître la considération qu’il leur accorde.<br />Sachant que les termes positifs sont volontiers galvaudés pour tromper la galerie...</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/20/162-de-la-hierarchie-semantique-des-sous-traitants#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/148
La Guerre des ERP : SAP vs Oracle Applications (5) : Schémas de données
urn:md5:bbf126b980bb6984d074230ba27103bb
2006-07-05T11:11:00+00:00
2010-11-01T08:26:48+00:00
Christophe
Informatique lourde
base de données
complexité
dommage
développement
ergonomie
ERP
incohérence
informatique
métainformation
Oracle
prise de tête
SAP
SQL
travail
<p>Un ERP, c’est une foule d’écrans, de fonctions, de formulaires... pour manier des données, mais d’abord une masse (souvent montrueuse) de données soigneusement rangées dans des tables, bien au chaud au sein d’une grosse base.</p>
<p>Ce qui ne veut pas dire que les deux ennemis se ressemblent sur ce point...</p> <p>(<em>Caveat</em> : Des notions de maniement de bases de données ne nuiront pas à la compréhension de ce qui suit. - <strong>Addendum</strong> : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/05/28/403-cle-primaire-de-substitution-ou-cle-naturelle">Je parle plus en détail et en théorie des différences entre clés fonctionnelles et arbitraires dans ce billet</a>)</p>
<h3>Oracle Applications</h3>
<p>Le schéma de données est à peu près <a href="http://tecfa.unige.ch/staf/staf-h/tassini/staf2x/Heidi/last_bd.htm">normalisé</a> ; les noms de table sont en anglais, à peu près explicites. Chaque ligne porte un identifiant numérique, distinct de celui vu par l’être humain sur un écran ou un rapport. Bref, une conception comme on l’enseigne aux étudiants de première année d’informatique.</p>
<p>Par exemple, la table des en-têtes de commande <code>OE_ORDER_HEADERS</code> a comme
<a href="http://fr.wikipedia.org/wiki/Clé_primaire">clé primaire</a> un identifiant numérique <code>ORDER_HEADER_ID</code>, et un numéro de commande utilisateur <code>ORDER_NUMBER</code>. <br />Cet <code>ORDER_HEADER_ID</code> sert de clé externe pour une <a href="http://fr.wikipedia.org/wiki/Jointure">jointure</a> sur la table des lignes de commandes, <code>OE_ORDER_LINES</code>, dont la clé est <code>ORDER_LINE_ID</code>. <br />Pour être compréhensible par un humain, une ligne (un enregistrement dans la table), possède les champs <code>LINE_NUMBER</code> (valeur démarrant à <code>1</code>) et <code>SHIPMENT_NUMBER</code> (idem). <br />Ce sont ces deux dernières valeurs qui s’affichent sur un écran ou un rapport, les clés réelles ne sont utiles qu’aux développeurs.</p>
<p><em>Exemple</em> : par le <code>ORDER_HEADER_ID</code> <code>175321</code>, je peux joindre les deux tables
et récupérer les identifiants apparents de la commande, par exemple <code>ORDER_NUMBER</code> = <code>1000</code>
et <code>LINE_NUMBER</code> = <code>1</code> et <code>SHIPMENT_NUMBER</code> = <code>1</code>.</p>
<p>Un <code>ORDER_NUMBER</code> possède ses contraintes de numérotation (telle plage pour tel type de <em>business</em> par exemple) mais l’<code>ORDER_HEADER_ID</code>, identifiant unique de l’enregistrement, est unique et peut valoir ce qu’il veut. En général c’est une valeur abstraite mais « compréhensible » par un humain, genre <code>175321</code>. Idem pour l’<code>ORDER_LINE_ID</code>, par exemple <code>321000</code>.</p>
<p>À première vue, <strong>doublonner les identifiants numériques et les identifiants visibles semble inutile</strong> et ne facilite pas le travail du développeur ; mais au contraire cela offre une souplesse complète, les identifiants numériques pouvant
être manipulés à volonté sans conséquence visible pour l’utilisateur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-1" id="rev-pnote-158-1">1</a>]</sup>. De plus, chacune des tables principales n’a ainsi qu’une seule colonne en clé primaire, ce qui simplifie bien des choses<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-2" id="rev-pnote-158-2">2</a>]</sup>.</p>
<p>Petit bonus également pour le développeur : avec un peu d’habitude d’une base précise, il sait qu’un <code>ORDER_HEADER_ID</code> tourne autour de <code>170-180000</code>, un <code>ORDER_LINE_ID</code> de <code>320000</code>, et les reconnaît au premier coup d’oeil.<br />De la même manière, il sait vite que la colonne <code>ORDER_TYPE_ID</code> des en-têtes de commande pointe vers <code>OE_ORDER_TYPES</code>, et que la valeur <code>74</code> correspond par exemple au type de commande « Petit électroménager » dans telle installation de tel revendeur d’électroménager.<br />Le seul inconvénient que je connaisse est que la mise en place sur différentes bases du même paramétrage (par exemple création d’un nouveau type de commande sur les bases de développement, recette et production) mène à des différences d’identifiants numériques (sauf coup de bol). Ce n’est pas censé être un problème si on programme proprement (ne jamais mettre ces identifiants « en dur » dans un programme), et si on rafraîchit suffisamment souvent ses bases de développement et recette<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-3" id="rev-pnote-158-3">3</a>]</sup>.</p>
<p>Donc au final un schéma très propre, forcément touffu vu le nombre de tables impliquées, qui a cependant la mauvaise habitude de devenir de plus en plus tordu avec le temps et les nouvelles fonctionnalités. La pire aberration que j’ai rencontrée provient de lots de données qui migrent de table en table suivant l’état du statut au sein du flux logistique. Il y a peut-être une raison profonde mais cela jure avec la cohérence du reste.</p>
<h3>SAP R/3</h3>
<p>Le modèle de données de R/3 est à la fois plus simple et plus cauchemardesque.</p>
<p>Comme dit dans <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i">un précédent billet</a>, R/3 (l’ERP « classique ») utilise surtout des tables dont les noms inspirés de l’allemand ont quatre lettres, du genre <code>MARA</code>, <code>VBAK</code>, <code>LIKP</code>, <code>T001</code>...</p>
<p>Dans ces tables il n’y a pas d’identifiant numérique comme sous Oracle. <strong>La clé primaire est fonctionnelle</strong>. Pour <code>VBAK</code> (les en-têtes de commande), cette clé est composée des champs <code>MANDT</code> (le mandant, qui en quelque sorte identifie la base de travail<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-4" id="rev-pnote-158-4">4</a>]</sup>) et de <code>VBELN</code>, le document commercial <em>visible par l’utilisateur</em> !</p>
<p>Évidemment, dans <code>VBAP</code>, correspondant aux postes (lignes de commandes), ce même <code>VBELN</code> sera répercuté pour identifier ce qui correspond à une commande donnée. Et la clé primaire de cette table des postes est un triplet <code>MANDT</code>, <code>VBELN</code>, <code>POSNR</code>.<br />De même, la table <code>TVAK</code> des types de commande contient la valeur de type directement
dans sa clé.</p>
<p>En conséquence, <strong>renommer un objet sous SAP revient à renommer sa clé primaire</strong> ! Ça ne se fait pas à la légère, sous peine de corrompre les données. Donc, sous SAP, on ne <strong>modifie jamais rien directement dans les tables</strong><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-5" id="rev-pnote-158-5">5</a>]</sup> ! Le système fait d’ailleurs de son mieux pour l’interdire au développeur, et il faut utiliser les fonctions, BAPIs, BADIs, IDOCs, <em>user exits</em>, programmes d’import... livrés avec le système.</p>
<p>Pire : la clé « fonctionnelle » utilisée ici n’est <strong>plus un moyen de vérifer l’unicité ou la destruction d’un enregistrement</strong>. Supposons une ligne de commande (clé : <code>VBELN</code>+<code>POSNR</code>) créée, puis détruite (pas logiquement, mais physiquement et totalement), puis récréée avec le même numéro de poste (ligne)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-6" id="rev-pnote-158-6">6</a>]</sup>. Un programme extérieur<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-7" id="rev-pnote-158-7">7</a>]</sup> ne peut savoir si une ligne qu’il a mémorisée (par sa clé <code>VBELN</code>+<code>POSNR</code>) est la même ou pas.<br />Sous Oracle, le <code>ORDER_LINE_ID</code> aurait totalement disparu, et un nouveau aurait été recréé, même si l’utilisateur a choisi de conserver les mêmes <code>LINE_NUMBER</code> et <code>SHIPMENT_NUMBER</code>.</p>
<p>Il y a plus vicieux. L’utilisateur verra à l’écran un document de vente numéroté <code>18500</code>, alors que la base stockera en réalité dans <code>VBELN</code> la chaîne <code>0000018500</code> (dix caractères). Forcer la taille de la chaîne a un intérêt en terme de classement (sans cela, <code>1869</code> serait entre <code>18500</code> et <code>18695</code>), mais pour le développeur c’est un petit cauchemar : chaque variable est susceptible de contenir la chaîne avec ou sans ses zéros initiaux et il faut convertir à gogo (sachant que le moindre appel de fonction en ABAP fait cinq lignes et qu’elles ne peuvent pas être imbriquées les unes dans les autres sur la même ligne comme dans la plupart des langages de programmation).</p>
<p>Encore plus drôle : les nouveaux modules, en premier lieu le CRM mais aussi des morceaux de R/3, ont décidé de prendre en compte les avancées du dernier quart du siècle dernier en matière de bases de données, et de passer aux identifiants numériques !<br />Mais dans une optique d’universalité (sans doute pour faciliter la fusion de bases SAP différentes), ces identifiants sont des <strong>GUID</strong> (<em>global identifier</em>), en hexadécimal, du genre de 447072A2FB800063000000000A1F352F. <br />Allez déboguer des programmes où la moitié des variables sont des identifiants de ce genre...<br />Le plus drôle c’est que ces GUID apparaissent parfois à l’utilisateur (abomination peut-être liée au paramétrage là où je travaille).</p>
<p>Enfin, pour compliquer la tâche, SAP interdisant tout accès à Oracle (la base, qui en général tourne derrière) et imposant ses propres outils de développement, une bonne partie des outils de contrôle d’Oracle sont inaccessibles. Adieu les bonnes grosses requêtes de contrôle du bon déroulement d’un programme qui impliquaient dix tables...<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#pnote-158-8" id="rev-pnote-158-8">8</a>]</sup></p>
<h3>Verdict</h3>
<p>Travailler avec Oracle avait ses bons côtés ; j’ai beaucoup de mal à apprécier SAP pour le développement. Autant SAP est en avance par son interface perfectible mais fonctionnelle, et l’effroyable panel de possibilités, autant Oracle permet au développeur de faire ce qu’il veut pour intervenir sur les données ou rajouter des programmes, sans lui mettre de bâtons dans les roues. Mais on demande rarement son avis au développeur lors du choix d’un ERP...</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p>Partie 5 : Schémas de données</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-1" id="pnote-158-1">1</a>] <em>Encore un niveau en dessous, Oracle identifie l’enregistrement sur le disque dur par un autre identifiant, le <code>ROWID</code>, qui suit le même principe, et est susceptible de modification à tout moment, en cas de réorganisation des données. L’utilisateur de la base de donneés (le développeur) n’a en général pas à se préoccuper de ce <code>ROWID</code>.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-2" id="pnote-158-2">2</a>] <em>Les tables de correspondance notamment peuvent avoir des clés composées, et rien n’interdit de rajouter des index à volonté sur les autres colonnes (au contraire).</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-3" id="pnote-158-3">3</a>] <em>Et là on s’aperçoit que c’est une opération lourde ; je travaille actuellement avec une base de développement vieille d’un an au bas mot, et mon client précédent attendait souvent six mois pour rafraîchir son Oracle.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-4" id="pnote-158-4">4</a>] <em>Je simplifie. Un mandant indique une </em>vision du monde<em>, et on peut ainsi collectioner les mandants dans une même base de données SAP : mandant de paramétrage, mandant de développement ne comportant que des programmes, mandant de test comportant des données. Lourd mais pratique. Chaque clé primaire de table commence par le mandant.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-5" id="pnote-158-5">5</a>] <em>Exception pour les tables ajoutées par l’utilisateur que SAP à proprement parler ignore.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-6" id="pnote-158-6">6</a>] <em>Je suis d’accord que ça ne devrait pas pouvoir se faire, mais l’utilisateur peut le faire, et il le fera.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-7" id="pnote-158-7">7</a>] <em>Comme celui que je suis en train d’écrire au moment où je rédige ceci.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#rev-pnote-158-8" id="pnote-158-8">8</a>] <em>De plus se pose le problème des droits d’accès à la base, forcément restreints dans ce contexte...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/158
La Guerre des ERP : SAP vs Oracle Applications (4) : Philosophie opposées
urn:md5:4d36d1d9d4ea7ec1063602c848f554ee
2006-07-04T12:49:00+00:00
2010-10-31T21:19:42+00:00
Christophe
Informatique lourde
abomination
analogie
base de données
complexité
dommage
développement
ergonomie
ERP
incohérence
informatique
Mac
Oracle
organisation
panurgisme
prise de tête
SAP
SQL
sécurité
travail
économie
évolution
<p>« SAP conçoit un Mac, Oracle assemble un PC » : de l’ABAP et du PL/SQL, et des serveurs.</p> <h3>Philosophie</h3>
<p>La différence de philosophie entre SAP et Oracle Applications est très bien résumée par <a href="http://blog1.lemondeinformatique.fr/ingenierie_logicielle/2006/05/sap_construit_u.html">cette remarque de Ray Wang, reprise par Olivier Rafal</a> : <strong>SAP conçoit un Mac, Oracle assemble un PC</strong>.<br />
Autrement dit : SAP veut tout faire de A à Z (interfaces, base, administration...) et verrouille ses interfaces, alors qu’Oracle procède plutôt par agrégat de briques interconnectées, disponibles seules, dont l’utilisateur peut faire un peu ce qu’il veut.</p>
<h3>La base</h3>
<p>Oracle vend des bases de données avant tout, il a donc bâti son ERP autour de cette base, en exploitant ses spécificités (l’ERP a cependant toujours une génération de retard sur la base et les outils annexes, par conservatisme et par nécessité de migrer et certifier une telle masse de code).<br />Les tables sont directement accessibles depuis le code source du programme en PL/SQL.</p>
<p>SAP considère que la base de données peut être n’importe quoi : Oracle, SQL Server, DB2, <del>MySQL</del>... <del>Oui, même MySQL (qui existe sous la forme de <a href="http://www.mysql.com/products/maxdb/" hreflang="en">MaxDB</a> dans le monde SAP)</del> (<strong>Correction</strong> : <em>En fait, MaxDB n’a rien à voir avec la base MySQL. Ça semblait gros quand même...)</em>. SAP rajoute donc sa couche d’administration de la base, impose de passer par une version maison appauvrie du SQL pour interroger la base, et interdit toute modification sous-jacente au niveau SQL.<br />Ironie de l’histoire : l’essentiel des installations de SAP tourne cependant sous Oracle (par sécurité et panurgisme), et rapportent donc de l’argent au concurrent principal...</p>
<h3>Langage : SAP et l’ABAP</h3>
<p>SAP est basé sur un langage spécifique, utilisé nulle part ailleurs, qui fleure bon le néolithique de l’informatique, à savoir l’<strong>ABAP</strong>. Il paraît que cela ressemble au Cobol avec quelques notions simplettes de SQL.</p>
<p>Il est basé sur les notions de « structure » (un enregistrement de base de données en fait, par exemple <em>une</em> ligne de commande), que l’on manipule dans des <em>tables internes</em>, et que l’on synchronise à l’occasion avec les vraies tables de la base de données. Les jointures sont lourdes, et récupérer des données consiste souvent à récupérer un jeu de lignes, le parcourir, et réeffectuer des requêtes pour chaque ligne.</p>
<p>Le langage a tout ce qu’il faut pour être qualifié de langage de programmation, mais il manque beaucoup de « sucre syntaxique » apparu depuis les années 1990. Comme je l’ai déjà évoqué, l’environnement de développement est un éditeur imposé, intégré, basique et sans fioriture qui connaît à peine la coloration syntaxique des commentaires. Programmer en ABAP me fait l’effet de programmer avec un boulet aux pieds.</p>
<h3>Langage : Oracle et PL/SQL</h3>
<p>Oracle Applications (l’ERP) est basé sur le <strong>PL/SQL</strong>, le langage intégré à Oracle (la base). On peut aussi utiliser du Java, mais ce n’est pas si courant, du moins sur les modules les moins récents.</p>
<p>Le PL/SQL a l’avantage d’être un véritable langage, sans doute pas aussi souple et riche que du .Net ou du Ruby, mais plutôt un mariage heureux entre le Pascal et le SQL, qui évolue peu à peu et, je pense, dans la bonne direction, sans trop de fioritures inutiles. Un avantage majeur est que l’on interagit directement avec les données sans couche intermédiaire qui freine ou impose ses limites ; on profite de <em>toutes</em> les fonctionnalités d’Oracle (la base)<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees#pnote-141-1" id="rev-pnote-141-1">1</a>]</sup>. Les « tables internes » ne servent que dans certains cas précis d’optimisation (mise à jour en masse), puisque la base optimise déjà le commun des requêtes toute seule. La création de « requêtes de feu » de plusieurs pages n’est pas un problème ; le principe est de sous-traiter au maximum à la base de données puisqu’on est très proche d’elle.</p>
<p>Le PL/SQL est conçu pour manipuler des données mais est assez « généraliste », pas réduit à ne travailler qu’avec l’ERP. Exécuter du code d’un autre langage (hors de la base cependant, donc au niveau du système d’exploitation) n’est pas un problème, c’est prévu.</p>
<h3>Serveurs d’application et autres monstres</h3>
<p>Oracle Application inclut un serveur d’application maison, genre d’objet que je connais très mal par ailleurs. SAP mitonne son équivalent, <a href="http://de.wikipedia.org/wiki/SAP_NetWeaver" hreflang="de">Netweaver</a>, mais je ne connais pas d’environnement où Netweaver soit utilisé indépendamment de SAP.</p>
<p>À côté de tout ça, chacun a son essaim d’outils annexes, modules optionnels, portails webs, etc.</p>
<h3>Sous le capot</h3>
<p>Le modèle de données n’a <em>rien</em> à voir, et de ceci que je vais parler <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">la prochaine fois</a>…</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p>Partie 4 : Philosophies opposées</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees#rev-pnote-141-1" id="pnote-141-1">1</a>] <em>Et vu le prix de la licence, c’est bien la moindre des choses...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/141
La Guerre des ERP : SAP vs Oracle Applications (3) : Des interfaces très particulières
urn:md5:ffb69bfbd90f13d2583d6312218235a4
2006-07-03T10:50:00+00:00
2010-10-31T21:15:53+00:00
Christophe
Informatique lourde
analogie
argent
base de données
complexité
dommage
dysfonctionnement
ergonomie
ERP
incohérence
informatique
Oracle
organisation
prise de tête
SAP
SSII
travail
économie
évolution
<p>Caractéristiques historiques et techniques des interfaces de SAP et Oracle.</p> <p>Les deux produits se basent au final sur des <strong>interfaces (apparence et technique) totalement propriétaires et utilisées nulle part ailleurs</strong> (sinon par leurs autres produits).</p>
<p>Qu’on ne s’imagine pas que cette indépendance permet de s’affranchir du système d’exploitation sous-jacent, je n’ai jamais vu en pratique tourner ces produits ailleurs que sous Windows. Je me trompe peut-être, les deux interfaces ont migré au moins partiellement vers Java, avec la persective théorique d’être utilisable n’importe où, mais SAP notamment est connu pour être très proche de Microsoft. Le projet <a href="http://www.lemondeinformatique.fr/actualites/lire-sapphire-06-paris-muse-devra-rendre-l-utilisateur-heureux-19651.html">Duet</a> est d’ailleurs destiné à lier de plus en plus SAP et Office. L’évolution sous forme d’applis web pourrait rendre le problème caduc, au moins pour certains modules, ou certains écrans.</p>
<p>La cause de ces interfaces bizarres serait plutôt qu’<strong>à force de migrer de système en système</strong> au cours de l’histoire de l’informatique (du listing papier de 1972 au terminal texte de 1985 au client-serveur de 1990 au client lourd de 2000 au futur <em>full web</em> de 200?), avec l’impératif de maintenir le maximum de compatibilité (pour limiter des coûts de migration toujours astronomiques<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres#pnote-160-1" id="rev-pnote-160-1">1</a>]</sup>), chacun des deux systèmes s’est « enfermé » dans son propre univers. Le souci de l’interfaçage avec le reste des outils professionnels (notamment Office) s’accroît avec le temps, mais on ne cherche pas des applications intégrées parfaitement au système d’exploitation en apparence comme en comportement.</p>
<p>De plus, SAP et Oracle Applications se <strong>vendent sur leurs fonctionnalités</strong> (et leur capacité à faire le maximum de choses avec le minimum de monde, du moins en théorie), pas sur leur ergonomie ou leur <em>design</em> (un commercial m’a confié présenter Oracle Applications sur un écran au client le plus tard possible).</p>
<p>On obtient donc l’inverse total et simultané des philosophies à la Microsoft (en mettre plein la vue et insister sur la facilité d’utilisation apparente), à la Apple (interface nette et cohérente avant tout), ou à la Unix (austère et élitiste mais propre).</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p>Partie 3 : Des interfaces très particulières</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres#rev-pnote-160-1" id="pnote-160-1">1</a>] <em>En réécriture ou adaptation de programmes spécifiques au client, revalidation de tous les flux métier, découverte de nouveaux bugs, formation, temps de migration technique des données, nouvelles normes de programmation... Une migration de version de SAP ou Oracle prend facilement plusieurs mois.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/160
La Guerre des ERP : SAP vs Oracle Applications (2) : Deux gros patchworks
urn:md5:25367ff598fa2f1cbcc9880db3e1df82
2006-06-30T13:42:00+00:00
2010-10-31T21:13:59+00:00
Christophe
Informatique lourde
argent
base de données
complexité
CRM
dommage
développement
ergonomie
ERP
incohérence
informatique
organisation
prise de tête
SSII
travail
économie
évolution
<p>Les deux logiciels sont en réalité un assemblage de plusieurs modules développés à part...</p> <p>Les deux logiciels sont en réalité un <strong>assemblage de plusieurs modules développés à part</strong> les uns des autres, parfois pour des commandes précises de client, parfois rachetés à d’autres entreprises, reliés à grand-peine et intégrés au chausse-pied.</p>
<p>Les <strong>modules financiers</strong> sont les plus anciens<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-1" id="rev-pnote-159-1">1</a>]</sup>, et vus leur complexité et leur importance<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-2" id="rev-pnote-159-2">2</a>]</sup>, ils n’ont jamais été totalement réécrits. <br />Du point de vue de l’organisation des données, ils ont le mérite d’une architecture simple et compréhensible. À l’utilisation, ils me sont à peu près incompréhensibles (mais je ne suis ni comptable ni formé sur ces modules).</p>
<p>À l’inverse les modules de <a href="http://fr.wikipedia.org/wiki/Gestion_de_la_relation_client">CRM</a><sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-3" id="rev-pnote-159-3">3</a>]</sup>, à la mode depuis quelques années, bénéficient de tous les derniers gadgets d’interface <em>ad nauseam</em> : arborescences, tableaux intégrés genre Excel et pléthore d’onglets, sous-onglets, sous-sous-onglets, fenêtres imbriquées, paramétrage plus-flexible-tu-meurs.... <br />En général ces innovations sont contrebalancées par la perte des avantages de l’interface « ancien style » (facilité de recherche des champs techniques, copier-coller facile, double-clic dans SAP...) et un degré de complexité de plus dans la programmation<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#pnote-159-4" id="rev-pnote-159-4">4</a>]</sup>.</p>
<p>Oracle ayant racheté plusieurs de ses challengers (l’ERP <a href="http://en.wikipedia.org/wiki/Peoplesoft" hreflang="en">Peoplesoft, lui-même acquéreur auparavant de JDEdwards</a>, ou le CRM <a href="http://en.wikipedia.org/wiki/Siebel_Systems" hreflang="en">Siebel</a>), les incohérences de logique et d’interface ne sont pas terminées dans l’unification de tout ce beau monde (projet <a href="http://en.wikipedia.org/wiki/Fusion_Software" hreflang="en">Fusion</a> d’Oracle). Ce qui était au départ une base de données qui faisait tourner des programmes PL/SQL se dirige vers un mille-feuilles de PL/Java/<a href="http://fr.wikipedia.org/wiki/XML">XML</a>/<a href="http://fr.wikipedia.org/wiki/Service_Oriented_Architecture">SOA</a>/<a href="http://en.wikipedia.org/wiki/BPEL" hreflang="en">BPEL</a> intégrant l’ancienne suite d’Oracle, celle de Peoplesoft, etc.<br />SAP pour sa part cherche plus à tout redévelopper lui-même, mais fait évoluer son produit radicalement. R/3 (l’ERP « classique ») a peu évolué pendant que la partie CRM évoluait à fond, la différence est flagrante.</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses">Partie 1 : Des interfaces hideuses</a></p>
<p>Partie 2 : Deux gros patchworks</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-1" id="pnote-159-1">1</a>] <em>Rappelez-vous : ce sont les comptables qui ont payé le développement de l’informatique (avec les militaires).</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-2" id="pnote-159-2">2</a>] <em>Un bon consultant dirait « criticité ».</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-3" id="pnote-159-3">3</a>] <em>Gestion de la Relation Client, en pseudo-français ; rappelons que cela couvre aussi bien la télé- que l’après-vente.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#rev-pnote-159-4" id="pnote-159-4">4</a>] <em>Sous SAP : La programmation à l’ancienne genre ABAP/Cobol avait le mérite de la clarté besogneuse. Tenter d’y rajouter des notions de programmation objet relève du mariage contre-nature, et la difficulté tient autant à l’environnement de développement lourdingue qu’à l’évolution du langage. Sous Oracle, la transition me semble plus facile, peut-être parce qu’on reste finalement au sein de triggers, programmes, packages PL/SQL en rajoutant juste quelques types d’objets différents ; je n’ai pas touché au Java.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/159
La Guerre des ERP : SAP vs Oracle Applications (1) : Des interfaces hideuses
urn:md5:eec056667d95c5a35b8de23a72af68d0
2006-06-28T12:58:00+00:00
2010-10-31T18:25:46+00:00
Christophe
Informatique lourde
abomination
argent
base de données
complexité
CRM
dommage
défense du français
ergonomie
ERP
expertise
incohérence
informatique
Oracle
organisation
prise de tête
SAP
SSII
travail
économie
<p>Les deux poids lourds mondiaux des logiciels de gestion d’entreprise intégrés partagent les caractéristiques communes de lourdeur certaine et d’une ergonomie plus que perfectible.</p> <p>Les deux leaders sur le marché de l’ERP sont <strong>SAP</strong>, n°1 incontesté <em>made in Germany</em>, lourd et ruineux, et l’américain <strong>Oracle Applications</strong>, un cran en-dessous en terme de marché, chiffre d’affaire et fonctionnalités, mais qui achète à tour de bras pour rattraper son retard. Les autres ne comptent pas, ont un marché de niche, ciblent les PME, ou ont été rachetés.</p>
<p><a href="http://de.wikipedia.org/wiki/SAP" hreflang="de">SAP existe depuis plus longtemps que moi</a>, tandis qu’<a href="http://en.wikipedia.org/wiki/Oracle_Corporation">Oracle</a> a longtemps basé sa réputation sur <a href="http://en.wikipedia.org/wiki/Oracle_database" hreflang="en">sa base de données</a> qui, malgré bien des défauts, est devenue <em>la</em> référence dans le domaine. Si je parle d’Oracle ici, j’entends <em>Oracle Applications</em>, pas la base de données<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses#pnote-140-1" id="rev-pnote-140-1">1</a>]</sup>.</p>
<p>Je connais principalement Oracle Applications 11.0 et 11i, et, avec beaucoup moins d’expérience SAP R/3 et un peu le SAP CRM. Ce qui suit peut être dépendant du paramétrage des bases que j’ai rencontrées.</p>
<p>En passant d’Oracle à SAP, on s’aperçoit que la philosophie des deux produits est totalement opposée, même s’ils tentent de répondre aux mêmes besoins (gérer une entreprise de bonne taille de bout en bout) avec les mêmes moyens (beaucoup de MHz, de Go et de frais en licences et <em>consulting</em>).</p>
<h3>C’est hideux</h3>
<p>L’<strong>interface</strong> est aussi hideuse et anti-ergonomique chez l’un que chez l’autre, mais d’une manière totalement différente. En fait, ni l’une ni l’autre n’a vraiment évolué depuis au bas mot 1998.</p>
<ul>
<li><strong>Oracle semble avoir dix ans de retard sur le développement des interfaces graphiques à la Mac ou Windows</strong>. L’entreprise n’est pas connue pour son souci de l’ergonomie de toute manière.<br /> Depuis environ l’an 2000, l’utilisation de Java pour <em>toutes</em> les interfaces graphiques (de l’utilisateur de base à l’administrateur de la base) se traduit par une lourdeur certaine (plus supportable sur les machines actuelles), et un manque de cohérence avec les applications habituelles dans le monde Windows.<br />L’essentiel de l’ERP est resté au paradigme des <strong>fenêtres</strong> qui s’enchaînent, se chevauchent... en mode MDI (des fenêtres dans la fenêtre principale, très à la mode sous Windows 3.1). <br />Pour basculer d’une fenêtre à une autre (par exemple avoir des informations sur un article depuis l’écran d’une commande), le plus simple est encore de noter sur un papier ou dans le presse-papier ce qu’on cherche, de refermer toutes les fenêtres du module fonctionnel (!), et d’aller dans l’autre module...<br />Le passage d’une partie de l’interface au mode web est déjà effectif mais son ergonomie est pour le moins perfectible. Oracle a l’intention d’évoluer vers un modèle mixte moitié « classique » (serveurs en entreprise, licenses...) moitié « à la demande», <em>ie</em> hébergé, par le web (un peu comme <a href="http://www.salesforce.com/" hreflang="en">Salesforce</a>).</li>
</ul>
<ul>
<li><strong>SAP affiche ouvertement ses origines sur gros systèmes</strong> à une époque où l’idée d’un ordinateur sur chaque bureau relevait de la science-fiction sinon de l’utopie. Les « listes » brutes existent encore, avec les tableaux dessinés à coup de caractères de contrôle, qui autrefois s’affichaient sans doute sur un bel écran de terminal noir et vert (sinon sur du listing papier).<br />Le flux se base sur une succession d’écrans qui occupent toute la fenêtre, comme une page web, et pas comme des fenêtres séparées. À l’usage, ce n’est pas si mal.<br />Depuis le texte a été enrobé, d’absconses icônes sont apparues, quelques gadgets sont sympathiques (notamment le double-clic pour accéder à une autre information, très pratique... quand il est là), mais l’interface ferait hurler n’importe quel ergonome. Par exemple certains onglets ont l’apparence de boutons d’actions (les onglets dignes de ce nom existent aussi) : <img src="https://www.coindeweb.net/blogeclectique/images/erp/sap_commande_client.jpg" alt="Commande client SAP" style="display:block; margin:0 auto;" /><br /></li>
</ul>
<h3>Des limites énervantes partout</h3>
<p>Les limites abondent chez l’un et l’autre, qui auraient apparemment pu être levées avec un peu d’effort (mais elles sont là depuis des lustres). Quelques exemples graves ou minimes, comme ils me viennent :</p>
<ul>
<li>Le <strong>menu</strong> principal d’Oracle est du texte sous forme de menu (moche mais fonctionnel), restreint à la « responsabilité » (en gros, un module fonctionnel plus ou moins personnalisé) en cours. Les raccourcis qu’on peut y placer sont limités à dix (10), numérotés de 0 à 9. Supprimer l’un d’entre eux revient à renuméroter les autres. <br /><img src="https://www.coindeweb.net/blogeclectique/images/erp/oracle_appli_ecran_princ.jpg" alt="Écran principal Oracle" style="display:block; margin:0 auto;" /><br />Avoir plusieurs sessions simultanées d’Oracle Applications est possible en se reconnectant plusieurs fois.<br />À l’inverse, SAP offre un menu avec tous les écrans autorisés à l’utilisateur, plus les « codes transactions » (taper <code>VA03</code> pour lire les commandes, <code>VF01</code> pour créer une facture...), et la gestion simultanée de plusieurs écrans (« modes ») est facilitée.</li>
</ul>
<ul>
<li>Les <strong>raccourcis clavier</strong> sous Oracle sont assez pauvres ; sous SAP l’usage des touches de fonction est massif mais le raccourci pour une même fonctionnalité change suivant l’écran.</li>
</ul>
<ul>
<li>Les raccourcis n’ont souvent pas grand-chose en commun avec ceux répandus sous Windows ou ailleurs.</li>
</ul>
<ul>
<li>SAP prend un malin plaisir à rendre difficile le <strong>pointage de souris</strong>. Les boutons de boîtes de dialogue sont petits, les boutons par défaut ne sont pas plus grands que les autres, et, cerise sur le gâteau, une grosse icône SAP remplace les habituels trois petits boutons Réduire/Agrandir/Fermer de toute fenêtre de Windows, lesdits boutons étant décalés plus à gauche, en réduction, pour bien être sûr de mal viser. (Voir copie d’écran ci-dessous.)<br />Oracle n’a pas ce défaut, les boutons sont moches mais décemment dimensionnés. Par contre, inutile de chercher à agrandir ou réduire une fenêtre pour avoir plus de colonnes/lignes à l’écran, ce n’est pas prévu.</li>
</ul>
<ul>
<li>Nombre des écrans d’Oracle sont <strong>accessibles en écriture comme en lecture</strong>, pas de juste milieu (apparemment et simplement en tout cas). Dans le cadre de la restriction généralisée et paranoïaque des accès (<a href="http://en.wikipedia.org/wiki/Sarbanes-Oxley" hreflang="en">Sarbanes-Oxley</a> et <em>tutti quanti</em>), c’est très gênant.<br />SAP a généralisé (au moins dans les vieux modules) le principe de transactions (entrées de menu) différentes selon qu’on veut créer, modifier, ou juste voir, une commande, un article...</li>
</ul>
<ul>
<li>La <strong>traduction française</strong> est désastreuse sur SAP (je connais Oracle surtout en version originale). La grammaire est correcte, mais je comprends souvent mieux en version allemande ou anglaise, un comble ! Entre autres détails : en français, on dit « <em>Annuler</em> » pour sortir sans rien faire d’une boîte de dialogue (comme en anglais : “<em>Dismiss</em>” ou “<em>Cancel</em>”), pas « <em>Interrompre</em> » (»<em>Abbrechen</em>« en allemand) !<br />Que des morceaux d’allemand surnagent par-ci par-là dans les modules techniques, ou que des morceaux de phrases aient sauté de-ci de-là, est paradoxalement moins grave.</li>
</ul>
<ul>
<li>SAP abuse des <strong>abréviations</strong> dans les noms de colonne ou de champ, jusqu’à l’absurde (« C. » comme nom de colonne !). Y compris dans les infobulles, sisi. <br />Oracle connaît peu les infobulles mais en général remplit moins ses écrans.</li>
</ul>
<ul>
<li>L’<strong>aide</strong> en ligne des deux concurrents pèche de la même manière : correcte dans un sens descriptif, insuffisante comme base de travail pour chercher comment retrouver ou paramétrer tel ou tel objet (il faut reconnaître que l’exhaustivité serait titanesque à obtenir).</li>
</ul>
<ul>
<li>(SAP) Pour imprimer une facture, il ne faut surtout pas cliquer sur le symbole vert qui signifie « <em>OK</em> » dans la boîte de dialogue après un clic sur «<em> Éditer</em> », mais sur l’icône de l’imprimante. Le bouton vert ne <em>sert à rien</em> !<img src="https://www.coindeweb.net/blogeclectique/images/erp/SAP-facture-editer.png" alt="Édition de facture sous SAP" style="display:block; margin:0 auto;" /></li>
</ul>
<ul>
<li>Pour le développeur : dans l’éditeur de code ABAP (imposé, oubliez <a href="http://www.eclipse.org/" hreflang="en">Eclipse</a>, <a href="http://www.vim.org/" hreflang="en">vi</a>, <a href="http://www.nedit.org/" hreflang="en">nedit</a>...), les commentaires sont en bleu... s’ils sont déclarés avec une étoile sur le premier caractère de la ligne. Si le commentaire se trouve sur la même ligne que du code, séparé par un <code>"</code>, ils ne bénéficient pas de la coloration syntaxique !<br />On prend donc vite l’habitude d’aérer le code ABAP (déjà très verbeux) par des commentaires seuls sur leur ligne. Ce n’est pas si gênant, car de toute façon l’éditeur ne supporte pas les lignes de plus de 72 caractères (le standard en 1983) !<img src="https://www.coindeweb.net/blogeclectique/images/erp/sap_editeur_commentaires.jpg" alt="Éditeur ABAP" style="display:block; margin:0 auto;" /></li>
</ul>
<ul>
<li>SmartForms, un module de SAP de développement de formulaire<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses#pnote-140-2" id="rev-pnote-140-2">2</a>]</sup> possède des fenêtres avec ascenseur au sein d’autres fenêtres avec ascenseur ! Une monstruosité ergonomique que je n’ai jamais rencontré qu’au sein de pages web qui n’avaient pas le choix de faire autrement. Smartforms n’est pourtant pas un vieux clou traîné depuis vingt ans, mais un outil très récent de SAP - ce sont souvent les pires (en complexité inutile surtout).</li>
</ul>
<ul>
<li>Smartforms (encore lui) ne gère pas les différentes versions d’un objet, alors que la notion de gestion de versions est intégrée à l’éditeur des programmes ABAP depuis des années. Au passage, cela rend cauchemardesque la simple annulation de modifications... Chaque outil de développement a été ajouté sans grand respect pour la cohérence avec les outils précédents.</li>
</ul>
<ul>
<li>Etc. etc. <br />Ce ne sont que des détails, mais mis bout à bout ils me tapent sur les nerfs. Ils résument bien la philosophie des produits et la manière dont il sont conçus et vendus.</li>
</ul>
<h3>Quelques gadgets sympas</h3>
<p>C’est surtout SAP qui les possède (<strong>Mise à jour de 2008</strong>: <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2008/10/04/194-les-bonnes-idees-de-sap">voir aussi ce billet</a> ) :</p>
<ul>
<li>le double-clic déjà évoqué pour avoir plus d’information sur tel ou tel objet (mais il n’est pas toujours là) ;</li>
</ul>
<ul>
<li>les <em>matchcodes</em>, des petits sous-écrans qui permettent de faire des sélections de plages de valeurs un peu tordues (du genre « prendre les codes articles 1023 à 8123 sauf les 4526 à 5622, et pas le 8001 »), et bien intégrés au langage ABAP sous-jacent ; Oracle ne connaît que les plages de valeur simples ;</li>
</ul>
<ul>
<li>SAP mémorise les dernières valeurs entrées dans un champ ; si vous manipulez les dix mêmes articles/commandes/programmes, ils sont automatiquement proposés dans un menu déroulant à chaque saisie ;</li>
</ul>
<ul>
<li>Hélas, si l’interface de SAP est supportable après un peu d’apprentissage par un utilisateur, <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">celle réservée au développeur « sous le capot » fait nettement plus peur</a>…</li>
</ul>
<p>Partie 1 : Des interfaces hideuses</p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/06/30/177-la-guerre-des-erp-sap-vs-oracle-applications-2-deux-gros-patchworks">Partie 2 : Deux gros patchworks</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/03/178-la-guerre-des-erp-sap-vs-oracle-applications-3-des-interfaces-tres-particulieres">Partie 3 : Des interfaces très particulières</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/04/176-la-guerre-des-erp-sap-vs-oracle-applications-4-philosophie-opposees">Partie 4 : Philosophies opposées</a></p>
<p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/07/05/175-la-guerre-des-erp-sap-vs-oracle-applications-5-schemas-de-donnees">Partie 5 : Schémas de données</a></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses#rev-pnote-140-1" id="pnote-140-1">1</a>] <em>De toute façon, SAP utilise en général Oracle (la base) en arrière-plan...</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses#rev-pnote-140-2" id="pnote-140-2">2</a>] <em>Dans le sens « bout de papier à imprimer » ; pour compliquer les choses, les terminologies de « rapport » et « formulaire » sont à peu près opposées entre les deux concurrents...</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/28/156-la-guerre-des-erp-sap-vs-oracle-applications-1-des-interfaces-hideuses#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/140
Se faire siffler comme un domestique par son téléphone
urn:md5:bc096a634a1c55a6c453ab24f8070fc1
2006-06-18T17:35:00+00:00
2010-10-31T11:10:32+00:00
Christophe
Il faut bien manger
communication
organisation
psychologie
travail
économie de l’attention
<p>Téléphone briseur d’attention et civilisation du « répond tout de suite ».</p> <p>Sacha Guitry, dit-on, n’avait pas de téléphone car il détestait « être sifflé comme un domestique. » De nos jours rares sont les gens suffisamment riches au point d’entretenir un majordome qui se laisserait héler comme un chien, mais la référence est d’autant plus juste. Le téléphone, même fixe, n’est plus seulement l’outil de communication si pratique d’autrefois, mais le véritable maître de bien des gens, surtout en milieu professionnel.</p>
<p>Combien de mes collègues lâchent tout de ce qu’ils sont en train de faire, brisant un état de concentration souvent difficile à obtenir, pour bondir sur le dissonant outil, comme si l’appelant s’était physiquement déplacé et assis sur le clavier ? Alors que s’il s’était pointé dans le bureau, on aurait au moins pu faire comprendre à l’importun qu’il allait devoir attendre son tour une minute. L’appelant téléphonique ne peut même pas voir si il dérange ou pas ; il n’existe pas de touche « rappelez dans une minute ».</p>
<p>Pire : bien des fois une « réunion », informelle sur le coin de bureau du collègue, mais importante, se brise sur un coup de fil d’une tierce personne installée quelques cloisons plus loin. Pas trop de mal quand l’interruption est de dix secondes, le temps de dire « je te rappelle » (en le pensant ou non), mais une catastrophe quand la réunion de travail technique se suspend une minute entière, puis deux, trois...</p>
<p>Des solutions :</p>
<ul>
<li>Convoquer le collègue en réunion formelle, avec échange de mails, négociation de créneau, réservation de salle (sans téléphone) et <em>tutti quanti</em>. Pas flexible : mon métier réclame souvent des discussions techniques qui peuvent durer longtemps, mais imprévisibles le quart d’heure précédent.<br />Pire : mon client actuel ne me permet pas de mettre en place de manière pratique ce système : pas de salle de réunion dans le bâtiment, ordinateurs non portables...</li>
</ul>
<ul>
<li>En arrivant au bureau du collègue, ou quand il arrive au mien, <strong>décrocher le téléphone</strong>. Nous sommes en réunion, pas d’interruption. Ce qui passe par téléphone peut passer par mail ; ce qui est vraiment urgent (niveau « on lâche tout et on résout ce problème sur le champ ») peut bien demander un déplacement physique du demandeur.</li>
</ul>
<ul>
<li><strong>Me lever et retourner à mon bureau</strong> dès que l’interruption semble devoir s’éterniser. Mais à mon détriment, dans ce cas, je n’ai pas obtenu ou transmis les informations que je voulais échanger.</li>
</ul>
<ul>
<li><strong>Appeler moi-même</strong> la personne avec qui je veux discuter, et bloquer ainsi sa ligne, même si elle est physiquement à deux bureaux de moi. Si nous sommes à distance, j’ai encore moins de scrupules et d’ailleurs pas le choix.</li>
</ul>
<p>Il m’arrive évidemment de voir le phénomène <strong>déteindre sur moi</strong> ; j’ai interrompu des discussions sérieuses avec le gourou d’à-côté parce que l’ignoble objet se mettait à me vriller les oreilles, pour une vétille le plus souvent. La pression sociale pour répondre inconditionnellement au téléphone est telle que j’y obéis aussi. En tant que prestataire chez un client, c’est encore pire...</p>
<p>Là où je sévis, je vois rarement des mails me posant des questions ou répondant à d’autres en attente ; la règle semble être la <strong>communication orale et immédiate</strong>, même pour le non-urgent. Est-ce parce que les gens ont besoin de lien social par oral, je ne sais, le mail me semble pourtant si pratique comme moyen de communication asynchrone et non briseur de concentration.</p>
<p>L’ultime abomination est le <strong>« rappel automatique »</strong> : dès que je pose le combiné, il se remet à beugler. Les appels téléphoniques commencent donc en quelque sorte à s’empiler, comme des mails. Impossible de prendre des notes sur le coup de fil précédent, rédiger un mail... bref, changement de contexte forcé. Je ne suis pas <em>forcé</em> de répondre, je le sais, mais on me le reprocherait... Et pour <em>ma</em> productivité, c’est effroyable.<br />Quant à celle des collègues les plus demandés, je n’ose y penser. Ils travaillent quand les besoins les envoient à un autre bureau, où ils sont injoignables, et moi, petit nouveau dans le service, joue le rôle de secrétaire à prendre les appels.</p>
<p>Qui a écrit que la <strong>denrée la plus rare de notre civilisation était l’<em>attention</em></strong> ? Et que je vais de voir défendre la mienne (donc ma concentration), et celle que m’accordent les autres, quitte à briser <em>leur</em> concentration ?</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/06/18/158-se-faire-siffler-comme-un-domestique-par-son-telephone#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/143
Les joies de l’ERP et du CRM (III)
urn:md5:7a2776e3fbd62d5c93d7c149b8ad70fc
2006-03-14T10:37:00+00:00
2010-10-26T20:04:17+00:00
Christophe
Informatique lourde
base de données
complexité
développement
ERP
expertise
informatique
intelligence artificielle
logistique
microéconomie
Oracle
organisation
paradoxe
perfectionnisme
perspective
prise de tête
précision
SAP
SSII
travail
valeur
économie
<p>Suite des maux de tête liés au fonctionnement normal d’une entreprise et de son informatique.</p> <p><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii">Nous avons vu le genre de céphalée que peut représenter une simple commande quand on a plusieurs intermédiaires et prestataires impliqués</a>.</p>
<p>Avec un peu d’aspirine, tous ces concepts finissent <strong>modélisés</strong> sous forme de <strong>tables</strong> informatiques dans une grosse base de données SQL. Les ERP fournissent d’ailleurs la solution clés en main, dont la compréhension est à peu près aussi longue et pénible que tout recréer soi-même (au moins est-ce débogué).</p>
<p>Il faut ensuite se poser la question de remplir les données. Si on agit au fil de l’eau (l’administration des ventes ou un télévendeur remplit tout sur le champ), on court le risque de voir des <strong>doublons</strong> dans son fichier client. Dans certaines branches on a le luxe de recevoir une <strong>liste de ses clients finaux</strong>, soigneusement numérotés, avec leurs adresses, de la part du donneur d’ordres ou d’un intermédiaire financier ou technique.</p>
<p>L’<strong>erreur est de croire que l’on peut intégrer aveuglément cette liste</strong> extérieure dans sa base de clients. Les adresses notamment doivent éveiller la plus grande méfiance<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#pnote-109-1" id="rev-pnote-109-1">1</a>]</sup>.</p>
<p>Si la liste est propre, elle comprendra deux ou trois champs d’adresse séparés des codes postaux et des noms de ville.
<br />Si elle ne l’est pas (par exemple si elle provient d’une certaine multinationale que je ne citerai pas<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#pnote-109-2" id="rev-pnote-109-2">2</a>]</sup>), il faudra quasiment développer une <strong>intelligence artificielle</strong> capable de différencier un code postal d’un code TVA dans le magma informe que ces champs d’adresse seront devenus. Il est en général plus efficace de laisser une secrétaire revoir <strong>manuellement</strong> ces adresses. <br />S’il y en a dix mille, couvrant cinquante pays dans le monde, la tâche devient « intéressante » dans le sens démoniaque du terme.<br />Il existe des logiciels interfacés avec les bases de données de la Poste et de ses équivalents étrangers, pour reformater automatiquement ces adresses. J’ignore leur prix, il doit être aussi indécent que leur utilité est grande.</p>
<p>Pour corser la chose, cette liste ne comprend pas uniquement les clients mais aussi leurs premières commandes<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#pnote-109-3" id="rev-pnote-109-3">3</a>]</sup>, et de gros problèmes de <strong>conversion de jeux de caractères</strong> entre l’Excel en Unicode et l’Oracle en Latin-9<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#pnote-109-4" id="rev-pnote-109-4">4</a>]</sup>.</p>
<p>Reprenons notre commande. Elle peut se réduire à une ligne d’un article avec une quantité, un prix. Que ce soit 1 ampoule à 0,5 € ou 200 palettes de téléphones portables à 1000 € pièce, la complexité informatique est la même. Elle
peut donc sembler simple à gérer au premier abord. Mais beaucoup de choses peuvent se dérouler par derrière :</p>
<ul>
<li>Certains systèmes (SAP notamment) rajoutent une notion d’<strong>échéances</strong> en dessous de la notion de ligne de commande. Il peut y en avoir beaucoup quand il s’agit de livraisons étalées sur des mois. La commande doit donc être <strong>partiellement livrée</strong> et payée avant même d’être totalement renseignée.<br />On notera au passage qu’il n’y a absolument pas de rapport de un-pour-un entre commande et livraison, ni entre commande et facture (on est déjà content si ce rapport existe au niveau de la ligne ou de l’échéance).<br /></li>
</ul>
<ul>
<li>Un <strong>conteneur</strong> peut être consigné et ajouté automatiquement (à la commande d’une caisse de bières par exemple), et ce même conteneur être récupéré à la livraison suivante, pour donner lieu à une <strong>déconsigne</strong> qui, subtilité, n’apparaîtra pas forcément sur la <em>commande</em> mais uniquement sur la <em>facture</em>.<br />Le terme <em>facture</em> est lui-même trompeur, car un livreur n’arrive qu’avec un borderau de livraison (ou facture <em>pro forma</em>) et la vraie facture comptable, comprenant les déconsignes, et faisant foi auprès de l’administration, n’est jamais imprimée.<br />Subtilité : le numéro de cette facture n’existe pas au moment où le client reçoit la <em>pro forma</em>, ce qui pose d’intéressants problèmes de rapprochements si le client paye dès la réception...<br /></li>
</ul>
<ul>
<li>L’unité à prendre en compte peut être l’<strong>unité</strong> (objets manufacturés), une unité de volume classique (le litre), ou qui dépend d’une autre et qui dépend de l’article (dans la distribution de boissons, un <em>col</em> peut faire 0,30 comme 1,75 litre, une <em>caisse</em> peut faire 12 cols, etc.). <br /></li>
</ul>
<ul>
<li>La mise en place du <strong>calcul du prix</strong> est un poème ; certains consultants y consacrent leur vie : prix de base (dans quelle unité ?), remise sur quantité, remise <em>positive</em> (qui permet d’afficher des prix artificiellement bas), frais de transports, frais de facturation, marges arrières plus ou moins claires, attribution gratuite d’articles en plus ou au sein de la quantité commandé... tout ceci variant dans le temps, l’espace, la sous-société qui reçoit la commande, la tête du client final et sa capacité de négociation, les habitudes de tel ou tel commercial et les traditions des différents services.<br /></li>
</ul>
<ul>
<li>Il est rare qu’il y ait de vente sans commercial. Celui-ci exigera peut-être sa part, et le système stockera quelque part la <strong>commission</strong> qu’il doit toucher. Lui aussi doit être payé.<br /></li>
</ul>
<ul>
<li>De même, le prix annoncé au client n’est pas forcément celui qui sera payé au fournisseur si un <strong>intermédiaire</strong> quelconque prélève sa commission (grande centrale, groupement, ou simplement affacturage).<br /></li>
</ul>
<ul>
<li>Murphy oblige, <em>la</em> <strong>fonctionnalité critique</strong> du cœur de métier du client, qui ne se rencontre nulle part ailleurs, n’est pas prévue dans le logiciel. Ou alors elle possède une limitation majeure (à première vue arbitraire et débile mais liée à l’historique de développement de l’ERP).<br /> C’est là qu’intervient la SSII, qui bénit le client pour ses excentricités, et maudit l’éditeur pour la difficulté d’adaptation (quoiqu’il faille distinguer entre le développeur qui s’arrache les cheveux et le commercial qui s’en moque, il a fait son boulot de décrocheur de contrat).</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#rev-pnote-109-1" id="pnote-109-1">1</a>] <em>Toute donnée envoyée par un intermédiaire est indigne de confiance d’ailleurs.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#rev-pnote-109-2" id="pnote-109-2">2</a>] <em>Les grosses entreprises ne sont pas mieux organisées ou rigoureuses que les petites ; je pencherai parfois pour le contraire.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#rev-pnote-109-3" id="pnote-109-3">3</a>] <em>En clair : petit informaticien, débrouille-toi </em>fissa<em> pour intégrer le fichier dans Oracle, tu n’as </em>pas<em> le temps de réfléchir à un beau modèle de données et à un import par étapes.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#rev-pnote-109-4" id="pnote-109-4">4</a>] <em>Encore a-t-on bien moins de problèmes avec cela ces temps-ci. De toute manière, le VRAI problème viendra en fait du fichier extérieur, </em>déjà<em> vérolé par des conversions hasardeuses lors de son détour au sein d’une base de données nord-américaine préhistorique qui ne comprend que l’ASCII sur 7 bits, et remplace les é, à, ñ, ß et Ç par des carrés blancs ou des traits verticaux.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/109
Les joies de l’ERP et du CRM (II)
urn:md5:5181f1ed31ea14b6c301fd2850f59eba
2006-03-10T20:30:00+00:00
2014-02-26T10:32:05+00:00
Christophe
Informatique lourde
base de données
complexité
CRM
développement
ERP
expertise
informatique
langues
logistique
Oracle
organisation
prise de tête
précision
SAP
travail
<p>ERP et CRM sont conçus pour gérer les cas les plus tordus et ils rajoutent. Le CRM a des joies cachées pour les amateurs de puzzle, de casse-têtes et de barbarismes linguistiques</p> <p>Nous avons vu récemment que <a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/blogsanssujetprecis//index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i">la complexité des ERP, combiné à un lourd passé, en faisaient des monstres ruineux et techniquement assez cryptiques</a>.</p>
<p>En tant que développeur il y a bien pire que les termes barbares du système à assimiler : il faut
comprendre ce que l’<em>utilisateur</em> veut faire avec le système. (Comme de plus c’est lui paye, c’est lui qui commande).<br />Pour le naïf technicien
qui débarque en plein dans un flux logistique, le monde un peu flou de la vente et des
livraisons prend soudain sa pleine dimension.
<br />Au début il s’imagine qu’une commande ne doit pas être si tordue à concevoir dans un modèle
de données bien propre :</p>
<ul>
<li>on commence par un <strong>en-tête</strong> avec quelques informations : le <strong>client</strong>, son <strong>adresse</strong>, le numéro de la <strong>facture</strong> ;</li>
<li>on enchaîne avec les <strong>lignes</strong> de commandes : un objet ou un service, une quantité, un prix unitaire ;</li>
<li>on termine en sommant les lignes, on rajoute la TVA ;</li>
<li>il reste éventuellement à <strong>livrer</strong> à l’adresse du client…</li>
</ul>
<p>Commençons par les <strong>adresses</strong>. Si on veut tout prévoir, il faut distinguer d’abord l’adresse de
<strong>livraison</strong> de l’adresse de <strong>facturation</strong>. N’importe quel site de commerce en ligne
est à présent capable de gérer la différence : vous pouvez ainsi envoyer un cadeau de Noël à votre chère grand-mère tout en recevant vous-même la facture papier.</p>
<p>Mais cela peut être encore plus compliqué ; par exemple :</p>
<ul>
<li>l’usine <code>TARTEMPION</code>, en France ;</li>
<li>peut recevoir une commande de <code>TOTO GmbH</code> (« donneur d’ordres » européen) ;</li>
<li>au nom de la PME brésilienne <code>PEDRO</code> (« destinataire final » des biens physiques) ;</li>
<li>à facturer à <code>TOTO Bizness International</code> (entité comptable du groupe <code>TOTO</code>, « destinataire de la facture ») ;</li>
<li>et qui sera effectivement payée par <code>TOTO Bank Ltd</code> (« payeur ») ;</li>
<li>à <code>VITENCAISSE</code>, société d’<a href="http://www.netpme.fr/banque-entreprise/2-l-affacturage.html">affacturage</a> qui sous-traite la facturation (relances, frais, avance, garantie de paiement…) de <code>TARTEMPION</code> ;</li>
<li>la livraison ne sera pas à envoyer directement au Brésil, mais à un <strong>intermédiaire logistique</strong> (« client délivré »), disons <code>FedDHL</code> à Amsterdam.</li>
</ul>
<p>Les ordinateurs de TARTEMPION, se doivent donc, pour une unique commande, <strong>créer chacune de ces entités</strong>, et ne pas perdre les <strong>liens</strong> entre elles. Il est mal vu et parfois coûteux d’envoyer une facture papier au lieu d’une palette, ou de réclamer le paiement à celui qui sert juste de livreur.</p>
<p>Renseigner tout cela à la main devient vite pénible, d’autant plus que les ERP sont rarement des monstres d’ergonomie<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#pnote-89-1" id="rev-pnote-89-1">1</a>]</sup>. Mais on atteint le cauchemar lorsque la création d’adresses ou clients doit être <strong>automatisée</strong> et que les données adéquates doivent se remplir spontanément sur les écrans informatiques de l’administration des ventes. Au passage on se demande qui là-dedans est vraiment le sacro-saint « client »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#pnote-89-2" id="rev-pnote-89-2">2</a>]</sup>.</p>
<p>Avec le <strong>jargon</strong> adéquat, mélangé à l’anglais imposé par certaines multinationales à leurs filiales, on aboutira au final à la conclusion que TOTO Bank Ltd est le <em>PayTo From</em> de PEDRO, et TOTO Bizness International le <em>BillTo Of</em> de TOTO GmbH<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#pnote-89-3" id="rev-pnote-89-3">3</a>]</sup>. Le CRM a des joies cachées pour les amateurs de puzzle, de casse-têtes et de barbarismes linguistiques.</p>
<p>Ce n’est que le début. Inutile de dire que PEDRO, TOTO Bank ou VITENCAISSE ont chacun une demi-douzaine d’<strong>adresses physiques</strong> (prévoir la notion d’« adresse primaire »), chacune dédiée à un rôle différent, ou pas (rajoutons une table des « usages d’adresse »). Certaines de ces adresses peuvent être celles d’une autre entité d’ailleurs (stock déporté par exemple).</p>
<p><em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/14/116-les-joies-de-l-erp-et-du-crm-iii">À suivre…</a></em></p>
<div class="footnotes"><h4 class="footnotes-title">Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#rev-pnote-89-1" id="pnote-89-1">1</a>] <em>Ils en violent même la plupart des règles.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#rev-pnote-89-2" id="pnote-89-2">2</a>] <em>Et se poser cette question, c’est se poser celle de l’entité à qui il faut plaire en priorité : l’utilisateur final ou l’un de ces intermédiaires qui ne l’ont peut-être jamais vu ?</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#rev-pnote-89-3" id="pnote-89-3">3</a>] <em>Exemple immonde inspiré d’Oracle Applications.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/89
Les joies de l’ERP et du CRM (I)
urn:md5:a7c454065eeee45c7c4de584724238a0
2006-03-04T16:34:00+00:00
2010-10-26T14:25:44+00:00
Christophe
Informatique lourde
argent
base de données
complexité
ergonomie
ERP
expertise
impérialisme
informatique
langues
logistique
Oracle
organisation
SAP
SQL
SSII
travail
valeur
économie
<p>Un ERP est un monstre coûteux et souvent abscons.</p> <p>Un <a href="http://www.commentcamarche.net/entreprise/erp.php3">ERP</a> est un monstre. C’est un logiciel coûteux, voire ruineux, souvent très lourd à mettre en place, qui impose sa logique à toute une entreprise, mais qui lui permet d’intégrer tout son fonctionnement de A à Z : commandes clients, livraison, production, facturation, plans de prod, achats, ressources humaines, calcul de coûts, marges, rapports fiscaux et comptables, qualité... <br />Des armées de consultant consacrent leur vie à la mise en place et la maintenance des ERP - et ils ont fait la fortune de bien des <a href="http://www.top50-ssii.com/">SSII</a>. <sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-1" id="rev-pnote-87-1">1</a>]</sup> <img src="https://www.coindeweb.net/blogeclectique/images/erp/sap-buchung.jpg" alt="sap-buchung.jpg" style="float:right; margin: 0 0 1em 1em;" title="SAP" /></p>
<p>Le <a href="http://www.commentcamarche.net/entreprise/crm.php3">CRM</a> est un autre terme fourre-tout pour un logiciel censé gérer toute la « relation client »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-2" id="rev-pnote-87-2">2</a>]</sup>, de la commande au service après-vente. C’est effectivement un monde très vaste et le terme veut dire un peu tout et rien. C’est souvent un des modules d’un ERP. Comme lui, il a besoin de doses massives de paramétrage pour s’adapter aux besoins de l’utilisateur.</p>
<p>Ça fait quelques années que je me casse le crâne sur les commandes et livraisons dans des ERP,
que ce soit <a href="http://www.oracle.com/fr/">Oracle Applications</a> ou plus récemment <a href="http://www.sap.com/france/">SAP</a>.</p>
<p>Techniquement, les entrailles de ces monstres sont assez glauques. On sent l’historique
chargé<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-3" id="rev-pnote-87-3">3</a>]</sup>. Par exemple, la table des articles dans SAP se nomme <code>MARA</code>, celle des commandes
<code>VBAK</code>, celle des livraisons <code>LIKP</code>, celle des pays <code>T005</code>. <br />La première impression d’horreur est totalement justifiée : ces codes datent bien de la préhistoire de l’informatique,
de l’ère où les noms de fichiers (ne parlons pas alors de « tables ») se limitaient à 4 caractères<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-4" id="rev-pnote-87-4">4</a>]</sup>. Il y a tout de même quelques trucs mnémotechniques : le « K » dans <code>VBAK</code> et le « KP » dans <code>LIKP</code> veulent dire « en-tête »... en allemand (<em>kopf</em>). Oui, SAP est allemand<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-5" id="rev-pnote-87-5">5</a>]</sup>.</p>
<p>Dans la même logique, on verra vite que les tables de lignes de commandes et de livraisons correspondant à ces en-têtes s’appellent <code>VBAP</code> et <code>LIPS</code>. P et PS pour « poste » (<em>Position</em> outre-Rhin), évidemment ; ce serait trop simple de parler de « lignes » de commandes. Si vous ignoriez le terme dans ce contexte, je vous l’apprends, et je l’ignorais moi-même il y a deux mois.</p>
<p><img src="https://www.coindeweb.net/blogeclectique/images/erp/oracle_appli.jpg" alt="oracle_appli.jpg" style="float:left; margin: 0 1em 1em 0;" title="oracle_appli.jpg" /> Le concurrent, Oracle Applications, est un peu plus bavard quant aux noms de tables : <code>OE_ORDER_LINES</code>
et <code>OE_ORDER_HEADERS</code>, <code>WSH_DELIVERIES</code>, <code>WSH_DELIVERY_DETAILS</code> sont beaucoup plus explicites.
Et il y a plus de chances que vous parliez anglais qu’allemand. (Par contre, l’interface utilisateur
est tellement moche qu’un commercial m’a dit éviter de la présenter en avant-vente<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#pnote-87-6" id="rev-pnote-87-6">6</a>]</sup>.).</p>
<p><em><a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/03/10/88-les-joies-de-l-erp-et-du-crm-ii">À suivre...</a></em></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-1" id="pnote-87-1">1</a>] <em>D’ailleurs, la difficulté de modification, de paramétrage et de maintenance des ERP sont une des raisons pour lesquelles les SSII adorent les vendre : ils s’assurent ainsi une éternelle réserve de facturation toutes les années où l’ERP tournera. Les clients ne résistent souvent pas à la tentation de vouloir adapter l’outil à leurs habitudes, même si on calcule que le plus ridicule rapport ou écran coûtera plusieurs milliers d’euros.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-2" id="pnote-87-2">2</a>] <em>S’il n’y a pas de préposition, c’est de l’anglais traduit par quelqu’un qui voulait impressionner son monde.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-3" id="pnote-87-3">3</a>] <em>Le cœur de chacun de ces produits est en général très ancien, <a href="http://emploi.journaldunet.com/magazine/713/">parfois trois décennies</a> ; même s’il a été reprogrammé depuis, les anciennes modes et contraintes de programmation et d’interface y ont imprimé leur marque pour toujours. De plus, un module est souvent un logiciel tiers acheté, plus ou moins bien intégré au reste de l’ERP. Enfin, des modules récents cohabitent avec des modules antédiluviens car anciens et stables (souvent la comptabilité), ce qui occasionne de belles incohérences de logiques d’interface ou de programmation.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-4" id="pnote-87-4">4</a>] <em>De manière plus récente, certaines normes de nommage de documents sont encore influencées par celles de DOS et Windows 3.1 (8 caractères maxi), dix ans après leur disparition.</em>.</p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-5" id="pnote-87-5">5</a>] <em>Et le code source des programmes est bourré de commentaires dans la langue de Goethe. Je suis très heureux de la parler.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#rev-pnote-87-6" id="pnote-87-6">6</a>] <em>Qu’une interface soit moche est trompeur. Celle d’Oracle est plus consistante bien que plus limitée que SAP. Mais je crois que je les hais toutes les deux.</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2006/03/04/87-les-joies-de-l-erp-et-du-crm-i#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/87
2006 commence bien
urn:md5:e517f7ac23cfa66f223dbc02ab6de0e1
2006-01-02T14:50:00+00:00
2010-07-04T09:53:34+00:00
Christophe
Moi, ma vie, mon ego
anticonsumérisme
blog
catastrophe
DRM
démocratie
enfants
gaspillage
jardinage
livres lus
mobilité
optimisme
pessimisme
périmé
temps
travail
uchronie
valeur
<p>Démarrage d’année peinard</p> <p>Bonne année, bonne santé, à tous ceux qui liront ceci ! En particulier à ceux qui attendent un heureux événement <em>(bon courage pour les nuits blanches à venir, <a href="http://trentaineordinaire.free.fr/">Jid</a>)</em>.</p>
<p>Un petit billet égocentrique pour changer : <strong>l’année a bien commencé</strong> !</p>
<ul>
<li>Les <strong>goinfreries</strong> familiales sont restées dans le domaine du raisonnable, ce qui me permet d’éviter une diète de janvier trop stricte (et pourtant ma chère mère et ma tendre moitié ont une fois de plus bien fait les choses).</li>
</ul>
<ul>
<li>Le petit <strong>Rémi</strong>, adorable mais chronophage et nervodestructeur, est en pension chez ses grand-parents. Il me manque déjà, mais qu’est-ce que c’est calme ici, et que cela fait du bien d’enchaîner les grasses matinées !</li>
</ul>
<ul>
<li>Pas de longue lutte contre les éléments pour rentrer chez soi, comme à Noël dernier : les déneigeuses, cette année, étaient assez nombreuses sur les autoroutes. (Dommage que j’ai par inadvertance coupé le courant au frigo-congélo pendant ces vacances. Nettoyer un congélo remonté à +8°C est un plaisir après une journée au volant).</li>
</ul>
<ul>
<li>Un excellent <strong>concert du Nouvel An</strong> de l’orchestre symphonique de Vienne (si vous ne le suivez pas à la télé tous les 1ers janvier, vous manquez quelque chose (il faut aimer Strauss)).</li>
</ul>
<ul>
<li>Un <strong>boulot</strong> qui promet de se renouveler un peu cette année (qui vivra verra).</li>
</ul>
<ul>
<li>Beaucoup de <strong>chaînes de télé en plus</strong> grâce à la <a href="http://freebox.free.fr/">Freebox</a> - mais qu’en avons-nous à faire, avec un mètre de hauteur de DVDs à regarder et un magnétoscope numérique dont le disque dur sature un trimestre après son achat ? Contempler les chaînes chinoises ou arménienne ou les dix versions de France 3 a un intérêt limité.</li>
</ul>
<ul>
<li>Beaucoup de <strong>câbles visibles en moins</strong> grâce à ce temps disponible et aux conseils de <a href="http://www.madrau.com/" hreflang="en">Stéphane</a>.</li>
</ul>
<ul>
<li>Pas de temps perdu à administrer/réparer/migrer <strong>le PC de papa</strong> lors de sa visite annuelle - j’aurais dû le pousser plus tôt à acheter une machine neuve ; la « récup » de vieux clous devient non-rentable dans notre société de l’éphémère, du toujours plus vite et des familles éclatées.</li>
</ul>
<ul>
<li>La <strong>DADVSI</strong> a été descendue en flammes même si ce n’est sans doute qu’une victoire symbolique (voir <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/01/02/60-2006-commence-bien">précédent billet</a>).</li>
</ul>
<ul>
<li>Ni tempête apocalyptique ni tsunami de 1er janvier (mais par contre les habitants du Darfour ou du Niger doivent continuer à crever de faim, <em>business as usual</em>).</li>
</ul>
<ul>
<li>Les jours augmentent à nouveau. Enfin.</li>
</ul>
<ul>
<li>J’ai lu un bon pavé, <strong><em>Resurrection Day</em></strong> de DuBois, en VO, qui m’a valu quelques extinctions des feux tardives. Je prévois un petit billet là-dessus. (<em>Mise à jour : <a href="https://www.coindeweb.net/blogeclectique/index.php?post/2006/01/03/61-resurrection-day">Il est ici</a></em>)</li>
</ul>
<p>Mais <strong>l’année ne sera pas toute rose</strong> :</p>
<ul>
<li>Les étagères des <strong>livres « à lire »</strong> ne désemplissent pas, au contraire ! Chaque voyage que je fais chez mes parents est l’occasion de donner à mon paternel quelques pavés à revendre sur <a href="http://www.priceminister.fr/">Priceminister</a>, mais aussi de récupérer quelques autres (<em>whatever the language</em>) qu’il <em>faut</em> que je lise.</li>
</ul>
<ul>
<li>La pile des <strong>magazines à lire</strong>, c’est pire. Je devrais compter en kilos, si j’avais le courage de compter.</li>
</ul>
<ul>
<li>Les <strong>billets inachevés</strong> pour ce blog s’empilent également. Fichue <a href="http://fr.wikipedia.org/wiki/Procrastination">procrastination</a>.</li>
</ul>
<ul>
<li>Y a pas de raison que mon temps disponible s’accroisse.</li>
</ul>
<ul>
<li>Je vais encore prendre <strong>un an de plus</strong>, et j’arrive à une période où je ne suis pas impatient de grandir ou de voir mon entourage vieillir.</li>
</ul>
<ul>
<li>Encore un an et demi de vacheries, piques, coups bas, paroles fielleuses, entre nos <del>représentants</del> élus avant la présidentielle. Aucun changement sérieux à attendre avant cela.</li>
</ul>
<ul>
<li>Poutine, Bush, Assad... sont toujours au pouvoir.</li>
</ul>
<ul>
<li>J’habite toujours à 500 km de la famille à qui confier le gamin de temps à autre ; nerveusement c’est pénible.</li>
</ul>
<ul>
<li>Le jardin, en sommeil, va à nouveau réclamer une foule de soins dès le printemps : tondeuse, taille des troënes, tondeuse, taille des tuyas, taille des troënes, tondeuse, tondeuse...</li>
</ul>
<ul>
<li>Va falloir se recaler sur le rythme du boulot, et dès demain.</li>
</ul>
Six dumbest ideas in computer security
urn:md5:d161cc8ff9eeef98c8fc615e18dcea27
2005-11-23T08:00:00+00:00
2010-05-16T19:53:53+00:00
Christophe
Informatique militante et technologie
administration
communication
complexité
cynisme
dysfonctionnement
foutage de gueule
humour
informatique
intelligence
paranoïa
perspective
pessimisme
provocation
psychologie
sécurité
travail
<p>Six idées désastreuses en sécurité informatique : la permission d’accès par défaut, rechercher les failles, les tests de pénétration, <em>hacking is cool</em>, l’éducation des utilisateurs (!), mieux vaut agir que ne rien faire. Provoquant, concret, et désespérant.</p> <p>Texte original : <a href="http://www.ranum.com/security/computer_security/editorials/dumb/" hreflang="en">http://www.ranum.com/security/computer_security/editorials/dumb/</a></p>
<p>La discussion sur Slashdot:
<a href="http://it.slashdot.org/article.pl?sid=05/09/11/1716205" hreflang="en">http://it.slashdot.org/article.pl?sid=05/09/11/1716205</a></p>
<p>Une traduction-résumé pour les non-anglophones :
<a href="http://www.reseaux-telecoms.net/actualites/lire-les-6-idet-xe9-es-les-plus-stupides-de-la-set-xe9-curitet-xe9-11125.html">http://www.reseaux-telecoms.com/cso_btree/05_09_15_165325_934/Newscso_view</a></p>
<p>J’aimerais bien rajouter mes commentaires mais le temps manque.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/11/23/6-six-dumbest-ideas-in-computer-security#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/6
Un serveur de mail pour 1 million de personnes
urn:md5:75f732e2e5c3860a9757650bfad7295a
2005-10-31T22:19:00+00:00
2010-05-02T13:50:37+00:00
Christophe
Informatique lourde
administration
communication
complexité
expertise
informatique
Linux
logiciel libre
optimisme
réseau
travail
émerveillement
<p><a href="http://ask.slashdot.org/article.pl?sid=05/09/08/1925241&threshold=4" hreflang="en">http://ask.slashdot.org/article.pl?sid=05/09/08/1925241&threshold=4</a></p>
<p>Excellent et archi-technique comme j’aime sur Slashdot.
Le plus fascinant est qu’à la base ce sont les mêmes outils que ceux que je peux utiliser sur le petit serveur dans mon placard.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/31/17-serveur-de-mail-pour-1-million-de-personnes#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/16
Des erreurs et thermomètres en entreprise
urn:md5:2877261618c89817e084117779ca47d9
2005-10-10T22:44:00+00:00
2010-04-18T17:50:23+00:00
Christophe
Il faut bien manger
complexité
cynisme
informatique
logistique
organisation
SSII
travail
virtuel
<p>Une pure perle de sagesse de Jid : le choix du thermomètre pour mesurer et juger un comportement génère nombre d’effets pervers.</p> <p>On se ressemble beaucoup, Jid, finalement, à un an d’écart. Même situation de famille, même ennui apparemment au boulot, <a href="http://trentaineordinaire.hautetfort.com/archive/2005/10/10/boulot-boulot.html">même philosophie de paresseux (qualité première d’un informaticien), même optique du fonctionnement des strates supérieures de l’entreprise</a>.</p>
<p>Je rebondis sur son billet : chercher à faire moins d’erreurs est une chose. Le choix du <strong>thermomètre</strong> (le moyen de repérer ces erreurs) en est une autre, encore plus critique.
<br />Un informaticien noté uniquement sur le nombre d’incidents réglés par jour/mois aura tendance à les clore au premier prétexte (inactivité apparente du quémandeur...), voire sans. Un hotliner noté sur sa moyenne de temps d’appel raccrochera une fois sur deux sans même écouter. Quelqu’un noté sur le nombre de demandes de modifications du logiciel satisfaites aura tendance à les exiger nombreuses, précises et très courtes. Je n’ose penser aux conséquences du paiement d’informaticiens au nombre de lignes de code pondues...<br />À l’autre bout de l’échelle, un grand chef payé en fonction du cours de bourse du prochain trimestre ne s’intéressera qu’à ça, allant jusqu’à le manipuler. Tenter de contrôler les gens à ce niveau est illusoire : s’ils étaient contrôlables, ils ne seraient pas assez intelligents et amoraux pour diriger une grosse entreprise...</p>
<p>Pour en rajouter : l’industrie manufacturière est censée être le royaume de la <strong>qualité de process</strong>. Mais cela vaut principalement pour le produit fini, pas toujours pour le reste, notamment la manière dont la base de données de l’usine est renseignée. De plus, les gens de la Production raisonnent avec des <strong>contraintes</strong> (temps de mise en place, contraintes de maintenabilité sur le long terme, justesse comptable...) très différentes d’autres services. Donc les choses ne sont pas toujours aussi carrées qu’elles le devraient.</p>
<p>Et tout problème ensuite se focalise à deux endroits :</p>
<ul>
<li>la <strong>Comptabilité</strong>, en fin de mois, parce qu’il y a une incohérence qui saute aux yeux de gens entraînés à les traquer (histoire d’éviter que le fisc hurle à la fraude, ou que les entités commerciales ne voient un bénéfice de l’usine, qu'elles s’empresseraient d’exiger) ; heureusement les comptables sont souvent logiques et placides ;</li>
</ul>
<ul>
<li>la <strong>Logistique</strong>, parce qu’eux doivent expédier, avec plein de papiers réglementaires, et si quelque chose manque, ils s’en aperçoivent aussi, tout en bout de chaîne ; par contre ce sont des gens assez <del>stressan</del> stressés pour qui tout est toujours urgent : le camion, il est déjà sur leur quai quand le problème se déclare.</li>
</ul>
<p>Dans les deux cas, le problème devient très vite le problème de l’<strong>Informatique</strong>, simple moyen mais dont tout le monde attend la même disponibilité et fiabilité que celle du réseau d’eau, et la souplesse et la servilité d’un majordome. Si ça foire, c’est forcément la faute de l’informatique/de l’informaticien, jamais la faute de celui qui a ordonné une aberration au système, qui s’est assis sur les procédures, ou qui s’y est pris au dernier moment, situation que <a href="https://www.coindeweb.net/murphy/">Murphy</a> adore.</p>
<p>Dans le cadre d’un <strong><a href="http://fr.wikipedia.org/wiki/Progiciel_de_gestion_intégré">ERP</a></strong> tout dysfonctionnement doit être corrigé matériellement <em>et</em> dans le monde désincarné des tables SQL. Celles-ci après tout sont censées refléter la réalité. Sachant que la logique interne de la bête relève du miracle quotidien, de la magie noire, du vaudou, en plus des maths et des lois comptables, avec une bonne pincée d’influence de <em><a href="http://en.wikipedia.org/wiki/Gremlin" hreflang="en">gremlins</a></em>, le tout sous l’œil narquois et vigilant de Murphy, la chose peut être difficile/cauchemardesque/impossible.<br />Si théoriquement on peut corriger un problème, le délire ergonomique qu’est l'ERP rendra la chose impossible à l’échelle humaine (<em>exemple</em> : 300 clients à modifier, chacun nécessitant 30 s de manipulations à travers 2000 couches de java, de serveur d’application, bases sur un autre continent...)</p>
<p>Des exemples :</p>
<ul>
<li>L’entreprise qui fabrique des gadgets électroniques où je <del>facture</del>travaille possède une base de données mondiale de ses numéros de série de gadgets, base située sur un autre continent que l’usine. <br />Suite à divers problèmes, les responsables de cette base exigent (ce sont eux qui payent) que plus <em>aucune</em> livraison ne se fasse tant que les données ne sont pas arrivées chez eux et validées. Même le papier nécessaire au prélèvement dans les stocks n’est plus imprimé. Tout cela part d’une bonne intention. <br />Malheureusement, un jour des invendus sont revenus en stock, les personnes adéquates, humaines donc faillibles<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#pnote-21-1" id="rev-pnote-21-1">1</a>]</sup> n’ont pas transmis cette information, le grand serveur de l’autre continent a donc hurlé au doublon de numéro de série et refusé de valider la nouvelle livraison ; il a donc fallu corriger, de plus un jour de clôture comptable, synonyme de système bien chargé, et, Murphy oblige, des bugs de performance<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#pnote-21-2" id="rev-pnote-21-2">2</a>]</sup> se sont invités ce même jour. Le livreur attendait que les fichiers d’information traversent les océans pour embarquer les gadgets qu’il voyait bien emballés et rangés sur le quai. Un vendredi soir bien sûr, où la bonne volonté fait très vite défaut, sinon les personnes compétentes. Soyons honnêtes, les problèmes de fuseau horaire ne nous ont pas gênés cette fois. Mais le livreur est reparti sans embarquer.<br />De toute façon, les quatre palettes ne tenaient pas dans la camionette.</li>
</ul>
<ul>
<li>Cette même entreprise française est pressurée par ses <del>clients</del>donneurs d’ordres de fabriquer et livrer ses gadgets de manière de plus en plus rapide et réactive (histoire d’être au moins aussi compétitive que ces gens aux yeux bridés à des milliers de kilomètres, qui sont plus proches des gisements de pièces détachées, et livrent au final aussi vite sur notre propre continent). La recherche des gisements de productivité fait rage, ainsi que la mode des <strong><a href="http://en.wikipedia.org/wiki/KPI" hreflang="en">KPI</a></strong>. On m’a donc demandé de travailler sur un rapport qui permettrait de suivre le « temps de séjour »<sup>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#pnote-21-3" id="rev-pnote-21-3">3</a>]</sup> de chaque gadget entre la commande, l’ordre de fabrication, sa mise en palette, l’arrivée sur le quai, et le départ vers les comptoirs où des <del>pigeo</del>clients ébahis les acquerront pour une <del>petite fortu</del>bouchée de pain.<br />Comme tout <strong>projet transverse à plusieurs services</strong>, personne ne maîtrisait l’intégralité du flux. Le questionnement sur les écrans (« Cette donnée à l’écran elle veut dire quoi ? ») a très vite dégénéré en querelle sémantique sur la notion exacte de « <em>release d’OF</em> » et autres « <em>passage en stock XQ5</em> ». <br />Puis les <strong>données pourries</strong> ont fait surface, par exemple sous la forme d’ordres de fabrication annulés sans que le système en ait été informé : des palettes en double ça fait mauvais genre. <br /> <br />Finalement après bien des heures perdues, le petit rapport torché en sous-marin est devenu un mini projet-usine qui fidèlement traquait chaque lot de gadgets pour savoir où il s’était attardé.<br />Peu après la livraison j’ai arrêté d’en entendre parler. Son contenu ne plaisait pas, toutes les vérités ne sont pas bonnes à dire. Ce n’était pas un bon thermomètre...</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#rev-pnote-21-1" id="pnote-21-1">1</a>] <em>Rappelons qu’un être humain fait forcément un jour ou l’autre des erreurs, mais à petite vitesse ; un ordinateur par contre est d’une concentration et régularité sans faille, jusqu’au bug qui lui permettra de générer autant d’erreur en une minute qu’un humain dans sa vie.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#rev-pnote-21-2" id="pnote-21-2">2</a>] <em>Un bug de performance, c’est quand la base de données décide de rechercher ses données dans un ordre différent aujourd’hui parce que ça lui semble plus efficace que la méthode précédente. L’algorithme qui calcule l’efficacité est programmé par un humain (voir note 1). Donc un programme qui durait 1 minute peut du jour ou lendemain passer à 10 heures. Court-circuiter l’intelligence de la machine est possible - mais il est alors trop tard quand on s’en aperçoit.</em></p>
<p>[<a href="https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#rev-pnote-21-3" id="pnote-21-3">3</a>] <em>Coup de bol, je suis ingénieur en génie chimique. Des flux de gadgets ou de produits pharmaceutiques, quelle différence ?</em></p></div>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/10/10/20-des-erreurs-en-entreprise#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/21
Non, la France ne vit pas au-dessus de ses moyens !
urn:md5:76c874d08038077102ac40ac577b700c
2005-09-28T15:31:00+00:00
2010-04-17T18:45:23+00:00
Christophe
Res publica
optimisme
politique
périmé
travail
économie
<p>Une chronique des Échos plus optimiste que d’habitude sur l’état du pays.</p> <p>Je suis tombé il y a quelques jours sur cette <a href="http://www.lesechos.fr/journal20050920/lec1_idees/4316991.htm">chronique de Henri Guaino</a> plus optimiste que bien d’autres.</p>
<p>D’une part, il est bon de ne pas tomber dans la sinistrose complète et de voir ramener ses problèmes à leurs justes proportions.</p>
<p>D’un autre côté, ce nest pas parce que la situation n’est pas toute noire qu’il n’y a pas quand même lieu de s’inquiéter. Le gouvernement actuel ne fait pas grand-chose pour réduire le déficit - et pourtant les fonctionnaires commencent à partir massivement à la retraite. Malgré la baisse du nombre des actifs qui devrait arriver pour de simples raisons démographiques, le chômage ne veut pas baisser. La relève politique se fait attendre. La construction européenne est en panne. Etc. (Je m’arrête là sinon je suis reparti pour un billet de 50 kilo-octets ; j’aurais bien plus l’occasion en 2007).</p>
<p><strong>Mise à jour de février 2006</strong> : Le magazine <em>Marianne</em> va plus loin : la France vit <em>au-dessous</em> de ses moyens : grosse épargne, pans entiers de la population qui ne travaillent pas et le pourraient au besoin.</p>
<p><strong>Mise à jour de 2010</strong> : Marrant de relire ça quelques années après, avec l’<a href="http://fr.wikipedia.org/wiki/Henri_Guaino">auteur devenu éminence grise du nouveau Président</a>, et un déficit de plus en plus abyssal.</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/09/28/16-non-la-france-ne-vit-pas-au-dessus-de-ses-moyens#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/15
Clippy doit mourir
urn:md5:e3bc4175446a13079a0287965f9a65da
2005-09-18T21:42:00+00:00
2010-04-17T18:52:45+00:00
Christophe
Informatique militante et technologie
dysfonctionnement
foutage de gueule
haine
informatique
Microsoft
prise de tête
travail
économie de l’attention
<p>Je hais le compagnon Office.</p> <p>Avant-hier derrière moi des collègues se battaient à cause du « Compagnon Office ». Problème d’installation d’Outlook dernière version je crois. Qu’on perde du temps parce qu’il y a un problème sur une non-fonctionnalité d’un produit censé être professionnel m’énerve presque autant que le code PL/SQL qui revient d’Inde (il faudra que je parle de l’<em><a href="http://fr.wikipedia.org/wiki/Offshoring">offshore</a></em> un jour).</p>
<p>Les principaux reproches que je fais à cette engeance sont :</p>
<ol>
<li>qu’il prend de la place sur l’écran, place souvent chichement mesurée sur un 15" ou un portable,</li>
<li>qu’il BOUGE, qu’il attire alors l’œil, et casse la concentration.</li>
</ol>
<p>Dieu merci, il se désactive. Que la majorité de mes collègues le laissent activé m’étonne tout de même...</p>
https://www.coindeweb.net/blogsanssujetprecis/index.php?post/2005/09/18/13-clippy-doit-mourir#comment-form
https://www.coindeweb.net/blogsanssujetprecis/index.php?feed/atom/comments/13