{"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\/ro\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","title":{"rendered":"Retrospectiva capriciilor. Cum o solu\u021bie personalizat\u0103 s-a dovedit mai bun\u0103 dec\u00e2t una pl\u0103tit\u0103","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bun\u0103! M\u0103 numesc Alexey Pyankov, sunt programatorul principal la compania Sportmaster. Voi spune imediat c\u0103 \u201eprincipal\u201d nu \u00eenseamn\u0103 \u201ecel mai important dintre to\u021bi programatorii\u201d, nu, este doar un titlu, o traducere \u00eenc\u00e2nt\u0103toare pentru \u201eSenior+\".<\/p>\n<p><\/p>\n<p>La compania Sportmaster lucrez din 2012, iar \u00een acest timp echipa de dezvoltare a realizat multe solu\u021bii interesante din punct de vedere tehnic. Dar ast\u0103zi a\u0219 dori s\u0103 povestesc despre munca noastr\u0103, pun\u00e2nd accent pe modul \u00een care am reflectat asupra unor situa\u021bii dificile.<\/p>\n<p><\/p>\n<p>\u00cen acest articol nu vor fi solu\u021bii tehnice specifice (\u0219i, de fapt, nimic tehnic) pe care s\u0103 le lua\u021bi \u0219i s\u0103 le aplica\u021bi \u00een proiectul vostru. Mai degrab\u0103, este o reflec\u021bie asupra muncii realizate. Au fost momente speciale care ne-au influen\u021bat ca echip\u0103 \u2014 ne-au unit, ne-au \u00eent\u0103rit \u0219i ne-au testat rezisten\u021ba. Despre aceste momente, despre atmosfera de lucru \u00een echip\u0103, despre capcanele noastre \u0219i o serie de capcane psihologice \u00een care ne c\u0103dem uneori singuri, voi \u00eencerca s\u0103 povestesc ast\u0103zi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospectiva capriciilor. Cum o solu\u021bie personalizat\u0103 s-a dovedit mai bun\u0103 dec\u00e2t una pl\u0103tit\u0103\" src=\"\/wp-content\/uploads\/2020\/03\/1651640dbf2cb45d48e1e046a78c931f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0218i voi \u00eencepe exact cu anul 2012.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Am venit \u00een 2012 cu scopul principal pe atunci \u2014 s\u0103 lucrez la site-ul nostru emblematic. La acea vreme era un \u201emonstru Frankenstein\u201d: o parte a echipei lucra cu sistemul nostru vechi, care nu f\u0103cea fa\u021b\u0103 foarte bine sarcinilor (Bitrix), \u00een cealalt\u0103 parte a echipei (din care f\u0103ceam \u0219i eu parte) \u00eencercam s\u0103 implement\u0103m un nou sistem, pe care l-am ales pe criteriul \u201eDac\u0103 este cel mai scump e-commerce din lume, \u00eel lu\u0103m\u201d. Anume \u201e\u00eencercam s\u0103 implement\u0103m\u201d \u2014 pentru c\u0103 sistemul se opunea cu disperare, iar pentru fiecare problem\u0103 la care reu\u0219eam s\u0103 g\u0103sim o solu\u021bie, ap\u0103rea cu siguran\u021b\u0103 un \u201esurpriz\u0103\u201d ca r\u0103spuns. Am muncit mult, dar avansam cu viteza unei melci.<\/p>\n<p><\/p>\n<p>Pentru mine, ultimul strop a fost \u00eent\u00e2lnirea cu codul unei metode din aceast\u0103 \u201ecea mai scump\u0103 e-commerce din lume\u201d, c\u00e2nd c\u00e2teva ore de munc\u0103 concentrat\u0103 asupra unei erori complicate au dus la descoperirea c\u0103 problema se afla undeva \u00een custom-tag, care este activat \u00een timpul gener\u0103rii html \u00een jsp. Sarcina acestui custom-tag este de a afi\u0219a suma unor valori. Este bine, pentru asta este destinat acest custom-tag. Dar surpriza s-a ascuns \u00een faptul c\u0103, \u00een acest proces, unele date din baza de date sunt modificate, iar acest lucru afecteaz\u0103 comportamentul pe paginile urm\u0103toare, \u0219i dac\u0103 ap\u0103sa\u021bi F5 \u2014 apelul se repet\u0103, afect\u00e2nd consisten\u021ba datelor. \u0218i se deteriora \u00een a\u0219a fel \u00eenc\u00e2t ap\u0103rea doar dup\u0103 c\u00e2teva pa\u0219i, pe a 3-a pagin\u0103 din secven\u021b\u0103. Nu, nu am nimic \u00eempotriva unui \u201emaestru-ninja\u201d \u00een echip\u0103 care s\u0103 \u00ee\u0219i men\u021bin\u0103 colegii \u00een form\u0103 cu codul s\u0103u. Dar nu a\u0219a, \u00een biblioteca celei mai scumpe sisteme!<\/p>\n<p><\/p>\n<p>A fost vineri. Iar s\u00e2mb\u0103ta \u0219i duminica le-am petrecut cu un coleg \u00een birou, av\u00e2nd ca scop s\u0103 \u00een\u021belegem ce provoc\u0103ri are business-ul pentru sistem chiar ast\u0103zi \u0219i ce provoc\u0103ri ar putea imagina peste un an. Respectiv, cum le-am rezolva dac\u0103 nu am fi constr\u00e2n\u0219i de utilizarea acestei celei mai scumpe \u0219i celei mai frustrante sisteme.<\/p>\n<p><\/p>\n<p>S-a spus \u2014 s-a f\u0103cut. Am realizat un pilot, \u00een care am pus funda\u021bia pentru dezvoltarea noului site Sportmaster. Multe dintre aceste idei s-au concretizat \u0219i chiar acum continuarea lor este activ pe site.<\/p>\n<p><\/p>\n<h2 id=\"etapy-pilota-i-vremennye-ramki\">Etapele pilotului \u0219i termenele limit\u0103<\/h2>\n<p><\/p>\n<p><strong>2 zile.<\/strong> Am realizat un microprototip \u2014 \u00een weekend am transformat baza noastr\u0103 \u00een ElasticSearch, am realizat c\u0103utare facete. Voil\u00e0! \u00cen acea sistem cump\u0103rat\u0103, o astfel de configurare a \u201em\u00e2ncat\u201d 2 s\u0103pt\u0103m\u00e2ni. Aici \u2014 literalmente \u00een c\u00e2teva ore! \u0218i func\u021bioneaz\u0103 mai rapid. Mai rapid cu un ordin.<\/p>\n<p><\/p>\n<p><strong>2 s\u0103pt\u0103m\u00e2ni.<\/strong> \u201eCre\u0103m\u201d prototipul, ad\u0103ug\u0103m func\u021bionalit\u0103\u021bi pentru o livrare personalizat\u0103 adecvat\u0103. <\/p>\n<p><\/p>\n<p>De exemplu, utilizatorul are mai multe reduceri \u0219i oferte care sunt valabile pentru el \u2014 atunci, \u00een rezultatele c\u0103ut\u0103rii produselor, trebuie s\u0103 fie afi\u0219at\u0103 exact acea pre\u021b, pe care o poate ob\u021bine aplic\u00e2nd toate beneficiile disponibile \u00een cel mai avantajos mod.<\/p>\n<p><\/p>\n<p>Cu promo\u021biile nu e chiar at\u00e2t de simplu. De exemplu, am cump\u0103rat schiuri, acum am 40% reducere la c\u0103ciul\u0103, dar se anuleaz\u0103 discountul de bun venit de 10% la toat\u0103 comanda. Da, da, acesta este un caz real \ud83d\ude42 \u0218i pentru a configura o astfel de promo\u021bie \u00een sistemul de achizi\u021bii, s-au pl\u0103tit 3 consultan\u021be cu furnizorul, rezult\u00e2nd \u00een multe exemple de cum s\u0103 facem diferite alte oferte. Foarte diplomatic \u0219i, av\u00e2nd \u00een vedere costul consultan\u021belor \u2014 foarte bine din punct de vedere economic.<\/p>\n<p><\/p>\n<p>Am ar\u0103tat o demo detaliat\u0103 afacerii. Au promis s\u0103 preg\u0103teasc\u0103 rapid un proiect pilot \u0219i au trecut imediat la treab\u0103.<\/p>\n<p><\/p>\n<p><strong>2 luni.<\/strong> Proiectul pilot \u2014 \u00eel facem sub forma unui site live cu c\u0103utare \u00een catalog. C\u0103utare cu facete, rezultatele c\u0103ut\u0103rii \u2014 cu discounturi personale, pilotul arat\u0103 aproape ca site-ul Sportmaster, iar produsele sunt exact cele pe care le-am urcat. O desf\u0103tare! <\/p>\n<p><\/p>\n<p>Ad\u0103ug\u0103m \u201eCunoa\u0219tere:100\u201d \u0219efului nostru de departament, iar prezentarea afacerii decurge minunat! Ni se d\u0103 liber s\u0103 dezvolt\u0103m singuri platforma eCommerce.<\/p>\n<p><\/p>\n<p>Asta \u00eenseamn\u0103, p\u0103stra\u021bi-v\u0103, b\u0103ie\u021bi, echipa, p\u0103stra\u021bi-v\u0103, b\u0103ie\u021bi, bugetul. E grozav, nu?<\/p>\n<p><\/p>\n<p><strong>2 ani.<\/strong> Lansarea site-ului \u00een produc\u021bie. Da, a durat mult. Tot ce \u0219tiam atunci, am \u00eencercat doar la scala prototipului. Dou\u0103 persoane formeaz\u0103 u\u0219or o echip\u0103 bine coordonat\u0103. Iar sarcinile pe care le \u201ebifam\u201d \u2014 \u00een mare parte erau mici ajust\u0103ri ale \u201eHello World\u201d \u00een noi tehnologii. Generam u\u0219or noi ipoteze, le verificam rapid, f\u0103r\u0103 s\u0103 ne ata\u0219\u0103m \u0219i, prin urmare, f\u0103r\u0103 regrete le \u201eanihilam\u201d. C\u00e2nd am fost 10 persoane, \u00een mod inert, am extrapolat viteza noastr\u0103 de lucru la to\u021bi ceilal\u021bi. \u0218i am promis termene de execu\u021bie a sarcinilor, care sunt egale cu viziunea despre frumos \u00eenmul\u021bit\u0103 cu entuziasmul nostru.<\/p>\n<p><\/p>\n<p>O situa\u021bie cunoscut\u0103? \ud83d\ude42<\/p>\n<p><\/p>\n<p>Atunci, \u0219ti\u021bi deja ce va urma?<\/p>\n<p><\/p>\n<h2 id=\"lovushka-1-ekstrapolyator-krutysh\">Capcana nr. 1. \u201eExtrapolatorul grozav\u201d<\/h2>\n<p><\/p>\n<p>E clar c\u0103 noile tehnologii arat\u0103 foarte bine \u00een prezent\u0103ri \u0219i se comport\u0103 excelent \u00een aplica\u021biile de tip \u201eHello World\u201d. Dar realitatea de obicei se afl\u0103 pu\u021bin mai departe de asta.<\/p>\n<p><\/p>\n<p>A\u0219adar. Lu\u0103m biblioteca, scriem o gr\u0103mad\u0103 de cod aplicativ. Consider\u0103m testele unitare o povar\u0103 (suntem grozavi \u0219i muncim la viteze supersonice, codul e modern \u0219i a\u0219a mai departe). Schimb\u0103m constant \u0219i \u00eembun\u0103t\u0103\u021bim API-ul pe parcurs \u2014 serios, ce teste s\u0103 facem aici. \u0218i toate acestea sub steagul \u201eam optimizat procesul de dezvoltare\u201d (da, acum e terifiant s\u0103 descriu asta).<\/p>\n<p><\/p>\n<p>\u0218i mai departe, totul devine destul de evident.<\/p>\n<p><\/p>\n<p>Lans\u0103m o nou\u0103 versiune pe uat. Colegii din afaceri sunt foarte activi \u00een testarea acestui lucru \u0219i \u00een ap\u0103sarea butoanelor. Apas\u0103 uneori destul de creativ - ceva se opre\u0219te. Ar trebui s\u0103 mergem s\u0103 afl\u0103m ce s-a f\u0103cut pentru asta. Dar de cealalt\u0103 parte a monitorului nu se afl\u0103 un tester care s\u0103 \u00ee\u021bi ofere toate caracteristicile mediu, lu\u00e2nd \u00een considerare vremea din regiune, ci clientul din afaceri. El are pur \u0219i simplu un \u201enu func\u021bioneaz\u0103\u201d. Asta \u00eenseamn\u0103 c\u0103 nu este mul\u021bumit. \u00centreab\u0103-l - \u0219i el va <em>fi<\/em> nemul\u021bumit!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospectiva capriciilor. Cum o solu\u021bie personalizat\u0103 s-a dovedit mai bun\u0103 dec\u00e2t una pl\u0103tit\u0103\" src=\"\/wp-content\/uploads\/2020\/03\/9d980b25fabea5e0a34a428fb9dbb85e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Atunci, pentru a reproduce bug-ul, trebuie s\u0103 mergi \u0219i s\u0103 verifici totul prin \u00eencerc\u0103ri. Desigur, nu am ignorat nicio pl\u00e2ngere \u0219i am rezolvat totul. Am abandonat sarcinile planificate, dar \u201estingea incendiul\u201d.<\/p>\n<p><\/p>\n<p>A\u0219a c\u0103 ne-am s\u0103pat urm\u0103toarea gropi\u021b\u0103.<\/p>\n<p><\/p>\n<h2 id=\"lovushka-2-stahanovec\">Capcana nr. 2. \u201eStahanovistul\u201d<\/h2>\n<p><\/p>\n<p>\u00ce\u021bi apare un bug nepl\u0103cut. \u00cencepi s\u0103 te descurci. Nu reu\u0219e\u0219ti - \u00eencepe sup\u0103rarea - \u00eencerci din nou - doboara iar - clarifici tot ce se poate - din nou nu este corect - te g\u00e2nde\u0219ti c\u0103 e\u0219ti deja b\u0103tr\u00e2n \u0219i toat\u0103 lumea are copii \u0219i ipoteci - \u00eencerci din nou - din nou nu este corect. C\u00e2teva c\u0103ni de cafea mai t\u00e2rziu, \u0219i totul se repet\u0103. 12-14 ore de munc\u0103 continuu - aproape ca o norm\u0103. \u0218i c\u00e2nd totul pare s\u0103 fie la limita - bam, o revela\u021bie!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospectiva capriciilor. Cum o solu\u021bie personalizat\u0103 s-a dovedit mai bun\u0103 dec\u00e2t una pl\u0103tit\u0103\" src=\"\/wp-content\/uploads\/2020\/03\/8f66e2ca834ffafd72bde53fd397bcb7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Poate, din exterior, evaluarea eficien\u021bei unei zile de acest gen se vede bine \u0219i corect. Dar din interior - poate fi diferit.<\/p>\n<p><\/p>\n<p>\u00cen cazul meu, impresia muncii de acest tip con\u021binea \u201eSunt grozav, sunt fain, am reu\u0219it\u201d. Nu \u00eentotdeauna con\u0219tient, dar incon\u0219tient - \u00eentotdeauna!<\/p>\n<p><\/p>\n<p>\u0218i te ata\u0219ezi de asta, f\u0103r\u0103 glume. Se pare c\u0103 metricile interne de succes se mut\u0103 de la rezultat la cantitatea de efort depus \u0219i nivelul de acte de bravur\u0103 pe care le-ai realizat, c\u00e2t de mult ai suferit \u00eencerc\u00e2nd s\u0103 rezolvi o problem\u0103.<\/p>\n<p><\/p>\n<p>Probabil, aceasta este cea mai \u00eenfrico\u0219\u0103toare capcan\u0103.<\/p>\n<p><\/p>\n<p>Mai departe va fi mai u\u0219or \u0219i mai distractiv \ud83d\ude42<\/p>\n<p><\/p>\n<h2 id=\"lovushka-3-sila-hello-world\">Capcana nr. 3. \u201ePuterea Hello world\u201d<\/h2>\n<p><\/p>\n<p>Tehnologiile noastre din acea perioad\u0103: ElasticSearch, Hazelcast, Pentaho, freemarker (\u0219i Java, Spring, Tomcat, nginx bine testate). Freemarker oferea mesaje de eroare destul de pu\u021bin informative. \u00cen schimb, ElasticSearch, Hazelcast, Pentaho a trebuit s\u0103 fie patch-uite de mai multe ori - am g\u0103sit cu talent cazuri \u00een care acestea nu func\u021bionau conform documenta\u021biei.<\/p>\n<p><\/p>\n<p>Un \u00eenceput u\u0219or \u0219i pr\u0103jituri rapide datorit\u0103 utiliz\u0103rii unei noi tehnologii sunt grozave, dar acestea creeaz\u0103 o stare de euforie \u0219i scad vigilen\u021ba. Pentru c\u0103 noua tehnologie con\u021bine erori, cu siguran\u021b\u0103 con\u021bine erori. \u0218i dac\u0103 nu au fost \u00eenc\u0103 raportate - bucur\u0103-te, exact tu e\u0219ti cel care trebuie s\u0103 devin\u0103 pionierul care va descoperi ceva gre\u0219it \u0219i va merge s\u0103 caute pe Google sau pe SO. Desigur, este posibil s\u0103 g\u0103se\u0219ti \u201egre\u0219eli\u201d \u00een produsele verificate, dar \u00een cele noi este mult mai u\u0219or.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospectiva capriciilor. Cum o solu\u021bie personalizat\u0103 s-a dovedit mai bun\u0103 dec\u00e2t una pl\u0103tit\u0103\" src=\"\/wp-content\/uploads\/2020\/03\/86d505a5125b8106503497b72ff7761e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cu toate dificult\u0103\u021bile, am ajuns \u00een produc\u021bie. Da, cu \u00eent\u00e2rziere. Da, nu foarte stabil. Dar, \u00een general, nu am avut catastrofe.<\/p>\n<p><\/p>\n<p>Deci, \u00eenc\u0103 o dat\u0103, voi sublinia capcanele \u00een care se distorsioneaz\u0103 percep\u021bia s\u0103n\u0103toas\u0103 a procesului de munc\u0103.<\/p>\n<p><\/p>\n<ol>\n<li><strong>\u00abExtrapolatorul cool\u00bb<\/strong>. Sub impresia succeselor actuale, continu\u0103m \u0219i extrapol\u0103m cu bucurie viteza de dezvoltare pentru proiectele viitoare.<\/li>\n<li><strong>\u00abStahanovistul\u00bb<\/strong>. Lucr\u0103m p\u00e2n\u0103 la epuizare, suntem mul\u021bumi\u021bi de noi \u00een\u0219ine, dar nu observ\u0103m c\u0103 problemele pe care le solu\u021bion\u0103m sunt rezultatul gre\u0219elilor \/ neaten\u021biilor \/ neglijen\u021belor noastre personale. Lucruri care nu trebuie f\u0103cute.<\/li>\n<li><strong>\u00abPuterea Hello world\u00bb<\/strong>. Ne gr\u0103bim s\u0103 implement\u0103m \u00een produc\u021bie tot ceea ce este nou \u0219i interesant.<\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"pochemu-vsyo-poluchilos\">De ce a func\u021bionat totul<\/h2>\n<p><\/p>\n<p>Desigur, nu am enumerat toate gre\u0219elile pe care le-am avut \u00een acest timp, dar cele mai comune, probabile pentru un proiect de orice specificitate. O astfel de fixare a gre\u0219elilor ajut\u0103 la evitarea lor \u00een viitor.<\/p>\n<p><\/p>\n<p>Pu\u021bin despre cum am reu\u0219it s\u0103 cre\u0103m un astfel de mini-startup \u00een interiorul companiei \u0219i s\u0103 convingem afacerea s\u0103 renun\u021be la sistemul deja achizi\u021bionat pentru ceva scris de noi \u00een\u0219ine.<\/p>\n<p><\/p>\n<p><strong>Condi\u021bia nr. 0<\/strong>. Un climat s\u0103n\u0103tos \u00een companie. Nu este vorba doar despre \u201eochii aprin\u0219i\u201d ai angaja\u021bilor \u0219i comunicabilitatea \u00een condi\u021bii stresante de ob\u021binere a pr\u0103jiturilor, nu. Este vorba despre toate interac\u021biunile.<\/p>\n<p><\/p>\n<p><strong>Condi\u021bia nr. 1<\/strong>. A crede \u00een ceea ce faci. Serioux, nu cred c\u0103 am fi avut vreo \u0219ans\u0103, dac\u0103 ne-am fi ocupat de pilot, f\u0103r\u0103 a analiza sistemul achizi\u021bionat \u201ep\u00e2n\u0103 la \u0219urub\u201d - adic\u0103, \u00eentorc\u00e2ndu-ne \u0219i \u0219tiind subcon\u0219tient c\u0103 acest sistem este mai bun \u0219i ne va \u00eenfrunta.<\/p>\n<p><\/p>\n<p>Ce am f\u0103cut: 1) ne-am l\u0103murit cu sistemul achizi\u021bionat, folosindu-l pentru a rezolva cererile principale ale afacerii 2) am \u00eentocmit o list\u0103 de sarcini, care nu sunt doar cele de acum, ci \u0219i vor exista \u00eentr-un viitor apropiat 3) am g\u0103sit solu\u021bia cea mai potrivit\u0103. \u0218i atunci, evaluarea solu\u021biei noastre a fost evaluarea exper\u021bilor.<\/p>\n<p><\/p>\n<p>Ne-ar oferi ceva dac\u0103 am veni \u0219i am spune, de exemplu, \u201eb\u0103ie\u021bi, totul e prost, nu vrem s\u0103 ne ocup\u0103m cu asta \u0219i am decis s\u0103 facem totul de la zero\u201d? Probabil c\u0103 nu. \u00cen plus, r\u0103spunsul ar veni \u00eentr-o form\u0103 care ar r\u0103m\u00e2ne bine \u00eentip\u0103rit\u0103 \u00een memorie \ud83d\ude42<\/p>\n<p><\/p>\n<p><strong>Condi\u021bia nr. 2<\/strong>. Facem primul pas mic. Gener\u0103m prima ipotez\u0103 \u0219i o verific\u0103m. Po\u021bi s\u0103 \u00ee\u021bi dedici \u0219i timpul personal pentru asta. Dac\u0103 nu vrei s\u0103 \u00ee\u021bi pierzi timpul \u2014 atunci nu ar trebui s\u0103 te apuci de a\u0219a ceva. Iar dac\u0103 nu vrei s\u0103 verifici o mic\u0103 ipotez\u0103, ci vrei s\u0103 faci totul din prima, cu str\u0103lucire \u2014 stai departe de astfel de oameni!<\/p>\n<p><\/p>\n<p>Am avut noroc \u0219i prima ipotez\u0103 a func\u021bionat. Dar a\u0219a nu se \u00eent\u00e2mpl\u0103 \u00eentotdeauna. De exemplu, \u00een unul din proiectele urm\u0103toare, c\u00e2nd am promovat un panou de administrare \u00een cadrul unui pilot similar, am avut succes doar cu varianta a 18-a. Primele 17 abord\u0103ri au fost \u00een van. Apropo, \u00een povestea cre\u0103rii panoului de administrare, r\u0103sturn\u0103rile de situa\u021bie au fost la nivelul telenovelelor braziliene, deoarece echipa era format\u0103 din b\u0103ie\u021bi, deja veterani, adev\u0103ra\u021bi \u201eb\u0103tr\u00e2ni \u00een ale jocului\u201d.<\/p>\n<p><\/p>\n<p><strong>Condi\u021bia nr. 3<\/strong>. Facem un MVP \u0219i c\u0103ut\u0103m durerea decidentului. Desigur, pe fa\u021ba lui poate reflecta deja groaza c\u0103 \u00eei aduci pentru a 30-a oar\u0103 o idee. Dar totu\u0219i. \u0218i trebuie s\u0103 ar\u0103t\u0103m exact cum rezolv\u0103m problemele lui cu produsul nostru.<\/p>\n<p><\/p>\n<p><strong>Condi\u021bia nr. 4<\/strong>. Facem rapid un pilot pe genunchi, care arat\u0103 <em>aproximativ<\/em> ca rezultatul final. S\u0103 faci totul perfect - este tentant, dar po\u021bi s\u0103 te \u00eempiedici de perfec\u021bionism, care va face s\u0103 vrei s\u0103 ar\u0103\u021bi o versiune pilot deja a unui produs ideal. Dar acestea nu exist\u0103. A\u0219a c\u0103, pur \u0219i simplu, f\u0103 ceva din be\u021be.<\/p>\n<p><\/p>\n<p><strong>Condi\u021bia nr. 5<\/strong>. Produs. Proiectul cre\u0219te, prime\u0219te finan\u021bare, vin speciali\u0219ti cu experien\u021b\u0103 solid\u0103.<br \/>\n\u0218i dac\u0103 e\u0219ti un startup-er clasic, atunci acesta este momentul \u00een care trebuie s\u0103 te retragi rapid. Pentru c\u0103 zborurile u\u0219oare pe cele mai \u00eenalte culmi \u0219i senza\u021bia de bun\u0103stare general\u0103 se risipesc rapid.<\/p>\n<p><\/p>\n<p>Lansarea \u00een produc\u021bie - este o confruntare cu sarcini reale, integrarea cu zeci de sisteme, iar atunci c\u00e2nd creezi o nou\u0103 func\u021bionalitate, concomitent, \u00een cadrul asisten\u021bei, \u00eembun\u0103t\u0103\u021be\u0219ti versiunile mai vechi. Toate acestea sunt provoc\u0103ri mult mai serioase dec\u00e2t s\u0103 ai o idee \u0219i s\u0103 rezolvi, chiar dac\u0103 bine, o singur\u0103 problem\u0103 a clientului.<\/p>\n<p><\/p>\n<p>Acestea sunt provoc\u0103ri, iar dezvoltarea abilit\u0103\u021bilor se \u00eent\u00e2mpl\u0103 exact \u00een aceast\u0103 etap\u0103.<\/p>\n<p><\/p>\n<p>Mul\u021bumesc pentru lectur\u0103. Happy New Code!<\/p>\n<p>Sursa: <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.1 - 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\/ro\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Retrospectiva obstacolelor. Cum o solu\u021bie personalizat\u0103 s-a dovedit a fi mai bun\u0103 dec\u00e2t una pl\u0103tit\u0103 | ProHoster","description":"Bun\u0103! Numele meu este Alexei P\u00e2enkov, sunt programatorul principal la compania Sportmaster.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/73944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=73944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/73944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/73945"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=73944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=73944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=73944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}