{"id":253,"date":"2023-09-19T08:09:21","date_gmt":"2023-09-19T08:09:21","guid":{"rendered":"https:\/\/www.e-eeasy.com\/?p=253"},"modified":"2023-09-19T08:09:25","modified_gmt":"2023-09-19T08:09:25","slug":"planning-vs-testing-software-development","status":"publish","type":"post","link":"https:\/\/www.e-eeasy.com\/fr\/planning-vs-testing-software-development\/","title":{"rendered":"Planification vs tests \u2013 D\u00e9veloppement de logiciels"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Agile, Scrum, mots fantaisistes pour \u00e9crire un logiciel qui offre<\/h2>\n\n\n\n<p>Quelle que soit la fa\u00e7on dont vous regardez les choses, d\u2019une mani\u00e8re g\u00e9n\u00e9rale, les d\u00e9veloppeurs de logiciels d\u2019applications m\u00e9tier ont une mauvaise r\u00e9putation. Les syst\u00e8mes sont presque in\u00e9vitablement livr\u00e9s en retard, voire pas du tout. L&#039;utilisateur moyen d&#039;une entreprise moyenne passera litt\u00e9ralement des heures chaque semaine \u00e0 se plaindre des syst\u00e8mes informatiques qu&#039;il est oblig\u00e9 de supporter. \u00ab Pourquoi a-t-il fait \u00e7a ? \u00bb, Qu&#039;est-ce que \u00e7a veut dire ? sont quelques-unes des choses que j\u2019entends quotidiennement.  <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>\n\t\tJ&#039;ai pass\u00e9 des ann\u00e9es \u00e0 \u00e9crire des syst\u00e8mes d&#039;entreprise, la plupart des utilisateurs \u00e9taient positifs quant \u00e0 ce qu&#039;ils obtenaient et utilisaient. Des syst\u00e8mes \u00e9crits selon une sp\u00e9cification initiale, test\u00e9s \u00e0 mort puis adapt\u00e9s au fur et \u00e0 mesure des besoins \u00e0 un co\u00fbt convenu si n\u00e9cessaire. Un soutien continu pour le client et des revenus durables pour l&#039;\u00e9diteur de logiciels constituaient une combinaison gagnante. La sp\u00e9cification initiale bas\u00e9e sur une analyse d\u00e9taill\u00e9e des exigences serait toujours un aper\u00e7u fonctionnel et ne contiendrait aucune sp\u00e9cificit\u00e9 du code, je pense que j&#039;ai utilis\u00e9 le pseudo-code une fois (quand j&#039;\u00e9crivais des jeux). \u00ab\u00a0C&#039;est ce dont nous avons besoin\u00a0\u00bb me suffisait g\u00e9n\u00e9ralement. En dehors de cela, il s&#039;agissait de quelques maquettes d&#039;interface utilisateur et de nombreuses conceptions de bases de donn\u00e9es et c&#039;est parti. La phase de test et de \u00ab peaufinage \u00bb du cycle de vie du d\u00e9veloppement \u00e9tait tr\u00e8s importante. Les syst\u00e8mes ont g\u00e9n\u00e9ralement \u00e9t\u00e9 livr\u00e9s \u00e0 temps et ont fonctionn\u00e9.\n\t\t<\/p>\n\n\n\n<p>\n\t\tDe nos jours (je n&#039;aurais jamais pens\u00e9 dire \u00e7a), tout ce qui concerne les syst\u00e8mes est une question de planification, plus de planification et ensuite de r\u00e9utilisabilit\u00e9. Ce qui me semble si \u00e9tranger, c&#039;est qu&#039;une grande partie de cette planification ne vise pas \u00e0 r\u00e9pondre \u00e0 une exigence fonctionnelle mais plut\u00f4t \u00e0 d\u00e9tailler comment et pourquoi nous allons \u00e9crire ce que nous \u00e9crivons lorsque nous l&#039;\u00e9crivons. J&#039;esp\u00e8re que cela a du sens ? Pourquoi \u00e9crire quelque chose en 10 lignes que vous pourriez faire en 1000 au cas o\u00f9 vous \u00ab pourriez \u00bb avoir besoin de le r\u00e9utiliser 2 ans plus tard ? Sur le plan personnel, je n&#039;ai jamais rien \u00e9crit que je ne pourrais r\u00e9\u00e9crire mieux 2 ans plus tard. J&#039;apprends et m&#039;am\u00e9liore toujours, quand je repense \u00e0 du code vieux de 12 mois, je grince souvent des dents. En regardant les offres d&#039;emploi, il est facile de se perdre dans les m\u00e9thodologies et les comp\u00e9tences recherch\u00e9es. Est-il humainement possible qu&#039;une seule personne sache autant de choses que je me demande souvent\u00a0? Une autre question est : produisent-ils un jour un produit ? Avec toute cette planification et cette inqui\u00e9tude quant \u00e0 la r\u00e9utilisation du code, est-ce que quelque chose est fait\u00a0? Je connais une entreprise qui a embauch\u00e9 des d\u00e9veloppeurs universitaires tellement occup\u00e9s \u00e0 se concentrer sur le design qu&#039;elle a fait faillite avant m\u00eame qu&#039;un produit ne soit presque pr\u00eat, s\u00e9rieusement\u00a0! Combien de retards peut-on s\u2019attendre \u00e0 ce que les gens tol\u00e8rent, la phase de test n\u2019y a jamais \u00e9t\u00e9 un probl\u00e8me ! Pourquoi l&#039;entreprise qui nous paie pour un produit devrait-elle payer pour du code qui sera utilis\u00e9 encore et encore dans des projets ult\u00e9rieurs et non pour elle\u00a0?\n\t\t<\/p>\n\n\n\n<p>\n\t\tNe vous m\u00e9prenez pas, je ne dis pas que la planification est mauvaise, c&#039;est une partie essentielle du d\u00e9veloppement des syst\u00e8mes, mais ce n&#039;est pas la seule. Peut-\u00eatre que je suis de la vieille \u00e9cole, mais ce que j&#039;appr\u00e9cie, c&#039;est d&#039;\u00e9crire le syst\u00e8me et de le faire fonctionner. Ok, je sais que les syst\u00e8mes deviennent de plus en plus grands et complexes. Les grandes \u00e9quipes de d\u00e9veloppeurs sont la norme. C&#039;est juste que je pense que peu importe combien vous planifiez, visualisez et r\u00e9fl\u00e9chissez, quelque chose manquera toujours. Nous aspirons \u00e0 des syst\u00e8mes parfaits et impossibles, mais dans le pire des cas, nous ne fournissons aucun syst\u00e8me. Vous ne me croyez pas ? Regardez Microsoft. Imaginez les heures de travail n\u00e9cessaires \u00e0 la planification de l&#039;une de leurs applications\u00a0? \u00c0 quelle fr\u00e9quence un nouveau bug ou une nouvelle vuln\u00e9rabilit\u00e9 est-il d\u00e9couvert\u00a0? Pourquoi n\u2019ont-ils pas \u00e9t\u00e9 examin\u00e9s d\u00e8s la phase de conception ? L\u2019\u00e9quipe de d\u00e9veloppement n\u2019a m\u00eame jamais pens\u00e9 que la \u00ab vuln\u00e9rabilit\u00e9 X \u00bb pourrait se produire. En termes simples, avec autre chose que le syst\u00e8me le plus basique, il est presque impossible de planifier toutes les \u00e9ventualit\u00e9s, aussi logique que vous soyez. Comment se fait-il qu\u2019ils ne soient pas trouv\u00e9s lors des tests ? La solution est-elle ici le d\u00e9veloppement \u00e0 l&#039;ancienne, moins de temps pour la planification (parler), plus de temps pour \u00e9crire et tester\u00a0? Moins de temps \u00e0 vous soucier de la r\u00e9utilisation du code, plus de temps \u00e0 donner au client un produit fonctionnel\u00a0? Microsoft serait-il meilleur ou pire s&#039;il passait moins de temps \u00e0 planifier et plus de temps \u00e0 tester\u00a0? Pour la d\u00e9fense de Microsoft, ils sont tr\u00e8s dou\u00e9s pour les correctifs, je suppose qu&#039;ils pourraient \u00eatre consid\u00e9r\u00e9s comme nous utilisant comme testeurs. Peut-\u00eatre que s&#039;ils passaient plus de temps \u00e0 faire des tests appropri\u00e9s, nous n&#039;aurions pas besoin de les tester\u00a0?\n\t\t<\/p>\n\n\n\n<p>\n\t\tLe pire exemple de planification excessive que je n\u2019ai pas encore rencontr\u00e9 est celui d\u2019un syst\u00e8me financier que j\u2019utilise quotidiennement. La mise en \u0153uvre de ce syst\u00e8me a co\u00fbt\u00e9 des millions de dollars, des ann\u00e9es de planification et qui sait combien de consultants. Il est r\u00e9dig\u00e9 par l&#039;un des plus grands acteurs de l&#039;industrie du logiciel, adapt\u00e9 par un cabinet de conseil sp\u00e9cialis\u00e9 en logiciels. Le r\u00e9sultat final est un syst\u00e8me pratiquement inutilisable et proche d\u2019\u00eatre remplac\u00e9 par un produit du commerce. C&#039;est tellement grave au niveau le plus bas que m\u00eame un clic de souris mal plac\u00e9 bloquera l&#039;application. Je ne peux pas croire que ce syst\u00e8me ait jamais \u00e9t\u00e9 test\u00e9 avant sa remise. Il a \u00e9t\u00e9 livr\u00e9 tr\u00e8s tard, la raison \u00e9tant un \u00ab cycle de planification \u00bb plus long que pr\u00e9vu. Ce qu&#039;il fait n&#039;est pas si complexe, c&#039;est juste qu&#039;il a manifestement \u00e9t\u00e9 planifi\u00e9 \u00e0 un point tel que sa mise en \u0153uvre a \u00e9t\u00e9 pr\u00e9cipit\u00e9e apr\u00e8s r\u00e9flexion. Toute cette planification n&#039;a m\u00eame pas abouti \u00e0 un syst\u00e8me qui r\u00e9pondrait aux exigences fonctionnelles de base de ses utilisateurs, mais je suis s\u00fbr qu&#039;ils r\u00e9utiliseront ce code quelque part plus tard.\n\t\t<\/p>\n\n\n\n<p>\n\t\tQuoi qu&#039;il en soit, je viens de commencer un dipl\u00f4me pour m&#039;aider \u00e0 comprendre pourquoi il est si important d&#039;utiliser plusieurs strat\u00e9gies de planification diff\u00e9rentes. Pourquoi \u00e9crire en 1 jour ce que je pourrais passer un mois \u00e0 faire \u00ab correctement \u00bb ? Je sais que je relis ceci dans quelques ann\u00e9es et je me demande \u00e0 quoi je pensais\u00a0; soit \u00e7a, soit je me dis \u00ab wow, c&#039;est \u00e0 ce moment-l\u00e0 que je finissais ce que j&#039;\u00e9crivais \u00bb. S\u00e9rieusement, je suis s\u00fbr qu&#039;\u00e0 la fin, je r\u00e9aliserai o\u00f9 je me trompe, en attendant, je vais continuer \u00e0 \u00e9crire des applications en utilisant mon style RAD (je suis content qu&#039;il ait un nom !) qui bien que ce ne soit pas du go\u00fbt de tout le monde, cela me convient tr\u00e8s bien.  \n\t\t<br><\/p>\n\n\n\n<p>nb Qui l&#039;aurait devin\u00e9, mon approche du d\u00e9veloppement a un nom, elle est class\u00e9e M\u00e9thodologie Agile ! Voici un excellent article qui explique <a href=\"https:\/\/www.martinfowler.com\/articles\/newMethodology.html\" target=\"_blank\" rel=\"noopener\">M\u00e9thodologies Agiles<\/a> en quelques d\u00e9tails. <\/p>","protected":false},"excerpt":{"rendered":"<p>Agile, Scrum, des mots fantaisistes pour \u00e9crire des logiciels performants Quelle que soit la fa\u00e7on dont vous le regardez, en termes g\u00e9n\u00e9raux, les d\u00e9veloppeurs de logiciels d&#039;applications m\u00e9tier ont une mauvaise r\u00e9putation. Les syst\u00e8mes sont presque in\u00e9vitablement livr\u00e9s en retard, voire pas du tout. L&#039;utilisateur moyen dans une entreprise moyenne passera litt\u00e9ralement des heures chaque semaine \u00e0 se plaindre de [\u2026]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"brand":[],"class_list":["post-253","post","type-post","status-publish","format-standard","hentry","category-articles-faqs"],"_links":{"self":[{"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/posts\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":0,"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/tags?post=253"},{"taxonomy":"brand","embeddable":true,"href":"https:\/\/www.e-eeasy.com\/fr\/wp-json\/wp\/v2\/brand?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}