Ein Blick auf den Entwicklungsprozess

    Bild
    In dieser kurzen Diskussion möchte ich meine Gedanken darüber teilen, wie meiner Meinung nach der Entwicklungsprozess aussehen könnte. In diesem Fall spielt es keine Rolle, in welcher Region der Prozess eingerichtet wird. Es ist ziemlich universell und kann für die Organisation einer Vielzahl von Werken geeignet sein. Der Schwerpunkt wird jedoch weiterhin auf der Softwareentwicklung liegen.

    Wahrscheinlich ist vielen aufgefallen, wie begeistert sie sich einer neuen Aufgabe stellen. Ich möchte alles von vorne anfangen, um es perfekt zu machen. In der Realität geschieht dies jedoch selten, und nach und nach hört die Arbeit auf, Zufriedenheit zu bringen. Bei der Programmierung manifestiert sich dies in Codestapeln, suboptimalen und undokumentierten Lösungen, die die Komplexität erhöhen, und es ist zu aufwendig, den gesamten Kontext im Speicher zu halten.

    Dies ist teilweise auf einen objektiven Grund zurückzuführen - das Wachstum des Systems und seine Komplikation. Es wird schwierig, alle Verbindungen eines großen, auch gut gestalteten Systems im Auge zu behalten. Die übermäßige Komplexität ist jedoch häufig auf eine Reihe nicht optimaler Entscheidungen zurückzuführen, die der Entwickler ständig im Prozess trifft.

    Ein wichtiger Faktor für produktive und qualitativ hochwertige Arbeit ist die Freude an der Arbeit. Das Ergebnis sollte immer gefallen und nicht nur in der Anfangsphase der Projektarbeit. Es spielt keine Rolle, in welchem ​​Stadium sich das Projekt befindet - eine Beschreibung der Idee oder das Schreiben von Code, aber das Ergebnis sollte immer gefallen. Dies ist eine der wichtigsten Voraussetzungen für produktives Arbeiten.

    Wie - es bedeutet, dass es Einfachheit, Klarheit und Ausdruckskraft hat. Und so kommen wir zur zweiten wichtigen Komponente des Entwicklungsprozesses - den kollektiven Kontrollen. Es scheint mir das optimalste Modell für N-Checks zu seinDabei ist N die Anzahl aufeinanderfolgender Überprüfungen. Sein Wesen ist wie folgt. Jede Aufgabe wird geprüft, es ist egal, ob es sich um ein Design handelt oder um das Ergebnis der Entwicklung oder Erstellung von Dokumentationen. Je wichtiger die Aufgabe, desto mehr andere Aufgaben hängen davon ab, desto ausführlicher und klarer sollte die Lösung sein. Dies wird durch mehrstufige Prüfungen erreicht. Die erste Prüfung wird vom Entwickler selbst durchgeführt, daher darf N nicht kleiner als 1 sein. Dazu muss er Kriterien für die Beurteilung der Qualität haben. In diesem Stadium können Widersprüche identifiziert werden, die vom Entwickler behoben werden können. Wenn es Probleme in der Lösung gibt, die der Entwickler nicht beheben kann (und dementsprechend die Lösung nicht mehr mag, hat er keine Freude daran), führt er sie weiter zur nächsten Stufe der Überprüfung. Und nach und nach wird mit jedem neuen Überprüfungskreis die Lösung verfeinert, die bestehenden Widersprüche überwunden, und es wird einfach und klar. Durch Experimentieren mit kollektivem Denken bin ich zu dem Schluss gekommen, dass eine erste Lösung erforderlich ist, um eine konstruktive Diskussion zu beginnen, obwohl dies nicht immer (und meistens) nicht optimal ist. Das gemeinsame Erarbeiten der idealen Lösung ist eine hervorragende Möglichkeit, das Team zu schulen. Es lehrt die Menschen, konstruktiv zu denken und Widersprüche zu erkennen.

    Ich habe oben erwähnt, dass beim Testen von Entscheidungen Qualitätskriterien verwendet werden sollten . Und dies ist das nächste wichtige Element im Workflow. Abhängig von der Art der Aufgabe (Design, Codierung, Design, Dokumentation) können verschiedene Qualitätskriterien verwendet werden. Darüber hinaus kann die Spezifität des Themenbereichs auch Änderungen an diesen Kriterien vornehmen. Neben konsequenten Kontrollen sind Qualitätskriterien für das Teamtraining von Bedeutung. Es ist unwahrscheinlich, dass eine Person schlecht arbeitet, ohne Schaden zu nehmen. Oft wird schlechte Qualität durch banale Unkenntnis dessen verursacht, wie man es richtig macht. Qualitätskriterien helfen, häufige Fehler zu vermeiden.

    Und als separates Element des Entwicklungsprozesses möchte ich die gemeinsame Arbeitsplanung hervorheben. Bei der Aufteilung der Arbeit in Aufgaben erweisen sich einige häufig als zu umfangreich. Infolgedessen beginnt die Aufgabe übertrieben wichtig zu erscheinen, verbraucht unerschwinglich viel Zeit. Und das vielleicht Gefährlichste ist, dass der Entwickler, der zu sehr in die Aufgabe vertieft ist, das gesamte System als Ganzes übersieht, und dies kann zu nicht optimalen Lösungen führen (und führt oft dazu). Daher betone ich die Wichtigkeit einer kollaborativen Aufgabenplanung. Durch die regelmäßige Überprüfung der Aufgaben können Sie nicht vom Kurs abweichen, die Mitarbeiter besser einbeziehen und Aufgaben entsprechend ihrer Wichtigkeit ausführen. Darüber hinaus sieht jeder Teilnehmer bei der gemeinsamen Planung ein ganzheitliches System, kann die darin enthaltenen Zusammenhänge erfassen und das System somit ganzheitlicher und rationaler gestalten. Dennoch ist die Entwicklung von Informationssystemen eine Teamarbeit.

    „Es ist unmöglich zu kontrollieren, was nicht zu kontrollieren ist,
    und es ist unmöglich zu kontrollieren, was nicht zu messen ist.“ Die


    visuelle Kontrolle des Arbeitsprozesses ist auch ein wichtiger Bestandteil eines gut etablierten Prozesses. Die Kanban-Methodik ist mir sehr ähnlich, aber mit einigen Ergänzungen. Ich habe versucht herauszufinden, wie eine solche Kanbantafel aussehen könnte:
    Bild
    Hier wird die folgende Notation verwendet:
    • Der rote Rahmen der Aufgabe unterstreicht deren Bedeutung. Das heißt, andere Aufgaben im Projekt hängen davon ab. Bei der Bearbeitung einer Aufgabe und ihrer Überprüfung ist erhöhte Aufmerksamkeit erforderlich. Die Bedeutung und Auswirkung auf andere Aufgaben wird im Rahmen der gemeinsamen Planung festgelegt.
    • Die graue Schrift der Aufgabe zeigt an, dass diese bestimmte Aufgabe von Aufgaben abhängt, die noch nicht abgeschlossen wurden.
    • Die Hintergrundfarbe in der Spalte „Running“ gibt den Status der Aufgabe an. Wenn beispielsweise eine Aufgabe zu lange am Entwickler hängt (die tatsächliche Ausführungszeit hat die geplante überschritten), wird dies durch einen roten Hintergrund angezeigt.
    • Entwickler können einen Status festlegen, um Aufmerksamkeit zu erregen. Zum Beispiel "Stieß auf ein Problem" oder "fand eine originelle Lösung"
    • Im rechten Teil der Spalte „Fertig stellen“ sind die Aufgaben gemäß dem Betriebsplan gruppiert. Ich mag diese Option, die ich von Redmine ausgeliehen habe.

    In diesem Artikel habe ich nicht über verschiedene Arten von Tests und die Verwendung von Versionskontrollsystemen gesprochen. Sie werden standardmäßig verwendet. Und über sie ist schon viel gesagt worden, es hat keinen Sinn, es zu wiederholen.

    Zusammenfassend werde ich noch einmal die wichtigsten Punkte des Prozesses auflisten:
    • Die Freude an jeder geleisteten Arbeit, das Ergebnis sollte wie eine Frage des Stolzes sein
    • N-stufige Prüfungen. Je wichtiger die Aufgabe ist, je grundlegender sie ist, desto gründlicher sollte sie überprüft werden
    • Verfügbarkeit von Qualitätskriterien für verschiedene Kategorien von Aufgaben
    • Gemeinsame Diskussion und Arbeitsplanung
    • Visuelle Prozesskontrolle

    Jetzt auch beliebt: