{"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\/de\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","title":{"rendered":"R\u00fcckblick auf die Greifvorrichtungen. Wie eine selbst gebaute L\u00f6sung besser als eine kostenpflichtige wurde","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo! Mein Name ist Alexey Pyankov, ich bin der Hauptprogrammierer bei Sportmaster. Um es gleich vorweg zu sagen: 'Haupt' bedeutet nicht 'der wichtigste von allen Programmierern', nein, das ist nur ein Titel, eine charmante \u00dcbersetzung f\u00fcr 'Senior+'.<\/p>\n<p><\/p>\n<p>Bei Sportmaster arbeite ich seit 2012, und in dieser Zeit hat unser Entwicklungsteam viele interessante technische L\u00f6sungen geschaffen. Heute m\u00f6chte ich jedoch \u00fcber unsere Arbeit berichten, wobei ich eher darauf eingehen m\u00f6chte, wie wir in bestimmten mehrdeutigen Situationen nachgedacht haben.<\/p>\n<p><\/p>\n<p>In diesem Artikel wird es keine konkreten technischen L\u00f6sungen geben (\u00fcberhaupt nichts Technisches), die man einfach \u00fcbernehmen und in eigenen Projekten anwenden sollte. Vielmehr handelt es sich um eine Reflexion \u00fcber die geleistete Arbeit. Es gab besondere Momente, die uns als Team gepr\u00e4gt haben \u2013 uns zusammengeschwei\u00dft, geh\u00e4rtet und auf die Probe gestellt. \u00dcber diese Momente, die Arbeitsatmosph\u00e4re im Team, unsere Stolpersteine und eine Reihe psychologischer Fallen, in die wir uns manchmal selbst treiben, m\u00f6chte ich heute berichten.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00fcckblick auf die Greifvorrichtungen. Wie eine selbst gebaute L\u00f6sung besser als eine kostenpflichtige wurde\" src=\"\/wp-content\/uploads\/2020\/03\/1651640dbf2cb45d48e1e046a78c931f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ich beginne genau im Jahr 2012.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Ich kam 2012 mit dem Hauptziel, an unserer Flagship-Website zu arbeiten. Damals war es ein 'Frankenstein-Monster': Ein Teil des Teams arbeitete mit unserem alten System, das mit den Lasten nicht besonders gut zurechtkam (Bitrix), w\u00e4hrend ein anderer Teil des Teams (zu dem auch ich geh\u00f6rte) versuchte, ein neues System einzuf\u00fchren, das wir nach dem Kriterium 'Da dies die teuerste E-Commerce-L\u00f6sung der Welt ist, nehmen wir sie' ausgew\u00e4hlt hatten. Wir 'versuchten es einzuf\u00fchren' \u2013 denn das System wehrte sich verzweifelt, und auf jedes Problem, das wir l\u00f6sen konnten, folgte unbedingt eine '\u00dcberraschung' als Antwort. Wir arbeiteten viel, kamen aber nur langsam voran.<\/p>\n<p><\/p>\n<p>F\u00fcr mich war das letzte Tropfen das Kennenlernen des Codes einer Methode in diesem \"teuersten E-Commerce der Welt\", als mehrere Stunden konzentrierte Arbeit an einem verworrenen Bug dazu f\u00fchrten, dass die Ursache irgendwo im Custom-Tag gefunden wurde, das bei der Generierung von HTML in JSP verarbeitet wird. Die Aufgabe dieses Custom-Tags ist es, die Summe bestimmter Gr\u00f6\u00dfen darzustellen. Das ist nicht schlecht, daf\u00fcr sind diese Custom-Tags ja gedacht. Doch die \u00dcberraschung verbarg sich darin, dass dabei einige Daten in der Datenbank ge\u00e4ndert wurden, was das Verhalten auf den folgenden Seiten beeinflusste, und wenn man F5 dr\u00fcckte, wurde der Aufruf wiederholt, was die Konsistenz der Daten st\u00f6rte. Dabei trat die St\u00f6rung nur nach mehreren Schritten auf, auf der 3. Seite der Sequenz. Nein, ich habe nichts dagegen, dass ein solcher \"Ninja-Meister\" im Team ist und seine Kollegen mit seinem Code aufmerksam h\u00e4lt. Aber so einfach in der Bibliothek der teuersten System!<\/p>\n<p><\/p>\n<p>Es war Freitag. Am Samstag und Sonntag verbrachten mein Kollege und ich im B\u00fcro mit dem Ziel herauszufinden, welche Aufgaben das Gesch\u00e4ft heute der System stellt und welche Aufgaben es sich in einem Jahr ausdenken k\u00f6nnte. Entsprechend \u00fcberlegten wir uns, wie wir diese l\u00f6sen w\u00fcrden, wenn wir nicht in die Rahmenbedingungen des Gebrauchs dieses teuersten und l\u00e4stigsten Systems gezw\u00e4ngt w\u00e4ren.<\/p>\n<p><\/p>\n<p>Gesagt, getan. Wir haben ein Pilotprojekt gestartet, in dem wir das Fundament f\u00fcr die Entwicklung der neuen Sportmaster-Website gelegt haben. Viele dieser Ideen haben sich durchgesetzt und deren Fortsetzung dreht sich gerade aktiv auf der Website.<\/p>\n<p><\/p>\n<h2 id=\"etapy-pilota-i-vremennye-ramki\">Phasen des Piloten und zeitliche Rahmenbedingungen<\/h2>\n<p><\/p>\n<p><strong>2 Tage.<\/strong> Wir haben einen Mikroprototyp erstellt \u2014 \u00fcber das Wochenende migrieren wir unsere Datenbank nach ElasticSearch und implementieren die facettierte Suche. Voil\u00e0! Bei diesem k\u00e4uflichen System hat eine solche Konfiguration 2 Wochen gedauert. Hier geschah es in nur wenigen Stunden! Und es funktioniert sogar schneller. Und zwar um ein Vielfaches schneller.<\/p>\n<p><\/p>\n<p><strong>2 Wochen.<\/strong> Wir \"bauen\" einen Prototypen, f\u00fcgen funktionale Elemente f\u00fcr eine angemessene personalisierte Ausgabe hinzu. <\/p>\n<p><\/p>\n<p>Wenn der Benutzer beispielsweise mehrere Rabatte und Aktionen hat, die speziell f\u00fcr ihn gelten \u2014 dann muss im Suchergebnis f\u00fcr die Produkte genau der Preis angezeigt werden, den man erh\u00e4lt, wenn man alle verf\u00fcgbaren Vorteile auf die vorteilhafteste Weise anwendet.<\/p>\n<p><\/p>\n<p>Mit den Aktionen ist es nicht ganz so einfach. Zum Beispiel habe ich Skier gekauft, jetzt gibt es 40 % Rabatt auf die M\u00fctze, aber gleichzeitig entf\u00e4llt der Willkommensrabatt von 10 % auf die gesamte Bestellung. Ja, das ist ein echter Fall \ud83d\ude42 Und um so eine Aktion im Einkaufssystem einzurichten, wurden 3 Beratungen mit dem Lieferanten bezahlt, aus denen wir viele Beispiele erhalten haben, wie man verschiedene andere Aktionen durchf\u00fchrt. Sehr diplomatisch und, angesichts der Kosten f\u00fcr die Beratungen - wirtschaftlich sehr vorteilhaft.<\/p>\n<p><\/p>\n<p>Wir haben dem Unternehmen eine detaillierte Demo gezeigt. Wir haben versprochen, den Pilotprojekt schnell zusammenzustellen und sofort mit der Arbeit begonnen.<\/p>\n<p><\/p>\n<p><strong>2 Monate.<\/strong> Das Pilotprojekt - wir machen es in Form einer lebenden Website mit einer Katalogsuche. Suche mit Facetten, Suchergebnisse - mit pers\u00f6nlichen Rabatten, das Pilotprojekt sieht nahezu aus wie die Website von Sportmaster, und die Produkte haben wir dieselben hochgeladen. Eine wahre Freude! <\/p>\n<p><\/p>\n<p>Wir f\u00fcgen \"\u041a\u0440\u0430\u0441\u043d\u043e\u0440\u0435\u0447\u0438\u0435:100\" unseres Abteilungsleiters hinzu, und die Pr\u00e4sentation f\u00fcr das Unternehmen l\u00e4uft mit Bravour! Wir bekommen das gr\u00fcne Licht, um die eCommerce-Plattform selbst zu entwickeln.<\/p>\n<p><\/p>\n<p>Und das bedeutet, haltet euch fest, Jungs, hier ist euer Team, haltet euch fest, Jungs, hier ist euer Budget. Ist das nicht gro\u00dfartig!<\/p>\n<p><\/p>\n<p><strong>2 Jahre.<\/strong> Die Ver\u00f6ffentlichung der Website in Produktion. Ja, es hat lange gedauert. Alles, was wir damals konnten, haben wir nur im Rahmen des Prototyps getestet. Zwei Personen bilden leicht ein eingespieltes Team. Und die Aufgaben, die wir \"abarbeiteten\" - im Grunde genommen waren das kleine Nachbesserungen von \"Hello World\" in neuen Technologien. Wir haben leicht neue Hypothesen generiert, sie schnell getestet, haben uns nicht festgebunden und daher ohne Bedauern \"get\u00f6tet\". Als wir 10 Personen wurden, extrapolierten wir tr\u00e4ge unsere Arbeitsgeschwindigkeit auf alle anderen. Und versprachen solche Fristen f\u00fcr die Aufgaben, die gleich dem Ideal multipliziert mit unserem Enthusiasmus waren.<\/p>\n<p><\/p>\n<p>Kommt Ihnen die Situation bekannt vor? \ud83d\ude42<\/p>\n<p><\/p>\n<p>Wissen Sie also schon, was als N\u00e4chstes kommt?<\/p>\n<p><\/p>\n<h2 id=\"lovushka-1-ekstrapolyator-krutysh\">Falle Nr. 1. \"Extrapolationsguru\"<\/h2>\n<p><\/p>\n<p>Klar ist, dass neue Technologien in Pr\u00e4sentationen sehr cool aussehen und sich hervorragend in der Anwendung von \"Hello World\" pr\u00e4sentieren. Aber die Realit\u00e4t ist in der Regel etwas weiter davon entfernt.<\/p>\n<p><\/p>\n<p>Also. Wir nehmen eine Bibliothek, schreiben eine Menge Anwendungscode. Unit-Tests empfinden wir als Belastung (wir sind doch cool und arbeiten hier im \u00dcberschall, der Code ist modern und so weiter). St\u00e4ndig \u00e4ndern und \u00fcberarbeiten wir die API im Vorbeigehen - na, welche Tests gibt es hier, ernsthaft. Und das alles unter dem Banner \"wir haben den Entwicklungsprozess cool optimiert\" (ja, es ist jetzt sogar gruselig, das zu beschreiben).<\/p>\n<p><\/p>\n<p>Und dann wird alles ziemlich offensichtlich.<\/p>\n<p><\/p>\n<p>Wir bringen ein neues Build auf uat heraus. Die Leute aus der Wirtschaft sind eifrig dabei, alles zu testen und zu klicken. Manchmal dr\u00fccken sie ziemlich kreativ \u2014 es fallen Dinge aus. Hier w\u00e4re es gut, zu erfahren, was dagegen unternommen wurde. Aber auf der anderen Seite des Bildschirms sitzt kein verr\u00fcckter Tester, der dir alle Umgebungsbedingungen unter Ber\u00fccksichtigung des Wetters in der Region auflistet, sondern ein Kunde aus dem Gesch\u00e4ft. Er sagt einfach: \"es funktioniert nicht.\" Das bedeutet, er ist unzufrieden. Frag ihn \u2014 und er wird <em>grauenhaft<\/em> unzufrieden sein!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00fcckblick auf die Greifvorrichtungen. Wie eine selbst gebaute L\u00f6sung besser als eine kostenpflichtige wurde\" src=\"\/wp-content\/uploads\/2020\/03\/9d980b25fabea5e0a34a428fb9dbb85e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Um den Fehler zu reproduzieren, muss man also ran und alles durchprobieren. Nat\u00fcrlich haben wir keines der Beschwerden ignoriert und alles behoben. Wir haben unsere geplanten Aufgaben aufgegeben, um \"Feuer zu l\u00f6schen\".<\/p>\n<p><\/p>\n<p>So haben wir uns das n\u00e4chste Loch gegraben.<\/p>\n<p><\/p>\n<h2 id=\"lovushka-2-stahanovec\">Falle Nr. 2. \"Stachanovet\"<\/h2>\n<p><\/p>\n<p>Ein unangenehmer Bug ist aufgetaucht. Du versuchst, dich damit auseinanderzusetzen. Es funktioniert nicht \u2014 Wut \u2014 Versuch es noch einmal \u2014 ein weiterer Misserfolg \u2014 du kl\u00e4rst alles, was du kannst \u2014 wieder stimmt es nicht \u2014 denkst dar\u00fcber nach, dass du schon alt bist und alle Kinder und Hypotheken haben \u2014 versuchst es wieder \u2014 es funktioniert wieder nicht. Ein paar Tassen Kaffee, und alles wiederholt sich. 12-14 Stunden am St\u00fcck \u2014 fast wie die Norm. Und dann, wenn alle am Limit sind \u2014 bam, Erleuchtung!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00fcckblick auf die Greifvorrichtungen. Wie eine selbst gebaute L\u00f6sung besser als eine kostenpflichtige wurde\" src=\"\/wp-content\/uploads\/2020\/03\/8f66e2ca834ffafd72bde53fd397bcb7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Von au\u00dfen erscheint die Bewertung der Effizienz eines solchen Tages gut und richtig. Aber von innen kann es ganz anders sein.<\/p>\n<p><\/p>\n<p>In meinem Fall enthielt der Eindruck solcher Arbeit das Gef\u00fchl: \"Ich bin gro\u00dfartig, ich habe es geschafft.\" Nicht immer bewusst, aber unbewusst \u2014 immer!<\/p>\n<p><\/p>\n<p>Und darauf l\u00e4sst man sich dann ohne Scherz ein. Es zeigt sich, dass sich die internen Metriken des Erfolgs von den Ergebnissen auf die Menge der geleisteten Anstrengungen und das Niveau der Heldentaten verschieben, die du vollbracht hast, wie sehr du gelitten hast, w\u00e4hrend du versuchst, das Problem zu l\u00f6sen.<\/p>\n<p><\/p>\n<p>Wahrscheinlich ist das die schlimmste Falle.<\/p>\n<p><\/p>\n<p>Danach wird es leichter und fr\u00f6hlicher \ud83d\ude42<\/p>\n<p><\/p>\n<h2 id=\"lovushka-3-sila-hello-world\">Falle Nr. 3. \"Die Kraft von Hello World\"<\/h2>\n<p><\/p>\n<p>Unser Technologiestack aus dieser Zeit: ElasticSearch, Hazelcast, Pentaho, Freemarker (und bew\u00e4hrte Java, Spring, Tomcat, nginx). Freemarker gab nicht sehr informativ Meldungen \u00fcber Fehler aus. ElasticSearch, Hazelcast, Pentaho mussten wir jedoch mehrmals patchen \u2014 wir fanden geschickt F\u00e4lle, in denen sie nicht so funktionierten, wie es die Dokumentation vorschreibt.<\/p>\n<p><\/p>\n<p>Ein leichter Einstieg und schnelle Erfolge aus der Nutzung neuer Technologien sind gut, aber sie verleiten zur Euphorie und verringern die Wachsamkeit. Denn neue Technologien enthalten Bugs, sie enthalten definitiv Bugs. Und wenn noch nicht \u00fcber sie geschrieben wurde, freue dich, genau du wirst derjenige sein, der sicher etwas Unsauberes ausgr\u00e4bt und anfangen wird, Googlesuche oder SO zu nutzen. Nat\u00fcrlich kann man \"Unsauberes\" auch in bew\u00e4hrten Produkten finden, aber bei neuen ist es viel einfacher.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"R\u00fcckblick auf die Greifvorrichtungen. Wie eine selbst gebaute L\u00f6sung besser als eine kostenpflichtige wurde\" src=\"\/wp-content\/uploads\/2020\/03\/86d505a5125b8106503497b72ff7761e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Trotz aller Schwierigkeiten sind wir in die Produktion gegangen. Ja, mit Lag. Ja, nicht sehr stabil. Aber insgesamt \u2014 ohne Katastrophen.<\/p>\n<p><\/p>\n<p>Ich m\u00f6chte noch einmal die Fallen hervorheben, in denen die gesunde Wahrnehmung des Arbeitsprozesses verzerrt wird.<\/p>\n<p><\/p>\n<ol>\n<li><strong>\"Der super Extrapolator\"<\/strong>. Unter dem Eindruck der aktuellen Erfolge gehen wir voran und extrapolieren fr\u00f6hlich die Geschwindigkeit der Entwicklung auf bevorstehende Projekte.<\/li>\n<li><strong>\"Der Stachanovist\"<\/strong>. Wir arbeiten bis zur Ersch\u00f6pfung, sind mit uns selbst zufrieden, bemerken jedoch nicht, dass die Probleme, die wir l\u00f6sen, die Folge unserer eigenen Fehler\/M\u00e4ngel\/Nichtbeachtungen sind. Arbeiten, die nicht getan werden d\u00fcrfen.<\/li>\n<li><strong>\"Die Kraft von Hello World\"<\/strong>. Wir beeilen uns, alles Neueste und Interessante in die Produktion einzuf\u00fchren.<\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"pochemu-vsyo-poluchilos\">Warum es gelungen ist<\/h2>\n<p><\/p>\n<p>Nat\u00fcrlich habe ich nicht alle Fehler aufgez\u00e4hlt, die wir in dieser Zeit gemacht haben, aber die h\u00e4ufigsten, die f\u00fcr ein Projekt jeder Spezifik ang\u00e4ngig sind. Eine solche Fixierung der Fehler hilft, sie in Zukunft zu vermeiden.<\/p>\n<p><\/p>\n<p>Ein wenig dar\u00fcber, wie es uns gelungen ist, innerhalb des Unternehmens ein so kleines Startup zu gr\u00fcnden und das Gesch\u00e4ft davon zu \u00fcberzeugen, von einem bereits gekauften System auf etwas Eigenes zu wechseln.<\/p>\n<p><\/p>\n<p><strong>Bedingung Nr. 0<\/strong>. Ein gesundes Klima im Unternehmen. Das sind nicht nur die \"gl\u00fchenden Augen\" der Mitarbeiter und ihre Kommunikationsf\u00e4higkeit unter stressigen Bedingungen, um Kekse zu bekommen, nein. Es geht um alle Interaktionen.<\/p>\n<p><\/p>\n<p><strong>Bedingung Nr. 1<\/strong>. An das glauben, was man tut. Ernsthaft, ich glaube nicht, dass wir irgendeine Chance gehabt h\u00e4tten, wenn wir mit dem Pilotprojekt begonnen h\u00e4tten, ohne das gekaufte System \"bis zur Schraube\" auseinanderzunehmen \u2014 das hei\u00dft, zur\u00fcckzutreten und unterbewusst zu wissen, dass dieses System besser ist und uns \u00fcbertreffen wird.<\/p>\n<p><\/p>\n<p>Was wir gemacht haben: 1) Wir haben das gekaufte System verstanden und damit die Hauptanforderungen des Gesch\u00e4fts gel\u00f6st. 2) Wir haben eine Liste von Aufgaben erstellt, die nicht nur jetzt bestehen, sondern auch in absehbarer Zeit anfallen werden. 3) Wir haben die L\u00f6sung ausgew\u00e4hlt, die am besten geeignet ist. Und so war unsere Bewertung der L\u00f6sung die Bewertung von Experten.<\/p>\n<p><\/p>\n<p>W\u00fcrden sie uns etwas geben, wenn wir einfach k\u00e4men und sagen w\u00fcrden: \u201eLeute, das ist alles Mist, wir wollen uns damit nicht auseinandersetzen und haben beschlossen, alles von Grund auf neu zu machen\u201c? Eher nicht. Zudem w\u00fcrden wir die Antwort in einer Form erhalten, die man sich gut merkt \ud83d\ude42<\/p>\n<p><\/p>\n<p><strong>Bedingung Nr. 2<\/strong>. Den ersten Schritt machen wir klein. Wir generieren die erste Hypothese und \u00fcberpr\u00fcfen sie. Man kann daf\u00fcr auch seine eigene Zeit nutzen. Wenn man keine Zeit verschwenden m\u00f6chte, sollte man sich besser nicht an so ein Projekt heranwagen. Und wenn man nicht die kleine Hypothese \u00fcberpr\u00fcfen m\u00f6chte, sondern sofort etwas Gro\u00dfes und Gl\u00e4nzendes machen will \u2013 dann halte dich besser von solchen Leuten fern!<\/p>\n<p><\/p>\n<p>Wir hatten Gl\u00fcck, und die allererste Hypothese hat funktioniert. Aber das passiert nicht immer. Zum Beispiel haben wir in einem der n\u00e4chsten Projekte, als wir die Admin-Oberfl\u00e4che im Rahmen eines \u00e4hnlichen Pilotprojekts vorantrieben, nur auf die 18. Variante erfolgreich angesprochen. Die ersten 17 Ans\u00e4tze waren umsonst. \u00dcbrigens waren die Wendungen in der Geschichte der Erstellung der Admin-Oberfl\u00e4che auf dem Niveau brasilianischer Seifenopern, weil das Team aus Jungs bestand, die zu diesem Zeitpunkt schon Veteranen waren, echte \u201ealte Hasen\u201c.<\/p>\n<p><\/p>\n<p><strong>Bedingung Nr. 3<\/strong>. Wir erstellen ein MVP und suchen nach den Schmerzen der entscheidenden Person. Nat\u00fcrlich k\u00f6nnte sich schon der Ausdruck in seinem Gesicht gruselig ver\u00e4ndern, nur weil Sie ihm bereits zum drei\u00dfigsten Mal irgendetwas vorschlagen. Aber trotzdem. Und unbedingt zeigen wir, wie genau wir seine Probleme mit unserem Produkt l\u00f6sen.<\/p>\n<p><\/p>\n<p><strong>Bedingung Nr. 4<\/strong>. Schnell basteln wir einen Prototypen, der aussieht <em>ungef\u00e4hr<\/em> wie das endg\u00fcltige Ergebnis. Alles perfekt zu machen ist verlockend, aber man k\u00f6nnte in den Perfektionismus verfallen, sodass man statt eines Prototyps bereits eine perfekte Version des Produkts zeigen m\u00f6chte, was es nicht gibt. Also macht einfach zumindest etwas aus St\u00f6cken.<\/p>\n<p><\/p>\n<p><strong>Bedingung Nr. 5<\/strong>. Produkt. Das Projekt w\u00e4chst, erh\u00e4lt finanzielle Mittel, und Experten mit solider Erfahrung kommen.<br \/>\nUnd wenn Sie ein klassischer Startup-Gr\u00fcnder sind, ist das der Moment, in dem Sie schleunigst verschwinden sollten. Denn die leichten Fl\u00fcge \u00fcber alles und das Gef\u00fchl der allgemeinen Wohlt\u00e4tigkeit verfliegen schnell.<\/p>\n<p><\/p>\n<p>Der Gang in die Produktion ist eine Konfrontation mit realen Lasten, die Integration mit einem Dutzend Systeme, wobei man beim Erstellen neuer Funktionen gleichzeitig die alten Versionen weiterentwickelt. All das sind Herausforderungen, die viel ernster sind als nur eine Idee zu entwickeln und, wenn auch gut, aber nur ein einziges Problem des Kunden zu l\u00f6sen.<\/p>\n<p><\/p>\n<p>Diese Herausforderungen und das Wachstum der F\u00e4higkeiten erfolgen genau in diesem Stadium.<\/p>\n<p><\/p>\n<p>Vielen Dank f\u00fcrs Lesen. Happy New Code!<\/p>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47R\u00fcckblick auf die Schaufeln. Wie eine selbstgeschriebene L\u00f6sung besser war als eine kostenpflichtige | ProHoster","description":"Hallo! Ich hei\u00dfe Alexey Pjankov und bin der Hauptprogrammierer bei der Firma Sportmaster.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/retrospektiva-grablej-kak-samopisnoe-reshenie-okazalos-kruche-platnogo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/73944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=73944"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/73944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/73945"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=73944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=73944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=73944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}