{"id":1562,"date":"2009-12-10T08:42:18","date_gmt":"2009-12-10T13:42:18","guid":{"rendered":"http:\/\/analystik.ca\/?p=1562"},"modified":"2017-02-10T15:25:33","modified_gmt":"2017-02-10T20:25:33","slug":"variations-du-cout-de-developpement","status":"publish","type":"post","link":"https:\/\/analystik.ca\/blogue\/language\/fr\/variations-du-cout-de-developpement\/","title":{"rendered":"R\u00e9flexions d\u2019un entrepreneur TI (6) : variations du co\u00fbt de d\u00e9veloppement d\u2019une application"},"content":{"rendered":"<p>C\u2019est la question \u00e0 cent mille balles, comme disent nos amis Fran\u00e7ais\u00a0: combien cela co\u00fbtera-t-il \u00e0 d\u00e9velopper cette application ? \u00a0\u00a0Malheureusement, la r\u00e9ponse n\u2019est jamais simple et jamais unique car il y a mille et un facteurs qui en feront varier le co\u00fbt de d\u00e9veloppement\u2026 dont la m\u00e9thodologie de travail et la notori\u00e9t\u00e9 de l\u2019entreprise soumissionnaire ne sont pas les moindres !<\/p>\n<p>Le client saisit-il bien toutes les subtilit\u00e9s et les implications sur le plan du d\u00e9veloppement logiciel de ses objectifs d\u2019affaires ?\u00a0 Veut-il une couche importante d\u2019Intelligence d\u2019Affaires ?\u00a0 Quelle est la nature et l\u2019\u00e9tat de son environnement TI actuel ?\u00a0 Y a-t-il conflit en perspective ou incompatibilit\u00e9 entre l\u2019application souhait\u00e9e et les syst\u00e8mes \/ applications en place ?\u00a0 Faudra-t-il d\u00e9velopper d\u2019autres applications ou mettre en place d\u2019autres syst\u00e8mes afin d\u2019arrimer cette application ?\u00a0\u00a0 Dans quelle mesure, cette application est-elle critique \u00e0 l\u2019atteinte des objectifs d\u2019affaires\u00a0 de l\u2019entreprise du client et si c\u2019est le cas, devrons-nous remplacer certains syst\u00e8mes en place ou en implanter d\u2019autres ?\u00a0 Devrons-nous optimiser certains processus des applications en place afin d\u2019harmoniser l\u2019interaction avec l\u2019application d\u00e9velopp\u00e9e ? \u00a0Quelle m\u00e9thodologie le d\u00e9veloppeur utilisera-t-il ?\u00a0 Quelle est l\u2019architecture retenue ?<\/p>\n<p>S\u2019agit-il d\u2019un billet sur la Gestion de Projets ?\u00a0 Loin de l\u00e0. \u00a0Et Dieu sait que la gestion de Projets a fait couler beaucoup d\u2019encre en TI depuis une d\u00e9cennie et que cela m\u00e9riterait toute une s\u00e9rie de billets en soi\u2026 que nous ferons peut-\u00eatre en 2010.\u00a0 Mais pour les besoins de ce billet, nous prendrons pour acquis que tous les d\u00e9veloppeurs appliquent de bonne pratique en mati\u00e8re de Gestion de Projets.<\/p>\n<p><!--more--><\/p>\n<p>La liste des facteurs et possibilit\u00e9s ayant un impact sur le co\u00fbt de d\u00e9veloppement pourrait s\u2019allonger pendant longtemps; cependant, j\u2019ai pris le parti de faire le tour de la question, ne serait-ce que sommairement et ce, pour le b\u00e9n\u00e9fice de tous ces clients qui nous font confiance malgr\u00e9 le doute qui subsiste en leur esprit. Alors, quels sont les facteurs qui expliquent \/ justifient les variations de co\u00fbt de d\u00e9veloppement d\u2019une application TI ?<\/p>\n<h3>Variations libres sur un th\u00e8me de D\u00e9veloppement d\u2019une application TI<\/h3>\n<h4>Taille de l\u2019\u00e9quipe de d\u00e9veloppement<\/h4>\n<p>Bien s\u00fbr qu\u2019il y a un rapport assez direct entre le nombre de jours\/homme et le co\u00fbt de d\u00e9veloppement d\u2019une application mais disons que c\u2019est un peu plus subtil que cela.<\/p>\n<p>Le rapport entre le co\u00fbt de d\u00e9veloppement et le nombre de ressources utilis\u00e9es n\u2019est pas directement proportionnel mais ob\u00e9it plut\u00f4t \u00e0 une courbe en palier; en ce sens, que deux ressources qui font 25 heures de d\u00e9veloppement produiront moins qu\u2019une ressource qui fait 50 heures de d\u00e9veloppement et ce, parce qu\u2019en 50 heures, la ressource aura eu le temps de plonger profond\u00e9ment dans le code et de bien s\u2019en impr\u00e9gner jusqu\u2019\u00e0 entrevoir, puis d\u00e9couvrir et saisir les subtilit\u00e9s et d\u00e9fis de programmation de l\u2019application souhait\u00e9e, ce qui ne sera pas n\u00e9cessairement le cas des deux ressources \u00e0 25 heures !!!<\/p>\n<p>Un autre ph\u00e9nom\u00e8ne favorise la cr\u00e9ation du premier palier, soit lorsque le nombre de d\u00e9veloppeurs sera suffisamment grand qu\u2019il requerra un niveau de Gestionnaires; ce qui augmentera les co\u00fbts mais n\u2019augmentera pas d\u2019autant la productivit\u00e9, enfin, pas proportionnellement.<\/p>\n<h4><strong>Technologie utilis\u00e9e<\/strong> (C# \/ Flex \/ Java \/ Ruby-on-Rails \/ Python)<\/h4>\n<p>Qu\u2019y a-t-il \u00e0 dire, vous \u00eates Open Source ou pas !\u00a0 Vous ne jurez que par Microsoft, c\u2019est tout aussi bon; \u00e0 vous de voir !\u00a0 Chaque technologie a son champ d\u2019application privil\u00e9gi\u00e9 et ses avantages. Que ce soit une technologie plus jeune demandera habituellement une expertise particuli\u00e8re et augmentera le co\u00fbt de d\u00e9veloppement et d&rsquo;entrerien.<\/p>\n<h4><strong>Documentation<\/strong><\/h4>\n<p>Il faut documenter, on ne saurait assez le dire et le redire ! \u00a0Et malgr\u00e9 cela, on trouve encore nombre d\u2019applications non-document\u00e9es en entreprise et dont l\u2019entretien sera extr\u00eamement co\u00fbteux. \u00a0Pourquoi ?\u00a0 Parce qu\u2019il faudra deviner.\u00a0 Et oui, voil\u00e0 pourquoi la documentation est si importante; une application non document\u00e9e peut co\u00fbter de 2 \u00e0 3 fois plus cher \u00e0 entretenir.\u00a0 Cela prend du temps mais il est imp\u00e9ratif \u00a0de bien documenter \u00e0 deux niveaux et au moins sur les items ci-dessus\u00a0:<\/p>\n<h5>&#8211; technologie<\/h5>\n<ul>\n<li>structure de donn\u00e9es<\/li>\n<li>architecture<\/li>\n<li>OS vs Code<\/li>\n<li>relations<\/li>\n<\/ul>\n<h5>&#8211; usager<\/h5>\n<ul>\n<li>administrateurs<\/li>\n<li>droits et privil\u00e8ges<\/li>\n<li>intrants \/extrants (I\/O)<\/li>\n<li>fonctions et processus<\/li>\n<\/ul>\n<h4><strong>M\u00e9thodologie de D\u00e9veloppement<\/strong><\/h4>\n<p>Outre l\u2019envergure et le calibre de l\u2019entreprise (Agile, CMMI, etc.) de d\u00e9veloppement logiciel, la qualit\u00e9 du personnel compte tout autant car elle d\u00e9terminera sa productivit\u00e9 et le co\u00fbt de d\u00e9veloppement.<\/p>\n<h5>&#8211; productivit\u00e9 de l\u2019\u00e9quipe de d\u00e9veloppement<\/h5>\n<ul>\n<li>comp\u00e9tences<\/li>\n<li>exp\u00e9rience<\/li>\n<li>motivation<\/li>\n<li>contrat de travail (syndicalisation)<\/li>\n<\/ul>\n<h4>Contrainte de S\u00e9curit\u00e9<\/h4>\n<p>Cet aspect est aussi souvent n\u00e9glig\u00e9 mais il est extr\u00eamement critique \u00e0 la survie de l\u2019entreprise en cas de d\u00e9sastre. Ainsi, il faut du temps pour identifier les exigences minimales au bon fonctionnement de l\u2019entreprise et pr\u00e9voir les proc\u00e9dures correspondantes.<\/p>\n<h5>&#8211; proc\u00e9dures de r\u00e9cup\u00e9ration en cas de d\u00e9sastre<\/h5>\n<ul>\n<li>exigences minimales de r\u00e9cup\u00e9ration des donn\u00e9es<\/li>\n<li>exigences minimales de r\u00e9cup\u00e9ration des syst\u00e8mes<\/li>\n<li>alertes, consignes et proc\u00e9dures de r\u00e9installation<\/li>\n<\/ul>\n<h4><strong>Architecture utilis\u00e9e<\/strong><\/h4>\n<p>Cette d\u00e9cision, ce choix technologique est on ne peut plus critique et nous reviendrons sur le sujet dans un autre billet mais sommairement; voici quelques crit\u00e8res qui auront un impact sur le co\u00fbt de d\u00e9veloppement de votre application :<\/p>\n<ul>\n<li>protocole de communication<\/li>\n<li>design technologique<\/li>\n<li>nb. de couches utilis\u00e9es<\/li>\n<li>application orient\u00e9e service ou orient\u00e9e objet<\/li>\n<\/ul>\n<h4><strong>Erreurs de conception technologique<\/strong><\/h4>\n<p>Il y a peu \u00e0 dire sur ce plan.\u00a0 Choisissez des fournisseurs TI qui ont l\u2019expertise du type d\u2019applications que vous recherchez, une m\u00e9thodologie \u00e9prouv\u00e9e, l\u2019exp\u00e9rience de votre secteur d\u2019activit\u00e9s et la capacit\u00e9 de production requise. \u00a0Et rappelez-vous, si le deal est trop bon, vous en paierez le v\u00e9ritable prix\u2026 plus tard.<\/p>\n<h4><strong>Bonne compr\u00e9hension des besoins<\/strong><\/h4>\n<p>Cet aspect fait souvent d\u00e9faut aux projets qui sont confi\u00e9s \u00e0 des ressources \u00ab\u00a0off-shore\u00a0\u00bb, quand il ne se fait pas une lacune grave, parce que ces derni\u00e8res ne partagent pas la m\u00eame culture et ce faisant, peuvent difficilement comprendre la r\u00e9alit\u00e9 d\u2019affaires des entreprises d\u2019ici.<\/p>\n<h3><strong>CONCLUSION SUR LE CO\u00dbT DE D\u00c9VELOPPEMENT<\/strong><\/h3>\n<p>Y a-t-il une r\u00e8gle d\u2019or au D\u00e9veloppement logiciel ?\u00a0 S\u2019il y en avait une, tout le monde le saurait\u2026 et l\u2019appliquerait !\u00a0 Cependant, tout le monde s\u2019entend pour dire que la m\u00e9thodologie de d\u00e9veloppement \u00ab\u00a0<strong><em>Agile<\/em><\/strong> \u00bb se veut une <span style=\"text-decoration: underline;\">garantie de productivit\u00e9<\/span> et que le <strong>mod\u00e8le CMMI<\/strong> est la norme <strong>ISO 9001<\/strong> du D\u00e9veloppement logiciel.\u00a0 Nous le savons, puisque chez Analystik, nous avons implant\u00e9 la <strong>m\u00e9thodologie<\/strong> <em>Agile<\/em> et nous venons tout juste de terminer un programme de certification <strong>CMMI<\/strong>, <em>niveau 3<\/em>.<\/p>\n<p>On peut toutefois aussi tirer certaines conclusions bas\u00e9es sur des ann\u00e9es d\u2019exp\u00e9rience pratique et de cas r\u00e9els. En toute humilit\u00e9, voici donc ma r\u00e8gle d\u2019or :<\/p>\n<p><em>D\u00e9terminez la taille de la plus petite \u00e9quipe fonctionnelle (capable de produire des livrables pour approbation client), reproduisez cette \u00e9quipe en autant de copies requises par l\u2019ampleur du projet, d\u00e9cloisonnez votre espace de travail afin de favoriser la bonne communication entre vos \u00e9quipes. Ajoutez un Gestionnaire de Projets \u00e0 toutes les 3-4 \u00e9quipes. <\/em><\/p>\n<p>Bonne semaine,<\/p>\n<p align=\"right\"><a href=\"mailto:michel.martel@analystik.ca\"><strong><em>Michel<\/em><\/strong><\/a> <em>et <\/em><a href=\"mailto:denis@analystik.ca\"><strong><em>Denis<\/em><\/strong><\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>C\u2019est la question \u00e0 cent mille balles, comme disent nos amis Fran\u00e7ais\u00a0: combien cela co\u00fbtera-t-il \u00e0 d\u00e9velopper cette application ? \u00a0\u00a0Malheureusement, la r\u00e9ponse n\u2019est jamais simple et jamais unique car il y a mille et un facteurs qui en feront varier le co\u00fbt de d\u00e9veloppement\u2026 dont la m\u00e9thodologie de travail et la notori\u00e9t\u00e9 de l\u2019entreprise&#8230;  <a class=\"excerpt-read-more\" href=\"https:\/\/analystik.ca\/blogue\/language\/fr\/variations-du-cout-de-developpement\/\" title=\"Read R\u00e9flexions d\u2019un entrepreneur TI (6) : variations du co\u00fbt de d\u00e9veloppement d\u2019une application\">Read more &raquo;<\/a><!-- AddThis Advanced Settings generic via filter on wp_trim_excerpt --><!-- AddThis Share Buttons generic via filter on wp_trim_excerpt --><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"R\u00e9flexions : variations du co\u00fbt de d\u00e9veloppement d\u2019une application TI","_seopress_titles_desc":"Nous nous concentrerons principalement sur le d\u00e9veloppement et les cons\u00e9quences li\u00e9es aux co\u00fbt de d\u00e9veloppement d'une application Ti.","_seopress_robots_index":"","content-type":"","footnotes":""},"categories":[3361,3359,3363,36,3377,3371],"tags":[2279,2776,2863,2257,2886,1323,1882,1327,786,2192],"better_featured_image":null,"_links":{"self":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts\/1562"}],"collection":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/comments?post=1562"}],"version-history":[{"count":4,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts\/1562\/revisions"}],"predecessor-version":[{"id":11119,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/posts\/1562\/revisions\/11119"}],"wp:attachment":[{"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/media?parent=1562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/categories?post=1562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/analystik.ca\/blogue\/wp-json\/wp\/v2\/tags?post=1562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}