{"id":574,"date":"2010-12-22T11:06:19","date_gmt":"2010-12-22T10:06:19","guid":{"rendered":"http:\/\/www.alpesjug.fr\/?p=574"},"modified":"2010-12-22T11:07:04","modified_gmt":"2010-12-22T10:07:04","slug":"compte-rendu-de-la-soiree-sonar","status":"publish","type":"post","link":"https:\/\/www.alpesjug.fr\/?p=574","title":{"rendered":"Compte-rendu de la soir\u00e9e SONAR"},"content":{"rendered":"<h3>Le m\u00e9tier de d\u00e9veloppeur<\/h3>\n<p>La premi\u00e8re partie est donc une r\u00e9flexion sur le jeune m\u00e9tier de \u00ab\u00a0d\u00e9veloppeur\u00a0\u00bb (analyste, d\u00e9veloppeur, concepteur, architecte, int\u00e9grateur &#8230;)<br \/>\n<a href=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/fresy_question.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/fresy_question-225x300.jpg\" alt=\"Freddy Mallet\" title=\"Freddy Mallet\" width=\"225\" height=\"300\" class=\"alignleft size-medium wp-image-596\" srcset=\"https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/fresy_question-225x300.jpg 225w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/fresy_question-768x1024.jpg 768w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/fresy_question.jpg 1536w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a>Existe-t-il un probl\u00e8me culturel et d&rsquo;imaginaire collectif sp\u00e9cifiquement Fran\u00e7ais ?<br \/>\nIl est certain que dix ans en arri\u00e8re, le \u201cm\u00e9tier\u201d a connu une vague d\u2019autodidactes avec des r\u00e9sultats plus ou moins heureux. Freddy Mallet estime que sa formation la plus utile reste son BAFA. Il est certain que les capacit\u00e9s de communication sont extr\u00eamement importantes, surtout avec les m\u00e9thodes agiles. Mais du coup l\u2019image de l\u2019informaticien en a pris un coup (ainsi que sa place dans les grilles de salaire). M\u00eame dans la salle, pourtant des profils plut\u00f4t technique, seul un dixi\u00e8me se voit finir sa carri\u00e8re dans le d\u00e9veloppement (les autres savent qu\u2019ils seront statistiquement au ch\u00f4mage).<\/p>\n<p>Le ph\u00e9nom\u00e8ne existe-t-il dans d&rsquo;autres m\u00e9tiers? Ou le d\u00e9veloppeur est-il en plus parano\u00efaque ? Il faut se m\u00e9fier des comparaisons. Bien sur, un chef de rayon dans la grande distribution est aussi fortement pouss\u00e9 \u00e0 \u00e9voluer. Mais l&rsquo;artisan qui n&rsquo;a pas \u00e9volu\u00e9 est-il un rat\u00e9 ? \u00a0Au final, comparez-vous le m\u00e9tier de d\u00e9veloppeur \u00e0 \u00ab\u00a0Caissier\u00a0\u00bb, \u201cprofesseur des \u00e9coles\u201d, \u00ab\u00a0Chef de rayon\u00a0\u00bb, \u201cArtisan\u201d, \u00ab\u00a0Comptable\u00a0\u00bb, \u00ab\u00a0M\u00e9decin\u00a0\u00bb ou \u201cMusicien\u201d ?<\/p>\n<p>Revenons quelques ann\u00e9es en arri\u00e8re. \u00c9num\u00e9rons les syndromes classiques du d\u00e9veloppeur \u201cH\u00e9ros\u201d (\u201cc\u2019est MON code\u201d, peur du changement &#8230;). Enfin, soulignons une tendance forte des 10 derni\u00e8res ann\u00e9es: l\u2019industrialisation. Attention, pas au sens \u201coff-shore\u201d dans des pays \u00e0 bas co\u00fbt de main d\u2019oeuvre, mais au sens SCM, Int\u00e9gration continue, tra\u00e7abilit\u00e9 (SCM + Tickets).<br \/>\nBref, on sent bien une \u00e9volution, mais vers quoi ???<\/p>\n<ul>\n<li>ReUse \u21e8 Integration<\/li>\n<li>ReDuce \u21e8Refactoring<\/li>\n<li>ReCycle \u21e8 Maintenance<\/li>\n<\/ul>\n<p>Les co\u00fbts de maintenance auraient-ils pouss\u00e9 l\u2019industrialisation ? Ou les d\u00e9veloppeurs ont-ils cr\u00e9\u00e9s et impos\u00e9s leur propres outils ?<\/p>\n<p>Visiblement l\u2019industrialisation ne s\u2019est pas faite sur les anciens piliers du Waterfall: Documentation + Mod\u00e9lisation + Planification. Peut \u00eatre n\u2019accordaient-ils pas assez d\u2019importance au code source ? L\u2019industrialisation a eu lieux bottom-up, elle concerne le code source et le d\u00e9veloppeur n\u2019est plus rel\u00e9gu\u00e9 en bout de cha\u00eene, mais directement en lien avec l\u2019utilisateur final. (Une note quand m\u00eame pour dire que mod\u00e9lisation et DSL commencent \u00e0 revenir sous une forme li\u00e9e au code et en phase avec l\u2019agilit\u00e9, mais <a href=\"http:\/\/www.voelter.de\/publications\/index\/detail639349625.html\">c\u2019est un autre d\u00e9bat<\/a>.)<\/p>\n<p>Aujourd\u2019hui, le d\u00e9veloppeur ne devrait plus \u00eatre un \u201clonesome cowboy\u201d qui va remplir sa mission dans la jungle inextricable du code. Il devrait travailler avec les autres et m\u00eame pour les autres. En effet, on n\u2019\u00e9crit pas du code pour le compilateur, mais pour les autres d\u00e9veloppeurs ! A ce sujet voir <a href=\"http:\/\/www.amazon.com\/Clean-Code-Handbook-Software-Craftsmanship\/dp\/0132350882\/ref=tmm_pap_title_0\">Clean Code: Handbook Software Craftsmanshift<\/a> (by Robert C. Martin): livre d\u00e9di\u00e9 \u00e0 l\u2019expressivit\u00e9 du code source.<br \/>\nFreddy n\u2019h\u00e9site pas \u00e0 dire qu\u2019il faut m\u00eame s\u2019interdire de faire des choses trop compliqu\u00e9es par rapport au niveau de l\u2019\u00e9quipe. Comme toujours, il faut garder un \u00e9quilibre et ne pas toujours niveler par le bas !<\/p>\n<p>Un apart\u00e9 sur les rythmes de d\u00e9veloppement. L&rsquo;int\u00e9gration continue &amp; agilit\u00e9 permettent de \u00a0lisser le rythme de d\u00e9veloppement gr\u00e2ce aux tests unitaires. \u00c7a \u00e9vite les rythmes en dents de scies, o\u00f9 on reste des journ\u00e9es \u00e0 chercher un bug apr\u00e8s avoir progress\u00e9 tr\u00e8s vite.<\/p>\n<p>La maturit\u00e9 s\u2019acquiert par \u00e9tapes (inutile de vouloir faire de l\u2019int\u00e9gration continue sans ma\u00eetriser le SCM par exemple):<\/p>\n<ol>\n<li>SCM<\/li>\n<li>Ticket<\/li>\n<li>Int\u00e9gration continue<\/li>\n<li>Inspection continue = SONAR<\/li>\n<\/ol>\n<p>Attention aux exc\u00e8s de l\u2019agilit\u00e9: manque de vigilance sur le long terme. Pour garder une capacit\u00e9 \u00e0 l\u2019agilit\u00e9, il ne faut pas accumuler trop de dette technique sans s\u2019en rendre compte. \u00c7a rejoint un peu le probl\u00e8me des exigences non-fonctionnelle en Agilit\u00e9 : SONAR n\u2019est qu\u2019un outil. Il faut une gouvernance.<br \/>\nFreddy aimerait bien s&rsquo;int\u00e9grer dans le processus agile, pour cela il d\u00e9fend le fait qu\u2019une fonctionnalit\u00e9 n\u2019est termin\u00e9e (<strong>Done<\/strong>) que lorsqu\u2019elle est :<\/p>\n<ol>\n<li>D\u00e9velopp\u00e9e<\/li>\n<li>Test\u00e9e<\/li>\n<li>Approuv\u00e9e par le \u201cproduct owner\u201d<\/li>\n<li>Tout \u00e7a avec une dette technique ma\u00eetris\u00e9 (par SONAR)<\/li>\n<\/ol>\n<p>En conclusion, bien des maux et des d\u00e9rives observ\u00e9s proviennent du manque de transparence du code source. Le d\u00e9veloppement m\u00eame du code source s\u2019apparente pour beaucoup \u00e0 de la magie laiss\u00e9 aux gourous ou \u00e0 des missions p\u00e9rilleuses laiss\u00e9es \u00e0 des mercenaires. Apr\u00e8s 15 ans d\u2019agilit\u00e9, on commence \u00e0 ma\u00eetriser les fonctionnalit\u00e9s des applications et obtenir une tra\u00e7abilit\u00e9. La prochaine \u00e9tape consiste \u00e0 ouvrir la boite de pandore, \u00e0 apporter de la transparence au niveau du code source. \u00cates-vous pr\u00eat \u00e0 travailler au grand jour ? Les outils sont l\u00e0, nous avons rencontr\u00e9 Freddy Mallet.<br \/>\nIl ne reste plus que la volont\u00e9 <del datetime=\"2010-12-16T08:08:24+00:00\">de s\u2019en servir<\/del> d\u2019en parler \u00e0 votre DSI: <a href=\"http:\/\/www.sonarsource.org\/\">http:\/\/www.sonarsource.org\/<\/a><\/p>\n<h3>L&rsquo;outil SONAR<\/h3>\n<p>La seconde partie est donc une d\u00e9monstration du produit Open Source: SONAR.<br \/>\nImm\u00e9diatement l&rsquo;indicateur global en $ saute aux yeux (surtout pour un DSI) et permet de savoir o\u00f9 on va:<\/p>\n<ul>\n<li>l\u2019\u00e9volution de votre projet \u00e0 travers le temps. Votre projet s&rsquo;am\u00e9liore ou empire ??<\/li>\n<li>La comparaison avec d\u2019autres projets. M\u00eame si vous n\u2019avez qu\u2019un projet SONAR vous montre l\u2019\u00e9tat d\u2019un large panel de projets <a href=\"http:\/\/nemo.sonarsource.org\/\">http:\/\/nemo.sonarsource.org\/<\/a><\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/freddy2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/freddy2-225x300.jpg\" alt=\"Freddy Mallet - SonarSource\" title=\"Freddy Mallet - SonarSource\" width=\"225\" height=\"300\" class=\"alignright size-medium wp-image-598\" srcset=\"https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/freddy2-225x300.jpg 225w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/freddy2-768x1024.jpg 768w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/freddy2.jpg 1536w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><br \/>\nOn survole plusieurs m\u00e9triques. Visiblement, c\u2019est une science \u00e0 part enti\u00e8re qu\u2019a appris \u00e0 ma\u00eetriser SONAR. Un <a href=\"http:\/\/www.sonarsource.com\/support\/\">support est disponible<\/a> si votre responsable qualit\u00e9 veut monter en comp\u00e9tence.<br \/>\nLa force du portail Sonar ? Lorsqu\u2019on clique sur une m\u00e9trique (et on peut cliquer partout !) on atterrit syst\u00e9matiquement sur du code \u201dam\u00e9liorable\u201d.<br \/>\nLa principale \u00e9volution de Sonar d\u00e8s les prochains mois sera d\u2019ailleurs l\u2019int\u00e9gration de l\u2019outil aux IDE pour lier graphiquement les m\u00e9triques relev\u00e9es au code source \u00e9ditable.<\/p>\n<p>Lors des questions\/r\u00e9ponses, un participant a \u00e9voqu\u00e9 un besoin r\u00e9current chez les utilisateurs de Sonar, qui consiste \u00e0 pouvoir fusionner toutes les donn\u00e9es qualitative d\u2019un projet sur l\u2019outil.<br \/>\nEn effet, les m\u00e9triques actuellement agr\u00e9g\u00e9es par Sonar concernent le code source et se rapporte obligatoirement au code source (c\u2019est d\u2019ailleurs un souhait de sonarsource). Cependant lorsque l\u2019on g\u00e8re des m\u00e9triques \u201cruntime\u201d (performances de l\u2019application par exemple), ces m\u00e9triques ne peuvent plus \u00eatre int\u00e9gr\u00e9es \u00e0 Sonar.<br \/>\nFreddy Mallet a r\u00e9pondu \u00e0 cette question en soulignant la diff\u00e9rence d\u2019approche entre Sonar orient\u00e9 code-source \u00a0et des m\u00e9triques \u201cruntime\u201d qui ne peuvent \u00eatre facilement li\u00e9es \u00e0 du code (paquetages, classes, m\u00e9thodes).<br \/>\nOn suivra avec attention les \u00e9volutions de Sonar et surtout son adoption !<\/p><\/div>\n<h3>Les slides<\/h3>\n<p>Les slides sont t\u00e9l\u00e9chargeables opur ceux qui n&rsquo;auraient pu venir et les autres bien s\u00fbr :<br \/>\n<a href='http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/1-Inspection-Continue.pdf'>Inspection Continue<\/a><br \/>\n<a href='http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/12\/2-Les-7-p\u00e9ch\u00e9s-capitaux.pdf'>Les 7 p\u00e9ch\u00e9s capitaux du d\u00e9veloppeur<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une conf\u00e9rence en deux parties : une discussion autour du m\u00e9tier de d\u00e9veloppeur et de la notion de qualit\u00e9 suivie d&rsquo;une d\u00e9monstration de Sonar pour am\u00e9liorer le code produit et le produit en lui-m\u00eame. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[37,370,36,366],"class_list":["post-574","post","type-post","status-publish","format-standard","hentry","category-compte-rendu","tag-agilite","tag-code","tag-qualite","tag-slides"],"_links":{"self":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=574"}],"version-history":[{"count":15,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/574\/revisions"}],"predecessor-version":[{"id":601,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/574\/revisions\/601"}],"wp:attachment":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}