{"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\/pl\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","title":{"rendered":"Retrospektywa utkn\u0105\u0107 na problemach. Jak w\u0142asne rozwi\u0105zanie okaza\u0142o si\u0119 lepsze od p\u0142atnego","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cze\u015b\u0107! Nazywam si\u0119 Aleksey Pjankow, jestem g\u0142\u00f3wnym programist\u0105 w firmie Sportmaster. Powiem od razu, \u017ce \"g\u0142\u00f3wny\" nie znaczy \"najwa\u017cniejszy ze wszystkich programist\u00f3w\", nie, to tylko nazwa, taki urokliwy przek\u0142ad na \"Senior+\".<\/p>\n<p><\/p>\n<p>W firmie Sportmaster pracuj\u0119 od 2012 roku i przez ten czas zesp\u00f3\u0142 deweloperski stworzy\u0142 wiele rozwi\u0105za\u0144, kt\u00f3re s\u0105 interesuj\u0105ce od strony technicznej. Ale dzisiaj chcia\u0142bym opowiedzie\u0107 o naszej pracy, zwracaj\u0105c uwag\u0119 raczej na to, jak my\u015bleli\u015bmy w okre\u015blonych niejednoznacznych sytuacjach.<\/p>\n<p><\/p>\n<p>W tym artykule nie b\u0119dzie konkretnych rozwi\u0105za\u0144 technicznych (ani w og\u00f3le niczego technicznego), kt\u00f3re mo\u017cna by chwyta\u0107 i stosowa\u0107 w swoim projekcie. Raczej to jest refleksja nad wykonan\u0105 prac\u0105. By\u0142y takie wyj\u0105tkowe momenty, kt\u00f3re wp\u0142yn\u0119\u0142y na nas jako zesp\u00f3\u0142 \u2014 zjednoczy\u0142y, umocni\u0142y i przetestowa\u0142y na wytrzyma\u0142o\u015b\u0107. O tych momentach, o atmosferze pracy w zespole, o naszych potkni\u0119ciach i pewnych pu\u0142apkach psychologicznych, w kt\u00f3re czasami sami si\u0119 wp\u0119dzamy, spr\u00f3buj\u0119 dzisiaj opowiedzie\u0107.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospektywa utkn\u0105\u0107 na problemach. Jak w\u0142asne rozwi\u0105zanie okaza\u0142o si\u0119 lepsze od p\u0142atnego\" src=\"\/wp-content\/uploads\/2020\/03\/1651640dbf2cb45d48e1e046a78c931f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>I zaczn\u0119 w\u0142a\u015bnie od 2012 roku.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Przyszed\u0142em w 2012 roku z g\u0142\u00f3wnym celem w tamtym czasie \u2014 praca nad nasz\u0105 flagow\u0105 stron\u0105 internetow\u0105. W\u00f3wczas to by\u0142 \u201epotw\u00f3r Frankensteina\u201d: cz\u0119\u015b\u0107 zespo\u0142u pracowa\u0142a z naszym starym systemem, kt\u00f3ry nie radzi\u0142 sobie z obci\u0105\u017ceniem (Bitrix), w drugiej cz\u0119\u015bci zespo\u0142u (do kt\u00f3rej nale\u017ca\u0142em i ja) starali\u015bmy si\u0119 wprowadzi\u0107 nowy system, kt\u00f3ry wybrali\u015bmy na podstawie kryterium \u201eSkoro to najdro\u017csza e-commerce na \u015bwiecie, bierzemy j\u0105\u201d. Dok\u0142adnie \u201estarali\u015bmy si\u0119 wprowadzi\u0107\u201d \u2014 poniewa\u017c system zaciekle si\u0119 opiera\u0142, a na ka\u017cdym etapie, w kt\u00f3rym udawa\u0142o si\u0119 rozwi\u0105za\u0107 jaki\u015b problem, zawsze pojawia\u0142 si\u0119 \u201eniespodzianka\u201d w odpowiedzi. Pracowali\u015bmy du\u017co, ale posuwali\u015bmy si\u0119 z pr\u0119dko\u015bci\u0105 \u015blimaka.<\/p>\n<p><\/p>\n<p>Osobi\u015bcie ostatni\u0105 kropl\u0105 by\u0142a dla mnie znajomo\u015b\u0107 z kodem jednej z metod w tym \u201enajdro\u017cszym e-commerce na \u015bwiecie\u201d, gdy kilka godzin skupionej pracy nad zawi\u0142ym b\u0142\u0119dem doprowadzi\u0142o do odkrycia, \u017ce przyczyna znajdowa\u0142a si\u0119 gdzie\u015b w custom-tag, kt\u00f3ry dzia\u0142a podczas generowania HTML w JSP. Zadaniem tego custom-tag jest wy\u015bwietlenie sumy pewnych warto\u015bci. To ca\u0142kiem w porz\u0105dku, do tego custom-tag jest przeznaczony. Jednak niespodzianka tkwi\u0142a w tym, \u017ce przy tym zmienia\u0142y si\u0119 niekt\u00f3re dane w bazie, na czym opiera\u0142o si\u0119 zachowanie na nast\u0119pnych stronach, a je\u015bli nacisn\u0105\u0107 F5 \u2014 wywo\u0142anie powtarza\u0142o si\u0119, co narusza\u0142o sp\u00f3jno\u015b\u0107 danych. A co gorsza, narusza\u0142o to w taki spos\u00f3b, \u017ce ujawnia\u0142o si\u0119 dopiero po kilku krokach, na 3. stronie sekwencji. Nie, nie mam nic przeciwko temu, aby taki \u201emistrz-ninja\u201d by\u0142 w zespole i swoimi kodami utrzymywa\u0142 uwag\u0119 koleg\u00f3w w ci\u0105g\u0142ej gotowo\u015bci. Ale tak, w bibliotece najdro\u017cszej systemu!<\/p>\n<p><\/p>\n<p>To by\u0142o w pi\u0105tek. A sobot\u0119 i niedziel\u0119 sp\u0119dzili\u015bmy z koleg\u0105 w biurze, aby zrozumie\u0107, jakie zadania biznes stawia przed systemem dzisiaj i jakie zadania mo\u017ce wymy\u015bli\u0107 za rok. Oczywi\u015bcie, jak by\u015bmy je rozwi\u0105zywali, gdyby\u015bmy nie byli ograniczeni do korzystania z tego najdro\u017cszego i najbardziej irytuj\u0105cego systemu.<\/p>\n<p><\/p>\n<p>Powiedziano \u2014 zrobiono. Zrealizowali\u015bmy pilota, w kt\u00f3rym po\u0142o\u017cyli\u015bmy fundament pod rozw\u00f3j nowej strony Sportmaster. Wiele z tych pomys\u0142\u00f3w si\u0119 przyj\u0119\u0142o i ich kontynuacja aktualnie dzia\u0142a na stronie.<\/p>\n<p><\/p>\n<h2 id=\"etapy-pilota-i-vremennye-ramki\">Etapy pilota i ramy czasowe<\/h2>\n<p><\/p>\n<p><strong>2 dni.<\/strong> Zrobili\u015bmy mikroprototyp \u2014 przez weekend przenosimy nasz\u0105 baz\u0119 do ElasticSearch, robimy wyszukiwanie fasetowe. Voil\u00e0! W tej zakupionej systemie taka konfiguracja zaj\u0119\u0142a 2 tygodnie. A tutaj \u2014 dos\u0142ownie w kilka godzin! I dzia\u0142a szybciej. Co gorsza, szybciej o rz\u0105d wielko\u015bci.<\/p>\n<p><\/p>\n<p><strong>2 tygodnie.<\/strong> \u201eWyciskamy\u201d prototyp, dodajemy funkcjonalno\u015b\u0107 do adekwatnych spersonalizowanych wynik\u00f3w. <\/p>\n<p><\/p>\n<p>Na przyk\u0142ad u\u017cytkownik ma kilka rabat\u00f3w i promocji, kt\u00f3re s\u0105 aktualne tylko dla niego \u2014 wtedy w wynikach wyszukiwania produkt\u00f3w trzeba wy\u015bwietli\u0107 w\u0142a\u015bnie t\u0119 cen\u0119, kt\u00f3r\u0105 mo\u017cna uzyska\u0107, stosuj\u0105c wszystkie dost\u0119pne bonusy w najkorzystniejszy spos\u00f3b.<\/p>\n<p><\/p>\n<p>Z promocjami nie jest tak prosto. Na przyk\u0142ad, kupi\u0142em narty, teraz na czapk\u0119 jest zni\u017cka 40%, ale w takim przypadku anulowana jest welcome zni\u017cka 10% na ca\u0142y zam\u00f3wienie. Tak, to prawdziwy przypadek \ud83d\ude42 A \u017ceby ustawi\u0107 tak\u0105 promocj\u0119 w systemie zakupowym, zap\u0142acono za 3 konsultacje z dostawc\u0105, w wyniku kt\u00f3rych otrzymali\u015bmy wiele przyk\u0142ad\u00f3w, jak zrobi\u0107 r\u00f3\u017cne inne promocje. Bardzo dyplomatycznie i, bior\u0105c pod uwag\u0119 koszt konsultacji \u2014 bardzo dobrze pod wzgl\u0119dem ekonomicznym.<\/p>\n<p><\/p>\n<p>Pokazali\u015bmy firmie szczeg\u00f3\u0142ow\u0105 demonstracj\u0119. Obiecali szybko zbudowa\u0107 pilota i od razu przyst\u0105pili do dzia\u0142ania.<\/p>\n<p><\/p>\n<p><strong>2 miesi\u0105ce.<\/strong> Pilota\u017cowy projekt \u2014 robimy w formie \u017cywej strony z wyszukiwark\u0105 w katalogu. Wyszukiwanie z facetami, wyniki wyszukiwania \u2014 z osobistymi zni\u017ckami, wygl\u0105da jak portal Sportmaster, a produkty, kt\u00f3re wrzucili\u015bmy, s\u0105 te same. Cudo! <\/p>\n<p><\/p>\n<p>Dodajemy \"Krasnorcie:100\" naszego szefa dzia\u0142u, a prezentacja dla biznesu przebiega na Hurra! Dajemy carte blanche do samodzielnego opracowania platformy eCommerce.<\/p>\n<p><\/p>\n<p>A to oznacza, trzymajcie, ch\u0142opaki, zesp\u00f3\u0142, trzymajcie, ch\u0142opaki, bud\u017cet. Fajnie, prawda?<\/p>\n<p><\/p>\n<p><strong>2 lata.<\/strong> Wprowadzenie strony do produkcji. Tak, d\u0142ugo. Wszystko, co wtedy umieli\u015bmy, pr\u00f3bowali\u015bmy tylko w skali prototypu. Dw\u00f3ch ludzi \u0142atwo tworzy zgrany zesp\u00f3\u0142. A zadania, kt\u00f3re \"odhaczali\u015bmy\" \u2014 w zasadzie to by\u0142y ma\u0142e poprawki \"Hello World\" w nowych technologiach. \u0141atwo generowali\u015bmy nowe hipotezy, szybko je testowali\u015bmy, nie zd\u0105\u017cali\u015bmy si\u0119 przywi\u0105zywa\u0107 i dlatego bez \u017calu je \"zabijali\u015bmy\". Gdy by\u0142o nas 10, z momentum ekstrapolowali\u015bmy nasz\u0105 pr\u0119dko\u015b\u0107 pracy na wszystkich innych. I obiecali\u015bmy takie terminy wykonania zada\u0144, kt\u00f3re odpowiadaj\u0105 wizji pi\u0119kna pomno\u017conej przez nasz entuzjazm.<\/p>\n<p><\/p>\n<p>Znajoma sytuacja? \ud83d\ude42<\/p>\n<p><\/p>\n<p>Wi\u0119c, ju\u017c wiecie, co b\u0119dzie dalej?<\/p>\n<p><\/p>\n<h2 id=\"lovushka-1-ekstrapolyator-krutysh\">Pu\u0142apka nr 1. \"Ekstrapolator\"<\/h2>\n<p><\/p>\n<p>Jasne, \u017ce nowe technologie wygl\u0105daj\u0105 bardzo dobrze w prezentacjach i \u015bwietnie pokazuj\u0105 si\u0119 w aplikacji typu \"Hello World\". Ale rzeczywisto\u015b\u0107 zazwyczaj jest troch\u0119 dalej od tego.<\/p>\n<p><\/p>\n<p>Wi\u0119c. Bierzemy bibliotek\u0119, piszemy mn\u00f3stwo aplikacyjnego kodu. Testy jednostkowe uwa\u017camy za ci\u0119\u017car (jeste\u015bmy tacy fajni i pracujemy na nad\u015bwietlnych pr\u0119dko\u015bciach, kod nowoczesny i tak dalej). Stale zmieniamy i dopracowujemy API w trakcie \u2014 no jakie tutaj testy, na serio. I to wszystko pod sztandarem \"\u015bwietnie zoptymalizowali\u015bmy proces tworzenia\" (tak, teraz nawet strach to opisywa\u0107).<\/p>\n<p><\/p>\n<p>A potem wszystko jest do\u015b\u0107 oczywiste.<\/p>\n<p><\/p>\n<p>Wypuszczamy now\u0105 wersj\u0119 na uat. Ch\u0142opaki z biznesu z zapa\u0142em testuj\u0105 wszystko i naciskaj\u0105 przyciski. Czasami robi\u0105 to do\u015b\u0107 kreatywnie \u2014 co\u015b przestaje dzia\u0142a\u0107. Warto by si\u0119 dowiedzie\u0107, co w tej sprawie zrobiono. Ale po drugiej stronie monitora nie ma nawykowego testera, kt\u00f3ry dostarczy ci wszystkich charakterystyk \u015brodowiska z uwzgl\u0119dnieniem pogody w regionie, lecz klienta z biznesu. On po prostu m\u00f3wi, \u017ce \"nie dzia\u0142a\". A to oznacza, \u017ce jest niezadowolony. Zapytasz go \u2014 i on b\u0119dzie <em>strasznie<\/em> niezadowolony!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospektywa utkn\u0105\u0107 na problemach. Jak w\u0142asne rozwi\u0105zanie okaza\u0142o si\u0119 lepsze od p\u0142atnego\" src=\"\/wp-content\/uploads\/2020\/03\/9d980b25fabea5e0a34a428fb9dbb85e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wtedy, aby odtworzy\u0107 b\u0142\u0105d, trzeba przej\u015b\u0107 i w ka\u017cd\u0105 rzecz klika\u0107 na chybi\u0142 trafi\u0142. Oczywi\u015bcie, nie zignorowali\u015bmy \u017cadnej skargi i wszystko naprawiali\u015bmy. Zarzucali\u015bmy zaplanowane zadania, ale \"gasi\u0107 po\u017car\".<\/p>\n<p><\/p>\n<p>Tak wygrzebali\u015bmy sobie kolejn\u0105 pu\u0142apk\u0119.<\/p>\n<p><\/p>\n<h2 id=\"lovushka-2-stahanovec\">Pu\u0142apka nr 2. \u201eStachanowiec\u201d<\/h2>\n<p><\/p>\n<p>Przylecia\u0142 do ciebie nieprzyjemny b\u0142\u0105d. Zaczynasz si\u0119 rozgl\u0105da\u0107. Nie udaje si\u0119 \u2014 z\u0142o\u015b\u0107 \u2014 kolejna pr\u00f3ba zrozumienia \u2014 kolejna pora\u017cka \u2014 wyja\u015bniasz wszystko, co mo\u017cna \u2014 znowu nie to \u2014 my\u015blisz o tym, \u017ce jeste\u015b ju\u017c stary, a wszyscy maj\u0105 dzieci i kredyty \u2014 pr\u00f3bujesz ponownie \u2014 zn\u00f3w nie to. Kilka kubk\u00f3w kawy, i wszystko powtarza si\u0119. 12-14 godzin pracy bez przerwy \u2014 prawie jak norma. I wtedy, kiedy wszystko jest ju\u017c na granicy \u2014 bach, ol\u015bnienie!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospektywa utkn\u0105\u0107 na problemach. Jak w\u0142asne rozwi\u0105zanie okaza\u0142o si\u0119 lepsze od p\u0142atnego\" src=\"\/wp-content\/uploads\/2020\/03\/8f66e2ca834ffafd72bde53fd397bcb7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mo\u017cliwe, \u017ce z zewn\u0105trz ocena skuteczno\u015bci takiego dnia jest widoczna i poprawna. Z wn\u0119trza \u2014 mo\u017ce by\u0107 r\u00f3\u017cnie.<\/p>\n<p><\/p>\n<p>W moim przypadku wra\u017cenie z takiej pracy zawiera\u0142o \u201eJestem \u015bwietny, da\u0142em rad\u0119, rozwi\u0105za\u0142em problem\u201d. Nie zawsze \u015bwiadomie, ale pod\u015bwiadomie \u2014 zawsze!<\/p>\n<p><\/p>\n<p>I na to si\u0119 uzale\u017cniasz, nie \u017cartuj\u0119. Okazuje si\u0119, \u017ce wewn\u0119trzne metryki sukcesu przesuwaj\u0105 si\u0119 z wyniku na liczb\u0119 w\u0142o\u017conych wysi\u0142k\u00f3w oraz poziom tego, jakie wyczyny pope\u0142ni\u0142e\u015b, jak bardzo cierpia\u0142e\u015b, pr\u00f3buj\u0105c rozwi\u0105za\u0107 zadanie.<\/p>\n<p><\/p>\n<p>Pewnie, to najstraszniejsza pu\u0142apka.<\/p>\n<p><\/p>\n<p>Dalej b\u0119dzie \u0142atwiej i weselej \ud83d\ude42<\/p>\n<p><\/p>\n<h2 id=\"lovushka-3-sila-hello-world\">Pu\u0142apka nr 3. \u201eSi\u0142a Hello world\u201d<\/h2>\n<p><\/p>\n<p>Nasz zestaw technologii z tamtego okresu: ElasticSearch, Hazelcast, Pentaho, freemarker (i sprawdzone Java, Spring, Tomcat, nginx). Freemarker niezbyt informacyjnie przekazywa\u0142 komunikaty o b\u0142\u0119dach. Z kolei ElasticSearch, Hazelcast, Pentaho musieli\u015bmy patchowa\u0107 kilka razy \u2014 talentem znajdowali\u015bmy przypadki, w kt\u00f3rych dzia\u0142a\u0142y nie tak, jak okre\u015bla\u0142a dokumentacja.<\/p>\n<p><\/p>\n<p>\u0141atwe rozpocz\u0119cie i szybkie korzy\u015bci z u\u017cycia nowej technologii to jedno, ale wprowadzaj\u0105 one w eufori\u0119 i zmniejszaj\u0105 czujno\u015b\u0107. Poniewa\u017c nowa technologia zawiera b\u0142\u0119dy, z pewno\u015bci\u0105 zawiera b\u0142\u0119dy. A je\u015bli nikt o nich jeszcze nie napisa\u0142 \u2013 ciesz si\u0119, to w\u0142a\u015bnie Ty zostaniesz pionierem, kt\u00f3ry na pewno odkryje co\u015b wadliwego i p\u00f3jdzie szuka\u0107 w Google lub na SO. Oczywi\u015bcie, \u201ewadliwo\u015b\u0107\u201d mo\u017cna znale\u017a\u0107 w sprawdzonych produktach, ale w nowych \u2013 jest to znacznie \u0142atwiejsze.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Retrospektywa utkn\u0105\u0107 na problemach. Jak w\u0142asne rozwi\u0105zanie okaza\u0142o si\u0119 lepsze od p\u0142atnego\" src=\"\/wp-content\/uploads\/2020\/03\/86d505a5125b8106503497b72ff7761e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mimo wszystkich trudno\u015bci weszli\u015bmy do produkcji. Tak, z op\u00f3\u017anieniami. Tak, nie bardzo stabilnie. Ale og\u00f3lnie rzecz bior\u0105c \u2013 bez katastrof.<\/p>\n<p><\/p>\n<p>Jeszcze raz podkre\u015bl\u0119 pu\u0142apki, w kt\u00f3rych zniekszta\u0142cone jest zdrowe postrzeganie procesu pracy.<\/p>\n<p><\/p>\n<ol>\n<li><strong>\u201eEkstrapolator-superbohater\u201d<\/strong>. Pod wp\u0142ywem obecnych sukces\u00f3w idziemy naprz\u00f3d i rado\u015bnie ekstrapolujemy pr\u0119dko\u015b\u0107 rozwoju na nadchodz\u0105ce projekty.<\/li>\n<li><strong>\u201eStachanowiec\u201d<\/strong>. Pracujemy na pe\u0142nych obrotach, jeste\u015bmy z siebie zadowoleni, ale nie dostrzegamy, \u017ce problemy, kt\u00f3re rozwi\u0105zujemy \u2013 to konsekwencje naszych osobistych b\u0142\u0119d\u00f3w\/niedoci\u0105gni\u0119\u0107\/zlekcewa\u017cenia. Prace, kt\u00f3rych nie nale\u017cy wykonywa\u0107.<\/li>\n<li><strong>\u201eSi\u0142a Hello world\u201d<\/strong>. Po\u015bpiesznie wprowadzamy do produkcji wszystko, co nowe i interesuj\u0105ce.<\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"pochemu-vsyo-poluchilos\">Dlaczego wszystko si\u0119 uda\u0142o<\/h2>\n<p><\/p>\n<p>Oczywi\u015bcie, wymieni\u0142em nie wszystkie b\u0142\u0119dy, kt\u00f3re mieli\u015bmy w tym czasie, ale te najbardziej og\u00f3lne, prawdopodobne dla projektu dowolnej specyfiki. Tego rodzaju rejestr b\u0142\u0119d\u00f3w pomaga unika\u0107 ich w przysz\u0142o\u015bci.<\/p>\n<p><\/p>\n<p>Kilka s\u0142\u00f3w o tym, jak w og\u00f3le uda\u0142o nam si\u0119 stworzy\u0107 taki mini-startup w firmie i przekona\u0107 biznes do zrezygnowania z ju\u017c zakupionego systemu na co\u015b w\u0142asnego, napisanego od podstaw.<\/p>\n<p><\/p>\n<p><strong>Warunek nr 0<\/strong>. Zdrowy klimat w firmie. To nie tylko \u201ep\u0142on\u0105ce oczy\u201d pracownik\u00f3w i komunikatywno\u015b\u0107 w stresuj\u0105cych warunkach produkcji ciasteczek, nie. To wszystko interakcje.<\/p>\n<p><\/p>\n<p><strong>Warunek nr 1<\/strong>. Wierzy\u0107 w to, co si\u0119 robi. Powa\u017cnie, nie s\u0105dz\u0119, \u017ce mieliby\u015bmy jakiekolwiek szanse, gdyby\u015bmy zaj\u0119li si\u0119 pilotem, nie rozbieraj\u0105c zakupionego systemu \u201edo \u015brubki\u201d \u2013 to znaczy, ust\u0119puj\u0105c i pod\u015bwiadomie wiedz\u0105c, \u017ce ten system jest lepszy i pokona nas.<\/p>\n<p><\/p>\n<p>Co zrobili\u015bmy: 1) zrozumieli\u015bmy zakupiony system, z jego pomoc\u0105 rozwi\u0105zali\u015bmy podstawowe potrzeby biznesowe 2) sporz\u0105dzili\u015bmy list\u0119 zada\u0144, kt\u00f3re istniej\u0105 teraz i b\u0119d\u0105 w niedalekiej przysz\u0142o\u015bci 3) wybrali\u015bmy rozwi\u0105zanie, kt\u00f3re najlepiej pasuje. A wi\u0119c, nasza ocena rozwi\u0105zania \u2013 to by\u0142a ocena ekspert\u00f3w.<\/p>\n<p><\/p>\n<p>Czy daliby nam co\u015b, gdyby\u015bmy po prostu przyszli i powiedzieli: \"ch\u0142opaki, wszystko do kitu, nie chcemy si\u0119 tym zajmowa\u0107 i postanowili\u015bmy zbudowa\u0107 swoje od podstaw\"? Ma\u0142o prawdopodobne. Odpowied\u017a otrzymaliby\u015bmy w takiej formie, \u017ce dobrze by to zapad\u0142o w pami\u0119\u0107 \ud83d\ude42<\/p>\n<p><\/p>\n<p><strong>Warunek nr 2<\/strong>. Zaczynamy od ma\u0142ego kroku. Generujemy pierwsz\u0105 hipotez\u0119 i sprawdzamy. Mo\u017cna na to po\u015bwi\u0119ci\u0107 sw\u00f3j osobisty czas. Je\u015bli nie chce si\u0119 traci\u0107 swojego czasu \u2014 to w og\u00f3le nie ma sensu zabiera\u0107 si\u0119 za takie przedsi\u0119wzi\u0119cie. A je\u015bli nie chce si\u0119 sprawdza\u0107 ma\u0142ej hipotezy, a od razu zrobi\u0107 co\u015b \u015bwietnego i z blaskiem \u2014 trzymajcie si\u0119 z daleka od takich ludzi!<\/p>\n<p><\/p>\n<p>Mieli\u015bmy szcz\u0119\u015bcie i zadzia\u0142a\u0142a nasza pierwsza hipoteza. Ale tak nie jest zawsze. Na przyk\u0142ad, w jednym z kolejnych projekt\u00f3w, gdy promowali\u015bmy panel administracyjny w ramach podobnego pilota, zadzia\u0142a\u0142a tylko 18. wersja. A 17 pierwszych podej\u015b\u0107 do tematu okaza\u0142o si\u0119 bezowocnych. Swoj\u0105 drog\u0105, w historii tworzenia panelu administracyjnego zwroty akcji by\u0142y na poziomie brazylijskich seriali, poniewa\u017c zesp\u00f3\u0142 sk\u0142ada\u0142 si\u0119 z ch\u0142opak\u00f3w, kt\u00f3rzy w tym czasie byli ju\u017c weteranami, prawdziwymi \"wyjadaczami\".<\/p>\n<p><\/p>\n<p><strong>Warunek nr 3<\/strong>. Tworzymy MVP i szukamy bol\u0105czek u osoby podejmuj\u0105cej decyzje. Oczywi\u015bcie, na jej twarzy mo\u017ce ju\u017c odzwierciedla\u0107 si\u0119 przera\u017cenie na sam\u0105 my\u015bl, \u017ce po raz trzydziesty przynosicie jej jaki\u015b pomys\u0142. Ale mimo wszystko. I koniecznie pokazujemy, jak dok\u0142adnie rozwi\u0105zujemy jej problemy naszym produktem.<\/p>\n<p><\/p>\n<p><strong>Warunek nr 4<\/strong>. Na kolanie szybko robimy pilota, kt\u00f3ry wygl\u0105da <em>mniej wi\u0119cej<\/em> jak finalny wynik. Zrobienie wszystkiego super \u2014 kusi, ale mo\u017cna wpa\u015b\u0107 w perfekcjonizm, przez kt\u00f3ry zamiast pilota chcecie pokaza\u0107 ju\u017c idealn\u0105 wersj\u0119 produktu. A takich nie ma. Dlatego po prostu zr\u00f3bcie cokolwiek, nawet byle jakie.<\/p>\n<p><\/p>\n<p><strong>Warunek nr 5<\/strong>. Produkt. Projekt ro\u015bnie, zdobywa finansowanie, przychodz\u0105 specjali\u015bci z solidnym do\u015bwiadczeniem.<br \/>\nI je\u015bli jeste\u015b klasycznym startupowcem, to w\u0142a\u015bnie ten moment, kiedy trzeba szybko ucieka\u0107. Bo \u0142atwe loty na samym szczycie i uczucie og\u00f3lnej b\u0142ogo\u015bci szybko si\u0119 rozp\u0142ywaj\u0105.<\/p>\n<p><\/p>\n<p>Wej\u015bcie na rynek to zderzenie z realnymi obci\u0105\u017ceniami, integracja z dziesi\u0105tkami system\u00f3w, a kiedy tworzysz now\u0105 funkcjonalno\u015b\u0107, to jednocze\u015bnie, w ramach wsparcia dopracowujesz stare wersje. Wszystko to \u2014 wyzwania znacznie powa\u017cniejsze ni\u017c wymy\u015blenie pomys\u0142u i rozwi\u0105zanie przynajmniej jednej, a nawet dobrze, ale tylko jednej, problemu klienta.<\/p>\n<p><\/p>\n<p>To s\u0105 wyzwania, a rozw\u00f3j umiej\u0119tno\u015bci \u2014 odbywa si\u0119 w\u0142a\u015bnie na tym etapie.<\/p>\n<p><\/p>\n<p>Dzi\u0119kuj\u0119 za przeczytanie. Szcz\u0119\u015bliwego Nowego Kodu!<\/p>\n<p>\u0179r\u00f3d\u0142o: <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.1.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\/pl\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Retrospektywa problem\u00f3w. Jak rozwi\u0105zanie stworzone na w\u0142asn\u0105 r\u0119k\u0119 okaza\u0142o si\u0119 lepsze od p\u0142atnego | ProHoster","description":"Cze\u015b\u0107! Mam na imi\u0119 Aleksey Pyankov, jestem g\u0142\u00f3wnym programist\u0105 w firmie Sportmaster.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/73944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=73944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/73944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/73945"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=73944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=73944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=73944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}