{"id":73944,"date":"2020-03-13T02:42:03","date_gmt":"2020-03-12T23:42:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo"},"modified":"2020-03-13T02:42:03","modified_gmt":"2020-03-12T23:42:03","slug":"retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","title":{"rendered":"R\u00e9trospective des erreurs. Comment une solution d\u00e9velopp\u00e9e en interne s'est av\u00e9r\u00e9e meilleure qu'une solution payante","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bonjour! Je m'appelle Alexey Pyankov, je suis le principal programmeur de l'entreprise Sportmaster. Je dois dire tout de suite que \u00ab principal \u00bb ne veut pas dire \u00ab le plus important de tous les programmeurs \u00bb, non, c'est juste un titre, une traduction charmante pour \u00ab Senior+\".<\/p>\n<p><\/p>\n<p>Chez Sportmaster, je travaille depuis 2012, et pendant ce temps, l'\u00e9quipe de d\u00e9veloppement a r\u00e9alis\u00e9 de nombreuses solutions int\u00e9ressantes d'un point de vue technique. Mais aujourd'hui, je voudrais parler de notre travail en mettant l'accent sur la mani\u00e8re dont nous avons r\u00e9fl\u00e9chi dans certaines situations ambigu\u00ebs.<\/p>\n<p><\/p>\n<p>Cet article ne contiendra pas de solutions techniques concr\u00e8tes (ni m\u00eame quelque chose de technique) \u00e0 saisir et \u00e0 appliquer dans votre projet. Plut\u00f4t, il s'agit d'une r\u00e9flexion sur le travail accompli. Il y a eu des moments particuliers qui ont affect\u00e9 notre \u00e9quipe \u2014 qui nous ont unis, renforc\u00e9s et mis \u00e0 l'\u00e9preuve. Je vais essayer de parler de ces moments, de l'atmosph\u00e8re de travail en \u00e9quipe, de nos \u00e9cueils et d'un certain nombre de pi\u00e8ges psychologiques dans lesquels nous nous enfermons parfois.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9trospective des erreurs. Comment une solution d\u00e9velopp\u00e9e en interne s&#039;est av\u00e9r\u00e9e meilleure qu&#039;une solution payante\" src=\"\/wp-content\/uploads\/2020\/03\/1651640dbf2cb45d48e1e046a78c931f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Et je vais commencer pr\u00e9cis\u00e9ment par l'ann\u00e9e 2012.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Je suis arriv\u00e9 en 2012 avec l'objectif principal \u00e0 l'\u00e9poque \u2014 travailler sur notre site phare. \u00c0 l'\u00e9poque, c'\u00e9tait un \u00ab monstre de Frankenstein \u00bb : une partie de l'\u00e9quipe travaillait avec notre ancien syst\u00e8me, qui ne g\u00e9rait pas tr\u00e8s bien les charges (Bitrix), tandis qu'une autre partie de l'\u00e9quipe (y compris moi) tentait d'impl\u00e9menter un nouveau syst\u00e8me que nous avions choisi sur le crit\u00e8re \u00ab Puisque c'est le plus cher e-commerce du monde, nous le prenons \u00bb. C'\u00e9tait vraiment \u00ab tenter d'impl\u00e9menter \u00bb \u2014 car le syst\u00e8me r\u00e9sistait fermement, et \u00e0 chaque probl\u00e8me que nous r\u00e9ussissions \u00e0 r\u00e9soudre, un \u00ab surprise \u00bb survenait en r\u00e9ponse. Nous avons beaucoup travaill\u00e9, mais avancions \u00e0 la vitesse d'un escargot.<\/p>\n<p><\/p>\n<p>Pour moi, la goutte d'eau a \u00e9t\u00e9 la d\u00e9couverte du code d'une m\u00e9thode dans ce \u00ab e-commerce le plus cher au monde \u00bb, o\u00f9 des heures de travail acharn\u00e9 sur un bogue complexe ont r\u00e9v\u00e9l\u00e9 que la cause se cachait quelque part dans un custom-tag, qui s'active lors de la g\u00e9n\u00e9ration de HTML dans JSP. La t\u00e2che de ce custom-tag est d'afficher la somme de certaines valeurs. C'est bien, c'est pr\u00e9cis\u00e9ment \u00e0 cela que ce custom-tag est destin\u00e9. Mais la surprise r\u00e9sidait dans le fait que cela modifiait certaines donn\u00e9es dans la base de donn\u00e9es, influen\u00e7ant le comportement des pages suivantes, et si l'on appuyait sur F5, l'appel se r\u00e9p\u00e9tait, ce qui compromettait la coh\u00e9rence des donn\u00e9es. Cela se manifestait de mani\u00e8re si perverse que cela n'apparaissait qu'apr\u00e8s plusieurs \u00e9tapes, \u00e0 la troisi\u00e8me page de la s\u00e9quence. Non, je ne suis pas contre un tel \u00ab ma\u00eetre ninja \u00bb dans l'\u00e9quipe, qui garde l'attention de ses coll\u00e8gues. Mais pas comme \u00e7a, dans la librairie du syst\u00e8me le plus co\u00fbteux !<\/p>\n<p><\/p>\n<p>C'\u00e9tait un vendredi. Nous avons pass\u00e9 le samedi et le dimanche au bureau avec mon coll\u00e8gue pour comprendre quelles t\u00e2ches l'entreprise attendait du syst\u00e8me aujourd'hui et quelles t\u00e2ches elle pourrait imaginer dans un an. Par cons\u00e9quent, comment les r\u00e9soudrions-nous si nous n'\u00e9tions pas coinc\u00e9s dans les limites de ce syst\u00e8me le plus co\u00fbteux et le plus frustrant.<\/p>\n<p><\/p>\n<p>Dit et fait. Nous avons r\u00e9alis\u00e9 un pilote, dans lequel nous avons jet\u00e9 les bases du d\u00e9veloppement du nouveau site de Sportmaster. Beaucoup de ces id\u00e9es ont pris vie et leur poursuite est actuellement activement mise en \u0153uvre sur le site.<\/p>\n<p><\/p>\n<h2 id=\"etapy-pilota-i-vremennye-ramki\">\u00c9tapes du pilote et d\u00e9lais<\/h2>\n<p><\/p>\n<p><strong>2 jours.<\/strong> Nous avons r\u00e9alis\u00e9 un micro-prototype - durant le week-end, nous transf\u00e9rons notre base vers ElasticSearch et cr\u00e9ons une recherche facett\u00e9e. Voil\u00e0 ! Dans ce syst\u00e8me achet\u00e9, un tel param\u00e9trage a pris 2 semaines. Ici, c'est litt\u00e9ralement en quelques heures ! Et cela fonctionne m\u00eame plus rapidement. En fait, c'est beaucoup plus rapide.<\/p>\n<p><\/p>\n<p><strong>2 semaines.<\/strong> Nous d\u00e9veloppons un prototype, ajoutant des fonctionnalit\u00e9s pour un affichage personnalis\u00e9 ad\u00e9quat. <\/p>\n<p><\/p>\n<p>Par exemple, si un utilisateur a plusieurs r\u00e9ductions et promotions qui lui sont sp\u00e9cifiquement destin\u00e9es, alors il faut afficher dans les r\u00e9sultats de recherche sur les produits le prix qu'il peut obtenir en utilisant tous les avantages disponibles de la mani\u00e8re la plus avantageuse.<\/p>\n<p><\/p>\n<p>Avec les promotions, ce n'est pas si simple. Par exemple, j'ai achet\u00e9 des skis, et maintenant j'ai une remise de 40 % sur le bonnet, mais cela annule la remise de 10 % de bienvenue sur toute la commande. Oui, c'est un vrai cas \ud83d\ude42 Et pour configurer une telle promotion dans le syst\u00e8me d'achat, nous avons pay\u00e9 3 consultations avec le fournisseur, au cours desquelles nous avons re\u00e7u de nombreux exemples de diff\u00e9rentes promotions \u00e0 r\u00e9aliser. Tr\u00e8s diplomatiquement et, compte tenu du co\u00fbt des consultations, c'est une bonne \u00e9conomie sur le plan \u00e9conomique.<\/p>\n<p><\/p>\n<p>Nous avons pr\u00e9sent\u00e9 une d\u00e9monstration d\u00e9taill\u00e9e au client. Ils ont promis de rapidement monter un pilote et se sont imm\u00e9diatement mis au travail.<\/p>\n<p><\/p>\n<p><strong>2 mois.<\/strong> Le projet pilote \u2014 nous le r\u00e9alisons sous la forme d'un site web vivant avec recherche dans le catalogue. Recherche avec facettes, r\u00e9sultats de recherche \u2014 avec des remises personnalis\u00e9es, le pilote ressemble presque \u00e0 un site de Sportmaster, et nous avons utilis\u00e9 les m\u00eames produits. Supertop ! <\/p>\n<p><\/p>\n<p>Nous ajoutons \u00ab\u041a\u0440\u0430\u0441\u043d\u043e\u0440\u0435\u0447\u0438\u0435:100\u00bb de notre chef de d\u00e9partement, et la pr\u00e9sentation pour le client se passe \u00e0 merveille ! On nous donne carte blanche pour d\u00e9velopper la plateforme eCommerce nous-m\u00eames.<\/p>\n<p><\/p>\n<p>Et cela signifie, tenez bon les gars, tenez bon les gars, le budget. C'est g\u00e9nial !<\/p>\n<p><\/p>\n<p><strong>2 ans.<\/strong> Mise en production du site. Oui, cela a pris du temps. Tout ce que nous savions faire \u00e0 l'\u00e9poque, nous l'avons seulement essay\u00e9 \u00e0 l'\u00e9chelle du prototype. Deux personnes forment facilement une \u00e9quipe soud\u00e9e. De plus, les t\u00e2ches que nous \u00ab cochions \u00bb \u00e9taient en grande partie de petits ajustements de \u00ab Hello World \u00bb dans de nouvelles technologies. Nous g\u00e9n\u00e9rions facilement de nouvelles hypoth\u00e8ses, les testions rapidement, sans avoir le temps de nous attacher et nous les \u00ab tuions \u00bb donc sans regrets. Quand nous sommes devenus 10 personnes, nous avons par inertie extrapol\u00e9 notre vitesse de travail \u00e0 tous les autres. Et avons promis des d\u00e9lais d'ex\u00e9cution qui \u00e9quivalent \u00e0 une vision du beau multipli\u00e9e par notre enthousiasme.<\/p>\n<p><\/p>\n<p>Situation famili\u00e8re ? \ud83d\ude42<\/p>\n<p><\/p>\n<p>Alors, vous savez d\u00e9j\u00e0 ce qui va suivre ?<\/p>\n<p><\/p>\n<h2 id=\"lovushka-1-ekstrapolyator-krutysh\">Pi\u00e8ge n\u00b01. \u00ab Extrapolateur super cool \u00bb<\/h2>\n<p><\/p>\n<p>Il est clair que les nouvelles technologies ont l'air tr\u00e8s cool dans les pr\u00e9sentations et se comportent tr\u00e8s bien dans des applications de type \u00ab Hello World \u00bb. Mais la r\u00e9alit\u00e9 est g\u00e9n\u00e9ralement un peu diff\u00e9rente.<\/p>\n<p><\/p>\n<p>Alors voil\u00e0. Nous prenons la biblioth\u00e8que, \u00e9crivons une tonne de code applicatif. Nous consid\u00e9rons les tests unitaires comme un fardeau (nous sommes g\u00e9niaux et travaillons \u00e0 la vitesse supersonique ici, le code est moderne et tout le reste). Nous modifions et retouchons constamment l'API \u00e0 la vol\u00e9e \u2014 des tests ? S\u00e9rieusement, quelle blague. Et tout cela sous la banni\u00e8re de \u00ab nous avons super optimis\u00e9 le processus de d\u00e9veloppement \u00bb (oui, maintenant c'est m\u00eame effrayant de le d\u00e9crire).<\/p>\n<p><\/p>\n<p>Et ensuite, c'est assez \u00e9vident.<\/p>\n<p><\/p>\n<p>Nous d\u00e9ployons une nouvelle version sur uat. Les gars du business sont en train de tester tout cela avec enthousiasme et d'appuyer sur les boutons. Parfois, ils le font de mani\u00e8re assez cr\u00e9ative \u2014 quelque chose se casse. Il faudrait aller voir ce qui a \u00e9t\u00e9 fait \u00e0 ce sujet. Mais de l'autre c\u00f4t\u00e9 de l'\u00e9cran, ce n'est pas un testeur acharn\u00e9 qui va te donner toutes les caract\u00e9ristiques de l'environnement en tenant compte de la m\u00e9t\u00e9o dans la r\u00e9gion, mais un client du business. Pour lui, c'est juste \"\u00e7a ne fonctionne pas\". Cela signifie qu'il est m\u00e9content. Demande-lui et il sera <em>terrifi\u00e9<\/em> m\u00e9content !<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9trospective des erreurs. Comment une solution d\u00e9velopp\u00e9e en interne s&#039;est av\u00e9r\u00e9e meilleure qu&#039;une solution payante\" src=\"\/wp-content\/uploads\/2020\/03\/9d980b25fabea5e0a34a428fb9dbb85e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Alors, pour reproduire le bug, il faut y aller et tout tester en passant par les diff\u00e9rentes options. Bien s\u00fbr, nous n'avons n\u00e9glig\u00e9 aucune plainte et nous avons tout corrig\u00e9. Nous avons laiss\u00e9 de c\u00f4t\u00e9 les t\u00e2ches planifi\u00e9es, mais nous avons \"\u00e9teint le feu\".<\/p>\n<p><\/p>\n<p>Ainsi, nous avons creus\u00e9 un nouveau trou.<\/p>\n<p><\/p>\n<h2 id=\"lovushka-2-stahanovec\">Pi\u00e8ge n\u00b02. \"Stakhanoviste\"<\/h2>\n<p><\/p>\n<p>Un bug d\u00e9sagr\u00e9able te tombe dessus. Tu commences \u00e0 creuser. \u00c7a ne fonctionne pas \u2014 col\u00e8re \u2014 tentative de comprendre encore une fois \u2014 nouvelle d\u00e9ception \u2014 tu v\u00e9rifies tout ce que tu peux \u2014 encore pas \u00e7a \u2014 tu penses \u00e0 l'avancement que tu as pris, alors que tout le monde a des enfants et un pr\u00eat \u2014 tu essaies encore \u2014 encore pas \u00e7a. Quelques tasses de caf\u00e9 plus tard, et tout se r\u00e9p\u00e8te. 12-14 heures de travail d'affil\u00e9e \u2014 presque la norme. Et l\u00e0, quand tout est presque au bout du rouleau \u2014 bam, illumination !<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9trospective des erreurs. Comment une solution d\u00e9velopp\u00e9e en interne s&#039;est av\u00e9r\u00e9e meilleure qu&#039;une solution payante\" src=\"\/wp-content\/uploads\/2020\/03\/8f66e2ca834ffafd72bde53fd397bcb7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Peut-\u00eatre qu'en externe, l'\u00e9valuation de l'efficacit\u00e9 d'une telle journ\u00e9e est clairement visible et juste. Mais de l'int\u00e9rieur \u2014 cela peut \u00eatre tr\u00e8s diff\u00e9rent.<\/p>\n<p><\/p>\n<p>Dans mon cas, l'impression de ce travail contenait \"Je suis g\u00e9nial, je suis formidable, j'ai g\u00e9r\u00e9\". Pas toujours de fa\u00e7on consciente, mais inconsciemment \u2014 toujours !<\/p>\n<p><\/p>\n<p>Et tu t'y accroches, sans blague. Il s'av\u00e8re que les m\u00e9triques internes de r\u00e9ussite se d\u00e9placent du r\u00e9sultat vers le nombre d'efforts fournis et le niveau des exploits que tu as r\u00e9alis\u00e9s, \u00e0 quel point tu as souffert en essayant de r\u00e9soudre le probl\u00e8me.<\/p>\n<p><\/p>\n<p>C'est probablement le pi\u00e8ge le plus terrible.<\/p>\n<p><\/p>\n<p>La suite sera plus facile et plus amusante \ud83d\ude42<\/p>\n<p><\/p>\n<h2 id=\"lovushka-3-sila-hello-world\">Pi\u00e8ge n\u00b03. \"La force Hello world\"<\/h2>\n<p><\/p>\n<p>Notre stack technologique de l'\u00e9poque : ElasticSearch, Hazelcast, Pentaho, freemarker (et des classiques comme Java, Spring, Tomcat, nginx). Freemarker ne fournissait pas des messages d'erreur tr\u00e8s informatifs. En revanche, ElasticSearch, Hazelcast et Pentaho ont d\u00fb \u00eatre patch\u00e9s plusieurs fois \u2014 nous avons talentueusement trouv\u00e9 des cas o\u00f9 ils ne fonctionnaient pas comme indiqu\u00e9 dans la documentation.<\/p>\n<p><\/p>\n<p>Un d\u00e9marrage facile et des r\u00e9sultats rapides gr\u00e2ce \u00e0 l'utilisation d'une nouvelle technologie, c'est bien, mais cela engendre une euphorie qui peut r\u00e9duire notre vigilance. Car toute nouvelle technologie comporte des bugs, elle en contient n\u00e9cessairement. Et s'ils n'ont pas encore \u00e9t\u00e9 signal\u00e9s, r\u00e9jouis-toi, c'est \u00e0 toi de devenir le pionnier qui finira par d\u00e9nicher quelque chose de d\u00e9faillant et ira le googler ou chercher sur SO. Bien s\u00fbr, des \u00ab d\u00e9fauts \u00bb peuvent \u00eatre trouv\u00e9s dans des produits \u00e9prouv\u00e9s, mais dans les nouveaux, c'est beaucoup plus facile.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9trospective des erreurs. Comment une solution d\u00e9velopp\u00e9e en interne s&#039;est av\u00e9r\u00e9e meilleure qu&#039;une solution payante\" src=\"\/wp-content\/uploads\/2020\/03\/86d505a5125b8106503497b72ff7761e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Malgr\u00e9 toutes les difficult\u00e9s, nous sommes arriv\u00e9s en production. Oui, avec des latences. Oui, ce n'est pas tr\u00e8s stable. Mais dans l'ensemble, cela s'est bien pass\u00e9 sans catastrophe.<\/p>\n<p><\/p>\n<p>Encore une fois, je vais souligner les pi\u00e8ges qui d\u00e9forment une perception saine du processus de travail.<\/p>\n<p><\/p>\n<ol>\n<li><strong>\u00ab L'extrapolateur g\u00e9nial \u00bb<\/strong>. Impressionn\u00e9s par nos succ\u00e8s actuels, nous extrapolons joyeusement la vitesse de d\u00e9veloppement sur les projets \u00e0 venir.<\/li>\n<li><strong>\u00ab Le Stakhanoviste \u00bb<\/strong>. Nous travaillons sans rel\u00e2che, fiers de nous, mais nous ne r\u00e9alisons pas que les probl\u00e8mes que nous r\u00e9solvons sont le r\u00e9sultat de nos erreurs\/n\u00e9gligences personnelles. Des travaux non effectu\u00e9s.<\/li>\n<li><strong>\u00ab La force de Hello world \u00bb<\/strong>. Nous nous d\u00e9p\u00eachons d'int\u00e9grer tout ce qui est nouveau et int\u00e9ressant en production.<\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"pochemu-vsyo-poluchilos\">Pourquoi cela a fonctionn\u00e9<\/h2>\n<p><\/p>\n<p>Bien s\u00fbr, je n'ai pas mentionn\u00e9 toutes les erreurs que nous avons commises durant cette p\u00e9riode, mais les plus courantes, probables pour tout projet quel qu'il soit. Cette fixation sur les erreurs aide \u00e0 les \u00e9viter \u00e0 l'avenir.<\/p>\n<p><\/p>\n<p>Un peu sur la fa\u00e7on dont nous avons r\u00e9ussi \u00e0 cr\u00e9er un mini-startup au sein de l'entreprise et \u00e0 convaincre le business de quitter un syst\u00e8me d\u00e9j\u00e0 achet\u00e9 pour quelque chose de fait maison.<\/p>\n<p><\/p>\n<p><strong>Condition n\u00b00<\/strong>. Un climat sain au sein de l'entreprise. Cela ne concerne pas seulement les \u00ab yeux brillants \u00bb des employ\u00e9s et la communication dans des conditions stressantes d'acquisition de cookies, non. Cela concerne toutes les interactions.<\/p>\n<p><\/p>\n<p><strong>Condition n\u00b01<\/strong>. Croire en ce que l'on fait. Sinc\u00e8rement, je ne pense pas que nous aurions eu une chance, si nous avions fait un pilote sans d\u00e9monter le syst\u00e8me achet\u00e9 \u00ab jusqu'au boulon \u00bb \u2014 c'est-\u00e0-dire, en nous retirant et en sachant inconsciemment que ce syst\u00e8me est meilleur et nous surclasserait.<\/p>\n<p><\/p>\n<p>Ce que nous avons fait : 1) nous avons compris le syst\u00e8me achet\u00e9, gr\u00e2ce \u00e0 lui nous avons r\u00e9solu les principales requ\u00eates du business 2) nous avons \u00e9tabli une liste de t\u00e2ches qui existent non seulement actuellement, mais aussi dans un avenir proche 3) nous avons s\u00e9lectionn\u00e9 la solution la plus appropri\u00e9e. Ainsi, notre \u00e9valuation de la solution \u00e9tait une \u00e9valuation d'experts.<\/p>\n<p><\/p>\n<p>Nous donnerait-on quelque chose si nous venions simplement et disions : \u00ab les gars, tout va mal, nous ne voulons pas nous en occuper et avons d\u00e9cid\u00e9 de tout recommencer depuis le d\u00e9but \u00bb ? Peu probable. De plus, la r\u00e9ponse serait formul\u00e9e de telle mani\u00e8re que cela resterait bien en m\u00e9moire \ud83d\ude42<\/p>\n<p><\/p>\n<p><strong>Condition n\u00b02<\/strong>. Nous faisons le premier pas petit. Nous g\u00e9n\u00e9rons la premi\u00e8re hypoth\u00e8se et la testons. Vous pouvez y consacrer votre propre temps personnel. Si vous ne voulez pas perdre votre temps, alors cela ne vaut pas la peine de se lancer dans un tel projet. Et si vous ne voulez pas tester une petite hypoth\u00e8se, mais pr\u00e9f\u00e9rez tout faire de mani\u00e8re impressionnante tout de suite, \u00e9loignez-vous de telles personnes !<\/p>\n<p><\/p>\n<p>Nous avons eu de la chance, et la toute premi\u00e8re hypoth\u00e8se a fonctionn\u00e9. Mais cela n'arrive pas toujours. Par exemple, dans un des projets suivants, lorsque nous avons promu le panneau d'administration dans le cadre d'un pilote similaire, seule la 18\u00e8me option a fonctionn\u00e9. Les 17 premi\u00e8res approches n'ont rien donn\u00e9. \u00c0 propos, l'histoire de la cr\u00e9ation du panneau d'administration a eu des rebondissements dignes de feuilletons br\u00e9siliens, car l'\u00e9quipe \u00e9tait compos\u00e9e de gars, d\u00e9j\u00e0 v\u00e9t\u00e9rans \u00e0 l'\u00e9poque, de v\u00e9ritables 'pro'.<\/p>\n<p><\/p>\n<p><strong>Condition n\u00b03<\/strong>. Nous faisons un MVP et cherchons les douleurs du d\u00e9cideur. Bien s\u00fbr, son visage peut d\u00e9j\u00e0 exprimer l'horreur juste par le fait que vous lui apportez encore une nouvelle id\u00e9e pour la trenti\u00e8me fois. Mais peu importe. Et nous devons absolument montrer comment nous r\u00e9solvons ses probl\u00e8mes avec notre produit.<\/p>\n<p><\/p>\n<p><strong>Condition n\u00b04<\/strong>. Nous faisons rapidement un pilote \u00e0 la va-vite, qui ressemble <em>\u00e0 peu pr\u00e8s<\/em> au r\u00e9sultat final. Tout faire parfaitement est tentant, mais cela peut conduire au perfectionnisme, o\u00f9 au lieu d'un pilote, vous souhaitez montrer une version pilote d'un produit d\u00e9j\u00e0 id\u00e9al. Et cela n'existe pas. Alors faites-le au moins avec des b\u00e2tons.<\/p>\n<p><\/p>\n<p><strong>Condition n\u00b05<\/strong>. Produit. Le projet grandit, obtient des financements, des sp\u00e9cialistes viennent avec une solide exp\u00e9rience.<br \/>\nEt si vous \u00eates un startuper classique, c'est le moment o\u00f9 vous devez prendre la fuite. Parce que les vols l\u00e9gers au sommet et la sensation de bien-\u00eatre g\u00e9n\u00e9ral se dissipent rapidement.<\/p>\n<p><\/p>\n<p>Le passage \u00e0 la production signifie faire face \u00e0 de r\u00e9elles charges, int\u00e9grer une dizaine de syst\u00e8mes, et au fur et \u00e0 mesure que vous cr\u00e9ez de nouvelles fonctionnalit\u00e9s, vous continuez \u00e0 perfectionner les anciennes versions. Tous ces d\u00e9fis sont bien plus s\u00e9rieux que d'inventer une id\u00e9e et de r\u00e9soudre, m\u00eame bien, un seul probl\u00e8me client.<\/p>\n<p><\/p>\n<p>Ce sont des d\u00e9fis, et la croissance des comp\u00e9tences se produit pr\u00e9cis\u00e9ment \u00e0 cette \u00e9tape.<\/p>\n<p><\/p>\n<p>Merci de votre lecture. Bon nouveau code !<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/485088\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u044c\u044f\u043d\u043a\u043e\u0432, \u044f \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443, \u0447\u0442\u043e \u00ab\u0433\u043b\u0430\u0432\u043d\u044b\u0439\u00bb \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442 \u00ab\u0441\u0430\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0437 \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\u00bb, \u043d\u0435\u0442, \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0442\u0430\u043a\u043e\u0439 \u043e\u0447\u0430\u0440\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0434\u043b\u044f \u00abSenior+&quot;\u00bb. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441 2012 \u0433\u043e\u0434\u0430, \u0438 \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0441 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u041d\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":73945,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-73944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u044c\u044f\u043d\u043a\u043e\u0432, \u044f \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0430 \u0433\u0440\u0430\u0431\u043b\u0435\u0439. \u041a\u0430\u043a \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043a\u0440\u0443\u0447\u0435 \u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u044c\u044f\u043d\u043a\u043e\u0432, \u044f \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-12T23:42:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-12T23:42:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 R\u00e9trospective des erreurs. Comment une solution sur mesure s'est r\u00e9v\u00e9l\u00e9e meilleure qu'une solution payante | ProHoster","description":"Bonjour ! Je m'appelle Alexey Pyankov, je suis le d\u00e9veloppeur en chef chez Sportmaster.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0430 \u0433\u0440\u0430\u0431\u043b\u0435\u0439. \u041a\u0430\u043a \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043a\u0440\u0443\u0447\u0435 \u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u044c\u044f\u043d\u043a\u043e\u0432, \u044f \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-12T23:42:03+00:00","article:modified_time":"2020-03-12T23:42:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"73944","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:24:23","updated":"2022-10-06 05:35:50","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/73944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=73944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/73944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/73945"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=73944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=73944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=73944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}