Warum ist es nicht immer schlecht, zu spät zu fliegen und nicht zu fliegen? Wer ist schuld daran, dass er zu spät zum Dock kommt? Warum im Voraus zum Flughafen kommen? Kann der A380 nach Astrachan fliegen? Warum funktioniert Intuition nicht immer? Überraschungen passieren - nie passiert und wieder hier? Warum schlagen Passagiere den Piloten nach der Landung zu?Angenommen, Sie entwickeln ein landesweites Informationssystem (GIS) auf nationaler Ebene. Das Projektteam (Analysten, Entwickler, Tester, Support-Services, Infrastruktur-Services usw.) besteht aus mehr als hundert Mitarbeitern. Das System wurde im Pilot- oder Industriebetrieb implementiert. Tausende von Organisationen haben sich in Ihr System integriert und damit begonnen, noch mehr planen die Integration. Zehntausende von Organisationen arbeiten über eine Webschnittstelle. Das System enthält nützliche Informationen für die Bürger und bietet interessante Funktionen. Der Kunde und / oder Benutzer benötigen neue Verbesserungen. Millionen von Menschen im ganzen Land sind registriert und nutzen das System. Geschenke von außen kommen in Form von Änderungen der Ölpreise, Sanktionen, Beschränkungen usw.
Präsentiert? Genau ein solches Projekt ist im Moment das GIS-Projekt für Wohnungsbau und kommunale Dienstleistungen, über das wir früher gesprochen haben und das wir jetzt fortsetzen möchten.
QuelleDie ersten Erfahrungen der Gebrüder Wright
Wenn Sie in einem kleinen Unternehmen arbeiten und „kleine Projekte“ entwickeln, haben Sie höchstwahrscheinlich nicht viele Release-Prozesse als solche. Das Arbeitsschema sieht ungefähr so aus. Sie tun einfach so, als wäre es schön, einige Funktionen in 4-5 Monaten zu veröffentlichen. Dann schreiben Sie Produktionen für einen weiteren Monat, entwickeln, entwickeln und versuchen dann, all diese Wirtschaft zu stabilisieren, um eine neue Version der Software in Betrieb zu nehmen. Natürlich stellt sich zum Zeitpunkt der Veröffentlichung heraus, dass einige Verbesserungen in keiner Weise stabilisiert werden können. Irgendwo werden Mängel in den Produktionen aufgedeckt, da die Produktionen schon lange gemacht wurden und sich jetzt etwas geändert hat, irgendwo stellte sich heraus, dass sie unter unrealistischer Funktionalität unterschrieben haben usw. Trotzdem funktioniert dieser Ansatz für sich recht gut, aber in der Regel, solange das Projektteam klein und die Intensität der Änderungen gering ist (das System wurde nicht in Betrieb genommen oder von einigen Benutzern pilotiert usw.). Im Prinzip können Sie ohne Prozesse auf ziemlich große Projekte skalieren - bis zu 20 Personen und bis zu 40 Personen - alles hängt von der Coolness des Einzelnen und seinem Engagement ab. Sicherlich sind viele Menschen mit der Situation vertraut, in der das Projektteam, bestehend aus coolen und verzweifelten Spezialisten, in Fällen, in denen die Fristen eingehalten werden und fast alles gütlich angespannt verschwunden ist und ... "auf ihren Schultern", "auf moralischen und willensstarken" Pizzaschachteln durch die Berge zog schließlich die Version in Betrieb.

Wilber und Orville Wright, die als Gebrüder Wright in die Geschichte eingegangen sind, waren die ersten auf der Welt, die ein Flugzeug bauten und darauf flogen. QuelleGlauben Sie mir, wir haben das auch durchgemacht (deshalb lieben wir jetzt alle möglichen verrückten Dinge wie
Racing Heroes ,
Marathons usw.). Irgendwann wurde uns jedoch klar, dass alles eine Grenze hat und dass wir bei der Implementierung von Wohnungs- und kommunalen Dienstleistungssystemen im GIS-Maßstab ohne einen klaren Freigabeprozess garantiert drei unangenehme Hauptmomente erhalten:
- Der Kunde ist mit Ihnen unzufrieden, weil Sie können die Daten für die Freigabe der Funktionalität nicht vorhersagen und die Fristen nicht ständig einhalten. Wenn eine unvorhergesehene Aufgabe auftritt, führt dies zu großen Problemen.
- Die Lebensqualität der Mitarbeiter verschlechtert sich aufgrund von ständigem Chaos, Showdowns, Überstunden usw.;
- Die Führungskräfte Ihres Unternehmens sind mit Ihnen unzufrieden, weil Kosten werden völlig unkontrollierbar sein.
Die Erfahrung von LANIT bei der Entwicklung von GIS-Wohnungen und kommunalen Diensten zeigt, dass einer der wichtigsten Momente für die Umstellung auf „Industriestangen“ bei der Umsetzung großer Projekte die hochwertige Konstruktion des Freigabeprozesses ist. Dies reicht natürlich nicht aus, um vollkommen glücklich zu sein, aber der Release-Prozess liegt allem zugrunde, und ohne ihn sind Sie garantiert viel schlimmer als es sein könnte.
In diesem Artikel werden wir unserer Meinung nach zwei Hauptpraktiken beschreiben, die dem effektiven Freigabeprozess in IT-Systemen der GIS-Skala für Wohnungsbau und kommunale Dienste zugrunde liegen:
- Verwendung eines Schemas der regelmäßigen Bereitstellung von Funktionen,
- verkürzter Freigabezyklus.
Einerseits sind diese Praktiken recht bekannt und werden in vielen Methoden verwendet sowie im
Agilen Manifest festgehalten. Sie widersprechen jedoch weitgehend der Intuition, erfordern bestimmte Qualifikationen und Fähigkeiten und sind daher sowohl beim Kunden als auch im Projektteam schwer zu rechtfertigen und auf mangelndes Verständnis zu stoßen. Ihre Umsetzung in Unternehmensstandards erfordert ein sehr gutes Verständnis dafür, „was wir erreichen wollen“ und „warum genau die Umsetzung dieser Praktiken zum gewünschten Ergebnis führt“. Im Folgenden werden diese Praktiken und die Hauptprobleme bei ihrer Implementierung anhand von Beispielen betrachtet.
Als wir unsere internen Prozesse im Zusammenhang mit dem Release-Management analysierten, tauchte in meinem Kopf eine Assoziation mit der Arbeit einer modernen Fluggesellschaft auf.
Regelmäßiger Flugverkehr
Die Fluggesellschaft führte eine Marktanalyse durch, prognostizierte, welche Strecken einen großen Passagierstrom haben und für die nächste Saison rentabel werden würden, verhandelte mit wem sie benötigt wurde, erhielt Rechte an den erforderlichen Strecken und startete regelmäßige Flüge. Der Flugplan ist in der Regel für sechs Monate bis zu einem Jahr seit langem bekannt. Wer genau fliegt, die Fluggesellschaft ist natürlich unbekannt - sie konzentriert sich auf die durchschnittliche projizierte Belegung. Darüber hinaus kann die Fluggesellschaft langfristige Vereinbarungen mit Flughäfen abschließen, überlegen, welche Flugzeuge für Flüge am vorteilhaftesten sind, eigene interne Verfahren festlegen usw. Dies alles trägt zur Kostenoptimierung bei.QuelleWenn ein Mitarbeiter eines Unternehmens zu einem bestimmten Zeitpunkt an einem wichtigen Meeting teilnehmen und dann mit dem Flugzeug in eine andere Stadt fliegen muss, wählt er einfach Flüge für sich aus, wobei er das Risiko einer Verzögerung des Meetings und die Verkehrssituation berücksichtigt.
Regelmäßige Flüge haben ihre Nachteile. Wenn ein Mitarbeiter ein Ticket für einen Flug gekauft hat, aber keine Zeit hatte, wartet das Flugzeug nicht darauf. Unangenehm? Ja Es kann sein, dass der Mitarbeiter heute wegfliegen muss und es erst morgen oder in nur einer Woche Flüge gibt. Nicht sehr gut? Ja Das große Plus ist jedoch, dass Sie Ihre Reise für sechs Monate oder ein Jahr planen und sicher sein können, dass der Flug stattfinden wird. Sie wissen genau, wann Sie ankommen, und Sie können diese Zeit Ihren Lieben mitteilen, die Sie treffen können, oder Sie können mit einem Transfer fliegen und müssen sich keine Sorgen machen, dass Sie keine Zeit zum Andocken haben. Denken Sie im Allgemeinen darüber nach, ein riesiges, schweres Eisenflugzeug, das für 90% der Menschheit überhaupt nicht versteht, wie es fliegt, wird Sie sehr schnell tragen, der Teufel weiß wo und es kostet Sie fast ein oder zwei Tage in einem Zug.Kommen wir zurück zum Projekt. GIS-Dienstprogramme verwenden regelmäßig Funktionen. Das
LANIT- Team erstellt einen Veröffentlichungsplan für 1 Jahr, in dem die Veröffentlichungsdaten so festgelegt werden, dass die Veröffentlichungen ungefähr 1 Mal pro Monat erfolgen. Da sich im Laufe des Jahres noch alles hundertmal ändern kann (mehr dazu weiter unten), wissen wir zum Zeitpunkt der Erstellung des Zeitplans immer noch nicht genau, welche Verbesserungen implementiert und in Betrieb genommen werden.
Bei der Planung wird der für den Infrastruktur- / Betriebsdienst erforderliche Zeitplan für die routinemäßige Wartung berücksichtigt. Es ist notwendig, dass sich globale und heterogene Veränderungen nicht überschneiden - auf diese Weise werden Risiken reduziert und es ist einfacher, alles unter Kontrolle zu halten. Beispielsweise ist es eine sehr schlechte Idee, eine neue Version der Software zu installieren und gleichzeitig die DBMS-Version zu aktualisieren oder die Firmware von Speichercontrollern zu aktualisieren.
Der entscheidende Punkt ist, dass sich die Veröffentlichungstermine später nicht ändern. Wenn die Version für ein bestimmtes Datum geplant ist, müssen wir in einen Kuchen einbrechen, aber die geplante Zeit aushalten.Als nächstes erklären wir warum und warum.
Die Tatsache, dass die Bedingungen für jede Version ungefähr gleich sind (Dauer, Team, bestimmte Aufgaben usw.), ermöglicht es Ihnen, alle Vorbereitungs- und Freigabeverfahren zu planen und zu debuggen.
Menschen, die nicht in Produktionsprozesse vertieft sind, verstehen möglicherweise nicht die Komplexität der Veröffentlichung einer Version für ein so großes Projekt wie ein GIS-Gehäuse und kommunale Dienste. Damit die Version veröffentlicht werden kann, müssen Sie viele Vorgänge ausführen, z. B. Regressionstests (möglicherweise mehrmals), Lasttests, Testen von Bereitstellungs- und Migrationsskripten, Analysieren von Leistungsstatistiken (SQL-Abfragen, Dienste usw.). . Die Situation wird durch die Tatsache verschärft, dass diese Vorgänge langwierig sein können. Beispielsweise kann die Bereitstellung einer Version auf einem Prüfstand einen Tag dauern. Wenn etwas schief geht, können Sie den Zeitplan einfach verlassen. Wenn Sie also keinen Zeitplan mit regelmäßigen und ungefähr gleich langen Zyklen haben, garantiere ich, dass jedes Problem für Sie 146% ein viel ernsthafterer Test ist.
Der Zeitplan wird auch benötigt, um die Fristen für die Behebung von Mängeln festzulegen und den Benutzern mitzuteilen. Wir korrigieren in der Regel die meisten vorhandenen Mängel in der aktuellen Version. Einige Fehler erfordern jedoch möglicherweise mehr Zeit oder treten am Ende des Freigabezyklus auf, sodass sie auf die nächste Version übertragen werden. Wenn wir aus irgendeinem Grund (siehe unten) anfangen, Versionen zu verschieben, erhalten Benutzer später automatisch Korrekturen, was nicht gut ist.
Ein Zeitplan für die Veröffentlichung von Versionen ist auch erforderlich, um die Freigabe von Verbesserungen zu planen, für die eine klare Frist gilt. Das Produktionsteam weiß genau, wann die Revision in Betrieb genommen werden soll, und wählt die gewünschte Version aus, in der sie veröffentlicht wird. Wenn das Veröffentlichungsdatum verschoben wird, kann dies dazu führen, dass die Überarbeitung verspätet veröffentlicht wird (zu den Folgen der Versionsverschiebung aufgrund einer wichtigen Aufgabe siehe unten).
Genau wie die regulären Verkehrsverbindungen ist dies die Grundlage des globalen Verkehrssystems. Der auf der regelmäßigen Bereitstellung von Funktionen basierende Freigabeprozess ist die Grundlage für die effektive Entwicklung eines GIS-skalierten Systems für Wohnraum und kommunale Dienste. Wenn dieser Prozess eingerichtet ist, ist es bereits möglich, Pläne für die Implementierung und Bereitstellung von Funktionen zu "stringieren".
Leider ist es schwierig und schwierig, solche scheinbar nützlichen Praktiken von allen Seiten einzuführen. Das Folgende sind die Hauptfallen, in die ein Team geraten kann und die überwacht und unterdrückt werden sollten.
Einsteigen in ein Flugzeug nach der Registrierung
Die Fluggesellschaften verfügen über ein optimiertes Check-in-Verfahren für Flüge, das insbesondere die Regel enthält, dass ein Passagier spätestens 40 Minuten vor Abflug für einen Flug einchecken muss. Warum brauchst du diese 40 Minuten? Sie werden benötigt, damit genügend Zeit zum Überprüfen des Gepäcks und zum Laden in das Flugzeug vorhanden ist, sodass anhand des Gewichts des Gepäcks und der Anzahl der registrierten Passagiere der erforderliche Treibstoff berechnet, das Flugzeug betankt usw. werden kann. Außerdem ist diese Zeit erforderlich, damit die Passagiere genügend Zeit haben, um den gewünschten Ausgang / Terminal zu finden. Es ist klar, dass mit der Fracht oder dem Passagier etwas schief gehen kann (der Passagier hat sich am Flughafen verlaufen oder etwas mit dem Gepäck passiert), und selbst diese 40 Minuten werden nicht ausreichen. Der Zeitpunkt des Registrierungsendes ist jedoch ein langjähriger Kompromiss zwischen der Verschwendung von Passagierzeit und dem Risiko von Notsituationen.
Wenn ein Passagier direkt am Ende des Check-ins am Flughafen ankommt, bedeutet dies einfach, dass er dem erhöhten Risiko zustimmt, dass etwas passiert, und dass er nicht rechtzeitig zum Flugzeug kommt. Wenn die Fluggesellschaft diese Personen trifft, führt dies dazu, dass sie ihre Risiken erhöht. Vielleicht muss sie nur für diesen Passagier einen speziellen Busflug zum Flugzeug bezahlen. Vielleicht macht das Flughafenpersonal beim letzten Check-in im letzten Moment einen Fehler und das Gepäck fliegt in die falsche Stadt.QuelleBei der Veröffentlichung von Releases ist einer der wichtigsten Punkte das Kriterium, das die Revision erfüllen muss, und die Frist, zu der sie durchgeführt werden sollte (ähnlich wie am Ende des Check-ins). Die monatliche Veröffentlichung der Version bedeutet, dass eine Aufgabe, die in der aktuellen Version der Software nicht für diese Frist bereit ist, in einem Monat auf die nächste Version übertragen wird. Oft kann man das ertragen, aber es ist besonders schwierig, dies zu tun, wenn die Aufgabe sehr wichtig ist, aber gleichzeitig ist es nur ein paar Tage oder eine Woche zu spät. Es besteht die große Versuchung, die Frist zu überschreiten und die noch nicht fertig gestellte Aufgabe in die Veröffentlichung aufzunehmen und zu versuchen, sie herauszudrücken.
Warum ist das so schlimm?
Erstens müssen
wir mutig zugeben und akzeptieren, dass all der „Druck“, „was ist, wenn wir ihn fangen“, höchstwahrscheinlich eine Panne des Produktionsmanagements ist. Dies bedeutet, dass verschiedene Maßnahmen nicht im Voraus ergriffen wurden und die Situation kritisch wurde. Jetzt wird die Situation aufgrund der „Helden“ von Einzelpersonen oder Teams korrigiert - Überstunden, Krücken, Glück usw. Aus Erfahrung kann dies kurzfristig zu einer Lösung des Problems führen. Wenn Sie dies jedoch ständig tun, führt dies zu einem „Ausbrennen“ der Menschen und anderen sehr unangenehmen Folgen.
Zweitens ist, wie im Beispiel der Fluggesellschaft, die Frist für die Aufgabenbereitschaft ein Kompromiss zwischen Zeitplänen und Risiken. Wenn wir anfangen, die Frist zu verletzen, erhöhen wir das Risiko von Problemen mit der Version - entweder wird die gesamte Version nicht rechtzeitig veröffentlicht oder die Qualität wird verringert, und wir erhalten eine Reihe von Anrufen aufgrund nicht funktionsfähiger Funktionen oder Probleme unter Last.
Leider treten Situationen auf, in denen eine sehr, sehr wichtige Aufgabe vorliegt und diese in der aktuellen Version freigegeben werden muss. Die Hauptidee ist jedoch, dass solche Situationen nicht allgemein anerkannt und gefördert werden sollten, sondern als Problem erkannt und in „Rückblicken“ betrachtet werden sollten.Flugverspätung durch VIP-Passagier
Angenommen, Sie haben einen Flug mit Transfer gekauft. Angenommen, Sie haben eine angemessene Zeit zwischen den Verknüpfungen ermittelt. Sie sind im Voraus am Flughafen angekommen, haben eingecheckt, sind in das Flugzeug gestiegen, haben meinen Vater und meine Mutter angerufen, und dann haben sie angekündigt, dass der Flug verspätet ist, weil Eine wichtige Regierungsdelegation kommt zu spät (natürlich werden sie Ihnen stattdessen über schlechtes Wetter oder zusätzliche Kontrollen berichten :)). Sie warten zusammen mit dem gesamten Flugzeug auf diese Delegation und fliegen daher mit erheblicher Verspätung davon. Wenn Sie an einem Zwischenpunkt ankommen, haben Sie nur noch 30 Minuten Zeit, um auf einem riesigen Flughafen zu navigieren und physisch zu einem anderen Terminal zu gelangen. Vielleicht sind Sie natürlich pünktlich, oder Sie verwirren etwas in Eile und rennen zum falschen Terminal oder haben einfach keine Zeit, alle erforderlichen Verfahren durchzuführen. Und wenn Sie auch Mitglied einer anderen Regierungsorganisation sind (aber nur bescheiden) und auch irgendwohin eilen?QuelleWenn die Fluggesellschaft also regelmäßig eine Verschiebung der Flüge zulässt, würde dies zu Problemen von allen Seiten führen. Für einen Passagier bedeutet dies, dass er mehr Zeit für Verbindungen aufwenden muss. Passagiere gehen mit größerer Wahrscheinlichkeit Risiken ein und kommen bis zum Ende der Registrierung. Dies wird zu noch mehr Konflikten und Zeitverschwendung führen. Für die Fluggesellschaft bedeutet dies auch, dass mehr Zeit für Ausfallzeiten am Flughafen benötigt wird, wodurch die Kosten steigen.Wenn im Release-Prozess plötzlich eine Aufgabe keine Zeit mehr für die geplante Zeit hat, besteht auch die große Versuchung, die gesamte Version zu verschieben - beispielsweise um eine Woche. Dies scheint eine einfache und gute Lösung zu sein, insbesondere wenn diese Aufgabe vom Hauptkunden kontrolliert wird.Schauen wir uns an, wozu dies letztendlich führt.
Im Rahmen des GIS-Projekts für Wohnungswesen und kommunale Dienste werden im Rahmen der nächsten Version bis zu 100 Aufgaben und weitere Fehlerkorrekturen ausgegeben. Eine Release-Verschiebung bedeutet, dass Benutzer die Funktionen erhalten, die sie benötigen, oder später Fehlerbehebungen vornehmen. Natürlich ist das diskutierte Problem wirklich wichtig, aber gleichzeitig sind viele der verbleibenden 99 Aufgaben auch sehr wichtig, aber da bei ihnen alles normal ist, haben wir sie bereits vergessen.
Weiter. Wenn wir anfangen, die Version regelmäßig zu verschieben, verliert der Kunde das Vertrauen in den Release-Plan. Er hat immer den Gedanken im Kopf, dass die nächste Veröffentlichung natürlich für den 10. geplant ist, aber höchstwahrscheinlich wird etwas passieren und es wird eine Verschiebung für eine oder sogar zwei Wochen geben. Die Gründe für die Verschiebungen mögen unterschiedlich sein, aber am Ende sind sie alle vergessen und es bleibt das Gefühl eines instabilen und undurchsichtigen Prozesses.
Was führt das? Wenn ein dringender Fehler oder eine dringende Aufgabe auftritt, stimmt der Kunde nicht zu, diese als Teil einer bestimmten Version freizugeben, sondern benötigt eine spezielle Version oder einen Hotfix. Infolgedessen haben wir erhebliche zusätzliche Kosten.Wenn wir eine Versionsverschiebung zulassen, verringert dies die Fähigkeit, den Prozess zu optimieren. Im Gegenteil, wenn das Freigabeverfahren einheitlich und regelmäßig ist, haben wir die Möglichkeit, es zu verbessern. Nach der Veröffentlichung der Version führen wir eine „Retrospektive“ durch, in der wir die wichtigsten positiven und negativen Punkte diskutieren, die während der Iteration aufgetreten sind. Mit jeder Wiederholung machen wir eine Art Verbesserung, wodurch die Gemeinkosten reduziert werden, die Anzahl der Fehler reduziert wird, das Ergebnis verbessert wird.
Warum ein großes Flugzeug nicht immer besser ist
Die Fluggesellschaft kann auf der Strecke verschiedene Flugzeugtypen einsetzen: Regionalflugzeuge für 75 bis 110 Passagiere (Typ SSJ-100 ) oder Schmalkörperflugzeuge für 140 bis 180 Passagiere (Typ A320 , Boeing 737 ) oder Großraumflugzeuge für 200 bis 300 Passagiere (Typ A330) , A340 ) oder Monster wie der A380 , die 525 bis 853 Passagiere befördern können. Vereinfacht gesagt können wir davon ausgehen, dass die Fluggesellschaft den gewünschten Flugzeugtyp und die gewünschte Flugintensität als Kompromiss zwischen dem Wunsch des Passagiers nach möglichst vielen Flügen pro Tag und dem Wunsch der Fluggesellschaft, die Transportkosten für einen Passagier zu senken, um ihren Gewinn zu maximieren, auswählt.Jetzt fliegen mindestens drei Fluggesellschaften in meine Heimatstadt Astrachan und fliegen täglich mit Regional- oder Schmalkörperflugzeugen. Selbst wenn die Flughafeninfrastruktur in Astrachan den Empfang des A380 (des größten und geräumigsten Flugzeugs von Airbus) ermöglichen würde, müsste man die Flugintensität drastisch reduzieren, was für die Passagiere völlig unpraktisch wäre. Wenn der Kostenunterschied nicht groß ist, bevorzugen die Passagiere eine größere Anzahl von Flügen pro Tag.Ungefähr dieselbe Logik arbeitet im Freigabeprozess. Je kürzer die Zeit zwischen den Release-Versionen ist, desto besser für den Kunden.
, . , , . , , .
.
, . , , , , , . , , “” . , , . . , ( , , , , , , ).
1. ( ), “ , , ” , . , . , . , , — , .
- , . .
—
, . , . , , - , .- , — , , ( ).
, , , . , , . — , (- ) . , , . , , , “” . , , . , . , 1,5-2 , 1,5 , -.
, :
— — , — , — , .
:
— , , . .
, , . .
. , , .. , . , , . .
Quelle, . , , , . , !, — . , , , . , , . . , . , , , . , , . , , .
, , , . , 4 , 2-3. . , .
, , .
. ( — ), .. . , - , , . - , . — , . . , , , . , ( , , , , , , , ..), . , , 2018 2018 , , ASAP . 4-5 ! 5 , 2-3 , 1-1,5 .
, , — .!
. , ! ., - , . , , . , , , - , . , , .
, , , , , , . — , .
, - , - . - . , . , , . , , , .
, . . , , - , .
, . , - , , .
, . , :
.
. ? ? ?