Designlösungen: Halten Sie sich an Ihre Regeln

Es ist kein Geheimnis, dass je grĂ¶ĂŸer das Softwareprojekt ist, desto mehr hĂ€ngt sein Erfolg von den Ergebnissen der Arbeit der Analysten ab, insbesondere von der Wahl der richtigen Strategie fĂŒr die Erstellung und Vereinbarung von Entwurfsentscheidungen. Aber wie organisieren Sie die Arbeit dieser kreativen Mitarbeiter? Und wie können die Ergebnisse ihrer AktivitĂ€ten sowohl den Kundenvertretern als auch den Programmierern gleichermaßen klar gemacht werden? Wie beurteilen Sie den möglichen Zeitrahmen und die Bedeutung dieser Arbeit fĂŒr das Projekt? In diesem Artikel habe ich versucht, meine Rezepte zur Optimierung des Managements der analytischen Arbeit an Projekten zur Erstellung von Software fĂŒr Regierungskunden zu formulieren. Jede Kritik wird geschĂ€tzt.



Eine Quelle



Forschungsrahmen



, .



.


Da es derzeit mehr als zwei Dutzend Arten von Stellenangeboten fĂŒr „Analysten“ auf dem IT-Arbeitsmarkt gibt , werde ich sofort reservieren, dass ich ĂŒber die analytische Arbeit an staatlichen Projekten zur Erstellung kundenspezifischer Software sprechen werde. Wie meine Erfahrung zeigt, kann ein Business Analyst, der die Mechanismen zur Automatisierung von GeschĂ€ftsprozessen nicht versteht, keine angemessene ErklĂ€rung des Problems erstellen. Ebenso kann ein Systemanalytiker, der die GeschĂ€ftsziele der Automatisierung nicht versteht, nicht angemessen sein. Aus meiner Sicht sollte ein Analyst, der an benutzerdefinierten Softwareprojekten arbeitet, daher die Kompetenzen eines Business Analyst, Systemanalysten und UX-Designers kombinieren. DarĂŒber hinaus muss der leitende Analyst fĂŒr ein solches Projekt in der Regel die Funktionen des Product Owner ausfĂŒhren .(wenn der Kunde es Ihnen erlaubt). Es ist die Organisation der AktivitĂ€ten solcher "Universalsoldaten", die weiter diskutiert wird.



Bei der Erstellung von Software im Interesse von Regierungsorganisationen ist die HaupttÀtigkeit von Analysten mit der Lösung von Problemen verbunden wie:



  • Anforderungsmanagement;
  • Bildung von Problemstellungen fĂŒr Programmierer, Implementierungsplanung und Kontrolle ĂŒber die Implementierung dieser Aufgaben;
  • Vorbereitung der Projektdokumentation.


Die Details der Verwaltung der Anforderungen fĂŒr benutzerdefinierte Software, das Verfahren fĂŒr deren anfĂ€ngliche Verfeinerung und die SchlĂŒsselrolle des fĂŒr deren Implementierung verantwortlichen Analysten wurden im vorherigen Artikel ausfĂŒhrlich erörtert .



Die SpezifitĂ€t der KundenwĂŒnsche ist jedoch keine Garantie dafĂŒr, dass ihm das Endergebnis gefĂ€llt. Im Verlauf meiner Projekte wurde das folgende Muster "aufgedeckt": Alle Funktionskommentare des Kunden, die wĂ€hrend aller Arten von Tests aufgezeichnet wurden (nicht zu verwechseln mit den identifizierten Fehlern!), Bezogen auf Anforderungen, fĂŒr die die Entwurfslösung nicht proaktiv mit dem Kunden vereinbart wurde. In dieser Hinsicht sind die Statistiken von Natalya Rukol indikativ.Bei der Analyse der Ergebnisse eines der Projekte stellte sich heraus, dass fast 70% der zum Zeitpunkt der Lieferung aufgedeckten "Fehler" auf ein mangelndes VerstĂ€ndnis der ursprĂŒnglichen Anforderungen der Entwickler zurĂŒckzufĂŒhren waren. 



Es scheint, dass nach KlĂ€rung der Anforderungen an das Softwareprodukt ein Paket mit Konstruktionsdokumentationen gemĂ€ĂŸ GOST RD 50-34.698 erstellt , mit dem Kunden koordiniert und anschließend die Software vollstĂ€ndig gemĂ€ĂŸ dem genehmigten Projekt entwickelt werden muss. Es geht oft um diese Abfolge von Aktionen, die man von den hervorragenden SchĂŒlern von gestern hört (SchĂŒler der Klasse C wissen in der Regel ĂŒberhaupt nichts ĂŒber die Existenz solcher Dokumente) und von vielen "erfahrenen" Spitzenbeamten, die nie persönlich fĂŒr das Endergebnis der Softwareentwicklung verantwortlich waren. 



Wie meine Erfahrung zeigt, ist die Erstellung der Projektdokumentation nur der letzte Teil der Arbeit des Analytikers. Als Analogie kann man eine Forschungsarbeit zitieren, aufgrund derer ein Bericht gemĂ€ĂŸ GOST 7.32 erstellt oder eine Dissertation verfasst werden sollte. Diese Dokumente sind jedoch nur eine Form der Formalisierung der erzielten wissenschaftlichen Ergebnisse. DurchfĂŒhrung fruchtloser Experimente, statistische Verarbeitung von "weißem Rauschen", Suche nach Körnern der erforderlichen Informationen in Tonnen pseudowissenschaftlichen Altpapiers - all diese integralen Bestandteile der wissenschaftlichen Arbeit bleiben immer hinter den Kulissen. Gleiches gilt fĂŒr die Projektdokumentation. Auf der einen Seite ist es ein integraler Bestandteil des Software - Produkts... Andererseits enthĂ€lt es nur die Endergebnisse der analytischen Arbeit.  





Quelle



Meiner Meinung nach ist dieser Aspekt einer von mehreren GrĂŒnden, warum „dumme“ Kunden gemĂ€ĂŸ den Anforderungen von RegierungsauftrĂ€gen fĂŒr Softwareprojekte planen, sich in der Phase der VorprĂŒfung auf die Konstruktionsdokumentation zu einigen, d. H. zum Zeitpunkt des tatsĂ€chlichen Abschlusses der Softwareentwicklung.



Aus diesem Grund werden in unseren Softwareprojekten in JIRA zwei verschiedene Arten von Aufgaben gebildet, mit denen wir die analytische Arbeit direkt von der AktivitÀt zur Erstellung der Projektdokumentation trennen können. Und was erfreulich ist, ich bin nicht der einzige, der zu solchen Schlussfolgerungen gekommen ist... Was genau sollten Analysten bei einem Softwareprojekt tun, nachdem sie die Anforderungen festgelegt und die Projektdokumentation fertiggestellt haben?



Designlösungen VS Designdokumentation?



Wie schön es auf dem Papier ist,

wie einfach es ist, Worten zu folgen.

Wie einfach es ist, dich unfehlbar zu machen.



B. Grebenshchikov


Trotz der Tatsache, dass die Definition des Konzepts "Entwurfslösung" in GOST 34.003-90 enthalten ist , wurde in meinem Fall die Bedeutung dieses Konzepts im Verlauf schmerzhafter und erfolgloser Versuche "entdeckt", mit den Kundenvertretern mehrerer miteinander verbundener, aber nicht eindeutiger Anforderungen ĂŒbereinzustimmen, als die Kunden den Vorschlag einfach ignorierten Wir beschreiben die Festlegung von Zielen ( TMP ), die in strikter Übereinstimmung mit RD 50-34.698-90 gebildet werden. Nachdem festgestellt wurde, dass die Entscheidung des Kunden erst zu Beginn des Tests getroffen werden wĂŒrde, wurde das folgende Manöver durchgefĂŒhrt: Unsere Konstruktionslösung wurde an den Kunden gesendet (d. H. Eine Lösung, auf die er sich formal nicht einigen musste). 



Die rituellen Attribute wurden in der Entwurfslösung beibehalten, es wurden jedoch erhebliche Anpassungen an diesem Dokument im Vergleich zum gehosteten HMO vorgenommen. Die Entwurfslösung wurde durch ein Diagramm eines automatisierten GeschĂ€ftsprozesses mit einer kurzen Beschreibung, Layouts der BenutzeroberflĂ€che, Formen empfangener Berichte zum Drucken, VorschlĂ€gen fĂŒr die Verteilung des Zugriffs sowie einem kurzen Szenario fĂŒr die Bereitstellung dieser Entwurfslösung ergĂ€nzt. In Bezug auf mehrdeutige und widersprĂŒchliche Anforderungen wurde eine eindeutige und detaillierte Beschreibung vorgenommen. Der Rest des Textes wurde jedoch auf jede mögliche Weise minimiert. Triviale Algorithmen wurden ĂŒberhaupt nicht beschrieben, ebenso wie Felder von Bildschirmformularen nicht beschrieben wurden, deren Zweck und Validierungsregeln aus den gegebenen UI-Layouts ersichtlich waren.  



Der resultierende Cocktail hatte gleichzeitig eine Ă€hnliche Form wie ein Dokument, das gemĂ€ĂŸ den Anforderungen von RD 50-34.698-90 erstellt wurde, entsprach jedoch keinem der in diesem GOST angegebenen Formate. Gleichzeitig wurde das, was darin geschrieben stand, von einem gewöhnlichen, unvorbereiteten Vertreter des Kunden verstanden. Die in diesem Dokument angegebenen Anforderungen waren sowohl fĂŒr den Kunden als auch fĂŒr den Auftragnehmer völlig klar. Die Grenzen der Anforderungen, der erforderliche Umfang der geplanten Arbeiten und die Art und Weise, wie diese Arbeiten hĂ€tten abgeschlossen werden sollen, wurden festgelegt.



Das Anschreiben enthielt ungefÀhr Folgendes:



„Wir prĂ€sentieren eine Variante einer Designlösung, um die aufgefĂŒhrten Anforderungen zu erfĂŒllen. Wir informieren Sie ĂŒber den Beginn der Arbeiten zur Umsetzung der vorgestellten Option. Wenn Sie mit der vorgeschlagenen Designlösung nicht einverstanden sind, informieren Sie uns bitte darĂŒber. "



Im Falle einer weiteren Erörterung der Anforderungen wurde das Fehlen einer Antwort auf ein solches Schreiben als formelle Vereinbarung des Kunden mit der vorgeschlagenen Entwurfslösung interpretiert. Wenn der Kunde EinwĂ€nde erhob, wurde er in diesem Fall darĂŒber informiert, dass die Arbeiten zur Implementierung dieser Entwurfslösung ausgesetzt wurden und erst nach deren Genehmigung fortgesetzt werden konnten. In diesem Fall war die weitere Genehmigung in der Regel viel schneller.



Was lustig ist, zuerst in Antwortschreiben, wenn der Kunde nicht die notwendigen Klarstellungen gesendet hat, haben wir den Ausdruck "Arbeit ist ausgesetzt" verwendet. Nach mehreren derartigen Schreiben begann einer der Vertreter des Kunden einen Skandal im Zusammenhang mit der Tatsache, dass „gemĂ€ĂŸ dem unterzeichneten Vertrag die Arbeit nicht ausgesetzt werden kann und die mangelnde KlĂ€rung der Anforderungen kein Grund fĂŒr die Beendigung der Entwicklung ist“. Er hatte jedoch keine EinwĂ€nde gegen den Wortlaut, dass „die Arbeit nicht fortgesetzt werden könne“. 



Wie sich spĂ€ter herausstellte, erleichterte der vorgeschlagene Ansatz trotz der Tatsache, dass die gebildete Struktur der Entwurfslösung nicht den Anforderungen von GOST entsprach, die rituellen Körperbewegungen fĂŒr die Erstellung und Genehmigung der Entwurfsdokumentation erheblich. Der Inhalt der Konstruktionsdokumentation, der fĂŒr die Lieferung des Projekts erforderlich war, wurde durch selektives Kopieren der relevanten Abschnitte der Konstruktionslösungen gebildet. Gleichzeitig wurden in Bezug auf die Abschnitte der Dokumentation, die auf der Grundlage prĂ€ventiv "vereinbarter" Entwurfsentscheidungen erstellt wurden, vom Kunden wĂ€hrend der Abnahme keine Kommentare abgegeben.



 Beschreibung des Elefanten nicht nach GOST



Die Wahrheit ist, dass Kunden nicht wissen, was sie wollen. Normalerweise wissen sie nicht, welche Fragen beantwortet werden mĂŒssen, und haben fast nie so ausfĂŒhrlich ĂŒber das Problem nachgedacht, wie es in der Spezifikation angegeben werden sollte. 



Frederick Brooks


Meiner Meinung nach ist das Hauptkriterium fĂŒr eine gute Beschreibung der Problemstellung (Entwurfslösung) nicht die ErfĂŒllung der formalen Anforderungen von GOST, sondern eine eindeutige Beschreibung der Bedingungen fĂŒr den erfolgreichen Abschluss der Arbeiten zur ErfĂŒllung der Kundenanforderungen. Unter diesem Gesichtspunkt ist die Beschreibung von Testobjekten zur ÜberprĂŒfung der Anforderungen tatsĂ€chlich ein wesentlicher Bestandteil jeder Entwurfslösung.





Es sollte beachtet werden, dass bei der Arbeit mit einem Regierungskunden alle Unklarheiten und Unklarheiten in Ihren Entwurfsentscheidungen immer zugunsten der Regierung interpretiert werden. Um solche blinden Flecken durch Versuch und Irrtum bei den Protokollierungsanforderungen zu vermeiden, wurde eine Checkliste zur Bewertung der EntwurfsqualitĂ€t entwickelt, in der die Hauptabschnitte aufgefĂŒhrt sind, die bei Bedarf in der Entwurfslösung berĂŒcksichtigt werden sollten . Daher sollte jede Entwurfslösung von den folgenden Positionen aus ĂŒberprĂŒft werden.



  1. Liste der Kundenanforderungen (die als Teil der Entwurfslösung implementiert werden).
  2. Liste der Definitionen und AbkĂŒrzungen.
  3. Die Liste der normativen Dokumente, die den automatisierten Prozess regeln.
  4. (use case), :



    • ( , BPMN – , : , ) ;
    • ;
    • ( ) — ;
    • ( , ).
  5. :



    • , ;
    • (UI) ( , , ); 
    • () .
  6. :



    • API;
    • () «» ( );
    • () «» .


    , « » ( 2011 ., 1). - , ().
  7. :



    • , () , ;
    • , () .
  8. () , , . ( ) . ( ), , () , . «» .


Ich wiederhole - dies ist keine feste Struktur fĂŒr eine Entwurfslösung, sondern eine formale Liste von Fragen ( Checkliste)), deren Antworten gegebenenfalls in der Entwurfslösung in der einen oder anderen Form wiedergegeben werden sollten. Wie die Praxis zeigt, ist es besser, wenn Sie dies in der Entwurfslösung explizit angeben, wenn keine Entwicklung in Bezug auf eines der oben beschriebenen Elemente erwartet wird. Oder fast explizit (erschrecken Sie den Kunden nicht). Das Hauptkriterium ist eine eindeutige Interpretation. Es ist wichtig, es nicht zu ĂŒbertreiben, damit anstelle der Lösung der angegebenen Anforderung nicht fĂŒnf neue aufgrund ihrer Genehmigung geboren werden. Beispielsweise bedeutet der Ausdruck "Referenz von Objekttypen sollte nur tatsĂ€chliche Werte enthalten" und der Ausdruck "Die Referenz von Typen bietet keine Möglichkeit, den Änderungsverlauf zu speichern" dasselbe, aber der zweite Ausdruck fĂŒhrt höchstwahrscheinlich dazu, dass Sie Versionsmechanismen beschreiben und implementieren mĂŒssen genau dieses Handbuch.Bei der Gestaltung von Entwurfsentscheidungen ist es wichtig zu verstehen, dass der Zweck darin besteht, die Regeln festzulegen, nach denen Sie garantiert die mit diesen Entscheidungen verbundenen Anforderungen ĂŒbergeben.





, , , .





Ein Großteil (wenn nicht der gesamte) des Projekts hĂ€ngt davon ab, wie sich die Vertreter des Kunden das Endergebnis vorstellen. Daher ist das Entwerfen von BenutzeroberflĂ€chenlayouts bereits in der Anfangsphase der SchlĂŒssel zum Erfolg des Projekts. KlĂ€ren und spezifizieren Sie die Anforderungen des Kunden anhand einer externen Beschreibung des Softwareprodukts, das er versteht. Der Dialog mit den Vertretern des Kunden, der auf der Erörterung der Bildschirmlayouts beruhte, erwies sich als viel effektiver als der Dialog ĂŒber die Erörterung der Eingabe- und Ausgabedatenformate und ihrer Transformationsalgorithmen (die Hauptabschnitte des IPR, die gemĂ€ĂŸ GOST erstellt wurden).



Das Ausarbeiten aller Elemente der BenutzeroberflĂ€che im Rahmen von Entwurfszuweisungen bietet neben der Transparenz des VerstĂ€ndnisses der Implementierungsgrenzen auch eine Lösung fĂŒr eine Reihe von Problemen:



  1. . , , UI, , .



    : . . ISBN: 978-5-91180-090-1
  2. UX- . , , ( ).
  3. «» . UI , , – , ( « » ).
  4. , «» . UX- . , 80% . , . ( ) : « ?». , , ( ) , , . , « ». «» . , , « ».


Quelle



Ich möchte ein paar Worte zu den Prinzipien des Entwurfs von BenutzeroberflĂ€chen fĂŒr automatisierte Steuerungssysteme sagen. Trotz des Lawinenwachstums bei der Verwendung mobiler GerĂ€te stehen Desktop-Computer und Laptops weiterhin nicht im Wettbewerb um automatisierte Steuerungssysteme, die in Regierungsbehörden eingesetzt werden (sowie zur Lösung von Programmier- und Systemverwaltungsproblemen). Derzeit sind verschiedene Tools fĂŒr das Prototyping von Schnittstellen erschienen . Wenn Sie jedoch die Besonderheiten der Verwendung von Figma oder Axure im Interesse mobiler GerĂ€te erlĂ€utern , verlieren Sie 10% der primitiven Möglichkeiten, mit denen Sie 90% der BenutzeroberflĂ€chen entwerfen können.ACS .



Nach meiner Erfahrung mĂŒssen Sie beim Entwerfen von BenutzeroberflĂ€chen einige einfache Regeln befolgen, um Softwareentwicklungsprobleme erheblich zu reduzieren.



ZunĂ€chst mĂŒssen Sie sich fĂŒr ein allgemeines Navigationsschema entscheiden, an das Sie wie bei einem Weihnachtsbaum immer mehr neue OberflĂ€chenelemente problemlos hĂ€ngen können. In dieser Hinsicht hat sich fĂŒr automatisierte Steuerungssysteme in meiner Praxis das effektivste Schema gezeigt, das in verschiedenen IDEs weit verbreitet ist



Ich werde hier kein Beispiel fĂŒr die IntelliJ IDEA- oder PhpStorm- Schnittstelle gebenIch werde jedoch versuchen, die Hauptkomponenten einer solchen BenutzeroberflĂ€che aus Sicht eines Analytikers eines automatisierten Steuerungssystems in Bestandteile zu zerlegen.



Die nach diesem Schema erstellte Schnittstelle enthĂ€lt links ein zusammenklappbares vertikales Bedienfeld, das die Navigation im gesamten System ermöglicht. Das Vorhandensein eines vertikalen Bedienfelds mit Abschnitten, die hierarchische MenĂŒs enthalten, stellt die Implementierung der Regel „ Drei Klicks “ sicher .





Jede der MenĂŒoptionen der Hauptnavigationsleiste bietet Zugriff auf Formularlisten von Objekten. Listen von Objekten (Katalogen) und Formularen (Karten), in denen diese Objekte angezeigt werden, machen den Löwenanteil der BenutzeroberflĂ€che aus. Die Vereinheitlichung dieser beiden Arten von Formularen im Rahmen des Projekts und die Bildung einer Navigationsstruktur auf ihrer Grundlage kann die Anzahl der Benutzeranforderungen, die mit MĂ€ngeln in der Benutzerdokumentation verbunden sind, erheblich reduzieren.



Im Rahmen der Beschreibung eines Listenformulars muss das Design Folgendes bestimmen:



  • Liste der angezeigten Attributfelder;
  • Anforderungen fĂŒr Listenansichtsmodi (Standardanzeige, Gruppierung, Sortierung);
  • Anforderungen an das dem Listenelement zugeordnete Unterformular (Schnellansichtskarte (Tabelle));
  • Anforderungen an das Filterfeld (Auswahl von DatensĂ€tzen gemĂ€ĂŸ einer bestimmten Liste von Attributen);
  • Beschreibung von Gruppenoperationen (gleichzeitige Aktionen fĂŒr mehrere Listenelemente, z. B. Vergleichen von Listenelementen, Ändern von Attributen fĂŒr mehrere Listenelemente, Ändern von Zugriffsrechten fĂŒr mehrere Listenelemente);
  • Beschreibung der Formulare (Panels) der statistischen Betriebsberichte (Überwachung) auf der Grundlage der Ergebnisse der Listenauswahl;
  • eine Beschreibung der Anforderungen an Druckberichte und einen Algorithmus fĂŒr deren Erstellung;
  • Anforderungen zur Benachrichtigung von Benutzern (externen Systemen), wenn sich Objekte Ă€ndern.


Beim Entwerfen von Listenformularen haben die folgenden Regeln gut funktioniert:



  1. — , «» , .   (ribbon). 
  2. , , :

    • — , CRUD: , , , ;
    • ( , );
    • ;
    • ( , , ).


  3. ( .. ) . , . .


  :



  •   ;
  •   , (CRUD, , ..) ;
  • /;
  • Liste möglicher Informationsmeldungen;
  • Möglichkeiten zum Anzeigen des Verlaufs von ObjektĂ€nderungen.


Ein paar Worte zum Toolkit. Aufgrund von Versuch und Irrtum bei der DurchfĂŒhrung verschiedener Projekte im Rahmen der Regierungsverordnung haben sich die folgenden drei AnsĂ€tze fĂŒr das Schnittstellendesign als am effektivsten erwiesen.



  1. Falls wĂ€hrend der Entwicklung Änderungen an vorhandenen Schnittstellen erforderlich sind, sollten Sie das Rad nicht neu erfinden. Hier zeigte sich Paint.NET am besten (mit dessen Hilfe ĂŒbrigens Bilder fĂŒr diesen Artikel erstellt wurden). Es ist nicht sinnvoll, die Formulare erneut zu zeichnen. Es ist einfacher, den fertigen Screenshot zu Ă€ndern.
  2. , — « »,   MS Visio . , , , , MS Visio, , , Windows. 
  3. , -  , . , , . DHTMLX. XML-, , . (view), , . , , MS Visio. , , , « ».


Immer wieder gab ich fortgeschrittenen Entwicklern all diese Argumente, weit entfernt von den Problemen des Kunden. Ich sah ihre verblassenden Augen und hörte ihrer fachmĂ€nnischen EinschĂ€tzung der Elend und Überlastung der vorgeschlagenen BenutzeroberflĂ€che zu. Nach der Analyse der Erfahrungen mehrerer Projekte stellte ich jedoch im Laufe der Zeit ein erstaunliches Muster fest: Wenn ein Programmierer die RĂŒckstĂ€ndigkeit und KomplexitĂ€t der entwickelten BenutzeroberflĂ€chen eifrig kritisiert, ist dies ein sicheres Zeichen dafĂŒr, dass der Kunde eine solche OberflĂ€che mit einem Knall akzeptiert.



GerĂŒste und Schalungen



Normalerweise denken die Leute viel. Das Problem ist jedoch, dass sie ĂŒber Probleme nachdenken und nicht ĂŒber Lösungen fĂŒr diese Probleme.



David Allen


Beim Bau von HĂ€usern werden viele Hilfsstrukturen verwendet, die nach Abschluss des Baus völlig unnötig sind. Dies sind GerĂŒste und Schalungen . Bemerkenswerterweise versuchen auch Laien nicht, die Notwendigkeit des Kaufs und der Aufrechterhaltung dieser Strukturen zu bestreiten. In der IT-Branche hingegen sieht man hĂ€ufig einen "erfahrenen" Analysten, der Schwierigkeiten hat, sofort eine Projektdokumentation zu erstellen, die alle Anforderungen erfĂŒllt.



Meiner Meinung nach ist die erstellte Konstruktionsdokumentation jedoch ohne vorbeugende Registrierung und Genehmigung von Konstruktionslösungen nur fĂŒr den formellen Vertragsschluss geeignet und schadet dem Betrieb in Zukunft mehr als es hilft. Die oben beschriebenen Entwurfslösungen und Prototypen sind jedoch nicht die einzigen "Hilfsstrukturen" in der analytischen Arbeit.



Quelle



Auf den ersten Blick scheint alles von der Erfahrung des Analytikers abzuhĂ€ngen, und es ist unmöglich, die Verwendung dieser Hilfswerke zu regulieren. Wie kann man beispielsweise die Arbeit eines Analysten berĂŒcksichtigen und regulieren, der den ganzen Tag einen Kunden besucht und am nĂ€chsten Tag drei Gigabyte aller Arten von Dokumenten mitgebracht hat? Oder dass der Analyst eine Woche damit verbracht hat, diese Dokumente zu studieren? Ist das gut oder schlecht? Und Sie können diese Frage wirklich nicht beantworten, wenn Sie die Ergebnisse nicht kennen, die angesichts der Projektumsetzung sinnvoll sind.



Aus diesem Grund wurde im Rahmen unseres Projekts eine Klassifizierung der durchgefĂŒhrten analytischen Arbeiten anhand der erzielten Ergebnisse durchgefĂŒhrt. Neben der DesignlösungBei den meisten Softwareprojekten, an denen ich teilnehmen musste, musste der Analyst Analysematerialien der folgenden Typen entwickeln.



  • Dokumentenanalyse - Ein Bericht, der auf den Ergebnissen der Analyse der behördlichen Dokumente oder der Projektdokumentation des Kunden basiert.
  • Analytische ÜberprĂŒfung - Ein Bericht ĂŒber die Ergebnisse der Analyse von Lösungen fĂŒr das aufgetretene Problem (in der Regel eine vergleichende Analyse neuer Technologien oder Markttrends).
  • Informationsumfrage - ein Bericht ĂŒber die Ergebnisse einer Studie ĂŒber die bestehenden GeschĂ€ftsprozesse des Kunden (Bildung des Ist-Modells - " Wie es ist ").
  • — ,   (use case).  legacy-.  
  • — , ( ).  
  • — , .


Der zweite Schritt in Richtung eines vorhersehbaren Entwurfs bestand darin, spezifische Anforderungen fĂŒr die beabsichtigte analytische Arbeit zu definieren. Basierend auf diesen Anforderungen wurde fĂŒr jede Art von zu entwickelndem Analysematerial eine JIRA-Problembeschreibungsvorlage definiert.



Vorlagen fĂŒr die Beschreibung von Analyseaufgaben
Materialart Typische Beschreibung der Einstellung eines Problems in JIRA (erforderliche Ergebnisse der analytischen Arbeit)
1. Dokumentenanalyse 1.1. Identifizieren Sie die Liste der Änderungen in Bezug auf die vorherige Version des Dokuments
1.2. Zeigen Sie die im Dokument eingefĂŒhrten Begriffe auf
1.3. Identifizieren und beschreiben Sie die   normativen und informellen DomĂ€nenklassifizierer, die in diesem Dokument identifiziert werden
1.4. Identifizieren Sie Abschnitte von Dokumenten, die automatisierte Prozesse regeln
1.5. Identifizieren Sie Mehrdeutigkeiten und WidersprĂŒche
1.6.
1.7.
2. 2.1.

2.2. (, , , )
2.3.
2.4.
3.   3.1. , .

3.2. () ,
3.3. ( )
3.4. ( , , )
3.5.
3.6. ( )
3.7. ( )
4. 4.1.
4.2. .
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
4.9.
4.10.
4.11.
4.12.
4.13.
5. 5.1. ()
5.2. ()
5.3. ()
5.4. ( )
5.5. ( )
5.6.
6. 6.1. , ( , )
6.2. ( , )
6.3. ( , , , — data mining)
6.4.
7. 7.1.
7.2. Entwickeln Sie einen Arbeitslehrplan
7.3. Bereiten Sie eine PrÀsentation vor
7.4. Bereiten Sie eine Liste der Grundkonzepte und ihrer Definitionen vor
7.5. Bereiten Sie eine Checkliste vor (Testaufgabe zur Bestimmung des Ausbildungsniveaus)
7.6. Bereiten Sie eine Videoaufnahme der Lektion vor


Die Aufgabenstellung fĂŒr die Entwicklung von Analysematerialien beinhaltet eine kurze Beschreibung der erforderlichen Ergebnisse und keine Beschreibung der Analyseprozesse. So wird beispielsweise empfohlen, AusdrĂŒcke wie "Domainanalyse durchfĂŒhren ..." oder "Dokument studieren" zu vermeiden.



Ein Plan fĂŒr den Maestro 



Alles sollte so einfach wie möglich angegeben werden, aber nicht einfacher.



Albert Einstein


Wenn es um die Planung von Analyse- und Programmierarbeiten geht, wird hĂ€ufig kontrovers darĂŒber diskutiert, wie der Zeitpunkt der Ergebnisse in diesem Fall geschĂ€tzt werden kann. Die obige Analyse dieser kreativen AktivitĂ€t lĂ€sst jedoch die Annahme zu, dass dies im Rahmen eines Softwareprojekts noch möglich ist. Der erste Schritt dazu besteht darin, die Systemkonstruktionsarbeiten in Teile zu zerlegen, die mindestens einmal pro Woche ĂŒberprĂŒft werden können. Es muss versucht werden, sicherzustellen, dass die Arbeitskosten des Analytikers fĂŒr die Bildung einer Entwurfslösung 5 Arbeitstage nicht ĂŒberschreiten (in Bezug auf das Volumen sollte eine solche Entwurfslösung ungefĂ€hr 20 bis 30 Seiten umfassen - gemĂ€ĂŸ GOST R ISO / IEC 15910-2002). Dementsprechend sollte ein Programmierer nach denselben Standards maximal 3 Stunden benötigen, um dieselbe Entwurfslösung zu ĂŒberprĂŒfen. 



Es ist wichtig zu verstehen, dass es nicht erforderlich ist, ein technisches Projekt aus einer Entwurfslösung zu erstellen . Die Entwurfslösung sollte nur eine kleine Gruppe miteinander verbundener Anforderungen abdecken, deren Ergebnis dem Kunden prÀsentiert werden kann.



Es ist auch wichtig zu vermeiden, in die Falle zu tappen, vor der Mary und Tom Poppendieck bei der Gestaltung einer Entwurfsentscheidung warnen., nĂ€mlich nicht als Geisel des Mythos zu werden, dass eine im Voraus erstellte detaillierte Spezifikation garantiert Verluste reduziert. In der Regel versucht der Kunde bei der Vereinbarung einer Entwurfslösung, alles, woran er sich erinnern kann, in dieses Dokument zu packen. Wenn Sie sich darauf einigen, ist es daher wichtig, das erforderliche Minimum sicherzustellen, um den erfolgreichen Abschluss der Vorversuche zu gewĂ€hrleisten. Gleichzeitig ist der SchlĂŒssel zum Erfolg nicht nur eine Kombination aus QualitĂ€t, Timing und Kosten, sondern auch die Zufriedenheit der Projektteilnehmer mit den Ergebnissen.



Um die Fristen fĂŒr die Erledigung der zu analysierenden Aufgaben zu erhalten, reicht in der Regel eine Expertenbewertung des Auftragnehmers selbst aus. Bei Streitigkeiten kann jedoch ein pragmatischer Ansatz angewendet werden.... Um die ObjektivitĂ€t der Bewertung der KomplexitĂ€t der zu analysierenden Aufgaben zu erhöhen, kann ein Online-Rechner verwendet werden , mit dem Sie die Arbeitskosten fĂŒr die DurchfĂŒhrung von Analysearbeiten planen und schĂ€tzen können. Mit diesem Tool können Sie eine Liste der geplanten Arbeiten erstellen und deren Wortlaut abhĂ€ngig von den Besonderheiten des Projekts prĂ€zisieren. FĂŒr jede der geplanten Arbeiten wird die minimale, maximale und wahrscheinlichste SchĂ€tzung der Arbeitskosten berĂŒcksichtigt. Als Ergebnis der Berechnung wird die erwartete KomplexitĂ€t der Aufgabe gebildet und die optimale Zeitreserve berechnet, die fĂŒr die Versicherung ĂŒbrig bleiben muss. Die generierte Beschreibung zum Einstellen des Problems fĂŒr die Analyse kann direkt in das Feld JIRA-Problembeschreibung kopiert werden.



ZusĂ€tzlich zu den allgemeinen Attributen, die im Artikel " JIRA: Projektgrenzen" beschrieben sind", FĂŒr jedes Problem vom Typ" Analyse "in JIRA wurde der folgende Satz zusĂ€tzlicher (benutzerdefinierter) Attribute empirisch bestimmt.



ZusÀtzliche Attribute der Aufgabe "Analyse"
Attributname Beschreibung
Allgemeine Information
Materialart Art der analytischen Materialien:



  • Analyse von Dokumenten;
  • analytische ÜberprĂŒfung;
  • Materialien fĂŒr Informationsumfragen;
  • Designlösung;
  • Systemanalyse;
  • Datenanalyse;
  • Lehrmaterial.


Lösungsergebnis
Aktuelle Version Die Nummer der aktuellen Version des Analysematerials wird vom zustÀndigen Analysten jedes Mal manuell geÀndert, wenn das entsprechende Analysematerial in das Dokumentationsrepository geladen wird. Die Zahl besteht aus zwei Teilen, die durch einen Punkt getrennt sind: [A]. [B].



  • [A] — , , : 0 — ( ); 1 — , , ; 2+ -  .

  • [B] — , . 



,
 
()


Lassen Sie uns unter BerĂŒcksichtigung des oben Gesagten die zuvor angegebene Abfolge von Aktionen des Analysten zur Implementierung von Aufgaben vom Typ "Analyse" im Interesse der Softwareentwicklung klĂ€ren .



1. Falls erforderlich, sollte der verantwortliche Analyst Aufgaben in JIRA fĂŒr die DurchfĂŒhrung von Informationsumfragen mit Kundenvertretern planen (diese Aufgaben sind mit den entsprechenden Anforderungen verknĂŒpft).



Es ist ratsam, vor dem Meeting in erster NĂ€herung Modelle der BenutzeroberflĂ€che zu erstellen , die mit dem Kunden besprochen werden können. Bei der DurchfĂŒhrung einer Informationsumfrage ist es notwendig, den HauptgeschĂ€ftsprozess aus seiner Sicht (User Story - User Story) mit dem Kunden zu besprechen), alternative Wege, auf denen der Kunde das Endergebnis sieht. 



Ich war oft der Meinung, dass die Grundlage einer Informationsumfrage die Befragung eines kompetenten Mitarbeiters ist, der ausfĂŒhrlich ĂŒber die Merkmale des automatisierten Prozesses informiert. Was fĂŒr die Entwicklung im Interesse eines gewerblichen Kunden gut ist, kann jedoch die unerwartetsten Konsequenzen fĂŒr eine Regierung haben. Ich bin wiederholt auf eine Situation gestoßen, in der sich herausstellte, dass die Beschreibung des Prozesses, die auf der Grundlage der Geschichten von grauhaarigen Veteranen erstellt wurde, den wichtigsten Anforderungen der aktuellen Regulierungsdokumente widerspricht. Und dies wurde nicht durch die Tatsache erklĂ€rt, dass der Analytiker etwas missverstanden hatte, sondern durch die Tatsache, dass der Veteran "dies sein ganzes Leben lang getan hat".



Vor dem Treffen mit Fachexperten ist es daher erforderlich, die Regulierungsdokumente unter dem Gesichtspunkt der Regulierung des Prozesses zu analysieren, dessen Automatisierung erwartet wird. Gleichzeitig ist es wichtig zu verstehen, dass Regulierungsdokumente auch nicht die ultimative Wahrheit sind. In einer unparteiischen Analyse enthalten Regulierungsdokumente hĂ€ufig immer Unklarheiten und WidersprĂŒche (die Ausnahme sind in der Regel Dokumente, die „in Blut geschrieben“ sind). Hier sind einige der hĂ€ufigsten Meinungsverschiedenheiten, auf die Sie achten sollten:



  • Verletzung der Grundprinzipien der Klassifizierung , beispielsweise wenn verschiedene Zeichen innerhalb derselben Gruppe gemischt werden (rot, grĂŒn, warm);
  • Erstellung von Berichtsdokumenten auf der Grundlage von Attributen, die nicht vorgesehen sind;
  • ;
  • - ;
  • — - , .


Die Lösung dieser regulatorischen Konflikte ist eines der Hauptprobleme beim Treffen mit Kundenvertretern. Um diese Entscheidung als Ergebnis der Informationsumfrage aufzuzeichnen, muss ein Protokoll mit Angabe der Teilnehmer, des Ortes und der Zeit erstellt werden. Das Protokoll wird dem Kunden zur KlĂ€rung vorgelegt (E-Mail ist der entsprechenden Aufgabe beigefĂŒgt). Danach kann die Aufgabe fĂŒr die Informationsumfrage in den Status "erledigt" versetzt werden. Diese JIRA-Aufgabe wird in den Status "geschlossen" versetzt, nachdem der Kunde eine BestĂ€tigung ĂŒber die Protokollgenehmigung erhalten hat.



2.  Basierend auf den festgelegten Anforderungen und den Ergebnissen von Informationsumfragen wird eine Entwurfslösung gebildet. Der verantwortliche Analyst muss dies mit dem Projektmanager und den Programmierern koordinieren (fĂŒr jede von ihnen werden entsprechende Unteraufgaben erstellt). Wenn die Entwurfslösung wĂ€hrend des Arbeitstages keine interne Genehmigung bestanden hat, wird die Aufgabe in den Status "Ausstehend" versetzt (ein Signal an den Projektmanager). Nach bestandener interner Genehmigung wird die Entwurfslösung zur ÜberprĂŒfung an den Kunden gesendet (ggf. Genehmigung). Alle Einreichungsdetails werden in den Kommentaren zur Aufgabe aufgezeichnet. WĂ€hrend sich die Entwurfslösung auf Kundenseite befindet, wird die Aufgabe in den Status "Ausstehend" versetzt.



3.Wenn die Entwurfslösung vereinbart ist (oder wenn klar ist, dass sich die Genehmigung verzögert und die Fristen ablaufen), formuliert der verantwortliche Analyst auf seiner Grundlage Aufgaben fĂŒr Entwicklung, Test und Dokumentation. In diesem Fall ist eine vorlĂ€ufige Bewertung der Arbeitskosten fĂŒr die Implementierung der Entwurfslösung erforderlich (als Summe der Arbeitskosten der mit dieser Entwurfslösung verbundenen Entwicklungsaufgaben). Basierend auf dieser EinschĂ€tzung ist es notwendig, den Zeitpunkt der Umsetzung der damit verbundenen Anforderungen zu klĂ€ren.



4.  Nach Vereinbarung mit dem Kunden (ein Schreiben, das diese Tatsache bestĂ€tigt, wird in JIRA gespeichert) kann die Aufgabe der Vorbereitung einer Entwurfslösung in den Status "abgeschlossen" versetzt werden.



Fortsetzung folgt 



Derzeit wird das Software-Design fĂŒr Regierungskunden am hĂ€ufigsten gemĂ€ĂŸ den Anforderungen der GOST 34-Serie organisiert. Gleichzeitig „vergessen“ die meisten Kundenvertreter hĂ€ufig, dass der Kunde zusĂ€tzlich zu der Dokumentation, die zum Testen der entwickelten Software bereitgestellt wird, im Rahmen der Genehmigung des Entwurfs und der technischen Projekte Konstruktionslösungen genehmigen muss, um die genaue Übereinstimmung der endgĂŒltigen Konstruktionsdokumentation mit diesem GOST zu befĂŒrworten. Und selbst wenn der Entwurf und die technischen EntwĂŒrfe vereinbart werden, ist es nicht ungewöhnlich, dass der Inhalt aus GrĂŒnden unrealistischer Fristen in voller Übereinstimmung mit dem Formular ignoriert wird. Dies gilt insbesondere fĂŒr den Entwurf von Systemen, die nicht in direktem Zusammenhang mit der Lebenssicherheit stehen. Bei einem der Projekte "lehrte" ein stellvertretender Leiter das Leben.Er sprach darĂŒber, wie er mit Wikipedia in einer Nacht ein 500-seitiges technisches Projekt erstellt hat. Ganz andere Menschen mĂŒssen in der Regel die Ergebnisse solcher „Designentscheidungen“ entwirren.



Unter diesen schwierigen Bedingungen können Sie mit den hier beschriebenen AnsÀtzen einen iterativen Aufbau der SoftwarefunktionalitÀt organisieren und gleichzeitig die Konsistenz der implementierten Lösungen beibehalten, die den Prinzipien der schlanken Softwareentwicklung entspricht . Zum anderen ermöglichen die Zieleinstellungen der beschriebenen Konstruktionslösungen die Erstellung von Dokumenten auf deren Basis, die den "Procrustean" -Anforderungen des Kunden entsprechen, zu minimalen Kosten.



Die Aufteilung der analytischen Arbeit in elementare Aktionen ermöglichte es auch, die Aktionen mehrerer Mitarbeiter mit unterschiedlichen Ausbildungsstufen zu koordinieren und so natĂŒrlich eine Kompetenzmatrix fĂŒr Analysten unseres Projekts in LANIT zu bilden , die ich im nĂ€chsten Artikel erörtern möchte .



PSDieser Artikel ist Teil einer Reihe von Artikeln mit dem Titel " Regeln fĂŒr die rechtzeitige Zubereitung köstlicher Software ", die ich als informelle Teamregelung fĂŒr kundenspezifische Softwareprojekte im Interesse von Regierungsorganisationen verwende. Diese Reihe enthĂ€lt die folgenden Artikel:

- " JIRA als Mittel gegen Schlaflosigkeit und NervenzusammenbrĂŒche " - die Hauptidee fĂŒr die Organisation der Arbeit an einem Projekt mit JIRA;

- " JIRA: Projektgrenzen " - Grundbestimmungen fĂŒr die Vereinheitlichung von Projekten und allgemeine Anforderungen fĂŒr alle Arten von JIRA-Aufgaben;

- " JIRA: Anforderungsmanagement " - die Hauptmerkmale der Registrierung, KlÀrung und Kontrolle der Umsetzung der Kundenanforderungen innerhalb des vorgeschlagenen Modells;

- "Designlösungen: Befolgen Sie Ihre Regeln “- die Hauptaspekte des analytischen Arbeitsmanagements und der Bildung von Problemstellungen fĂŒr Entwickler;

Im Rahmen dieses Zyklus wird Folgendes zur Veröffentlichung vorbereitet:

- " Matrix der Analystenkompetenzen " - Kriterien zur Bewertung des Reifegrades von Analysten fĂŒr kundenspezifische Softwareprojekte;

- " Wo sich die Probleme im Projekt verstecken " - die Kriterien (Metriken) der betrieblichen Bewertung des aktuellen Status des Softwareprojekts.



Das Hauptlabel dieser Artikelserie ist die evolutionÀre Verbesserung der QualitÀt von Softwareprojekten auf der Grundlage einer verbesserten Managementeffizienz. Mit anderen Worten, um angewandte Wachstumsmethoden auf den Ebenen des CMMI- Modells zu bilden.

Wenn Sie herausgefunden haben, wie Sie JIRA in Ihrem Softwareprojekt effizienter einsetzen können, teilen Sie Ihre Ideen mit. Vermeiden Sie nur bei der Beschreibung dieser Ideen die AusdrĂŒcke "irgendwie" und "irgendwie". Ich lade alle zum Diskutieren ein. Ich warte auf Kommentare / VorschlĂ€ge / Zweifel / WĂŒnsche in den Kommentaren.



All Articles