Design, Entwicklungszyklen und Tests

Nachdem ich mit verschiedenen Teams zusammengearbeitet hatte, fand ich selbst einige Entwicklungsregeln heraus, die ich mit Ihnen teilen möchte.

Design


  1. Es ist besser, viel Zeit mit dem Entwurf eines Informationssystems zu verbringen, als später Zeit und Geld zu verlieren.
  2. Fehler im Design können zur Folge haben: Verzögerung der Zeit, mehrfache Kosten des Projekts.
  3. Das Entwerfen eines Systems erfolgt vollständig von Anfang bis Ende (ohne zusätzliche Funktionen hinzuzufügen) oder bietet Modularität:

    - Entwicklung und Verfeinerung des Konzepts vollständig.
    - Entwicklung einer sehr detaillierten technischen Spezifikation.

    - Entwicklung eines Datenbankschemas
    - Entwicklung von Controller-Skripten
    - Designentwicklung von Präsentationsvorlagen
    - Entwicklung eines Benutzerverhaltensszenarios (auch als Testszenario bezeichnet)
    - Geschäftsführer
    - ...
  4. Es ist besser, eine Ausschreibung für die Erstellung von Projektdokumentationen und technischen Spezifikationen zu erstellen und dann ein Audit durchzuführen. Vielleicht geben Sie in der Anfangsphase mehr Geld aus, aber Sie können in Zukunft um ein Vielfaches mehr sparen.

Entwicklung


1. Verwenden Sie in der Entwicklung vorgefertigte und stabile Lösungen: Für die Arbeit mit der Datenbank ist es besser, das MVC-Framework (Model View Controller) oder ORM (Object Relational Mapping) oder AR (Active Record) zu verwenden und mit Standard-CRUD-Skripten zu arbeiten ( Create Read Update Delete) - ein Generator, der fehlerfreien Code erstellt.

Niemand wird Ihre Fähigkeiten als Low-Level-Entwickler zu schätzen wissen, aber wenn das System stabil und fehlerfrei funktioniert, ist dies ein großes Plus.

2. Dokumentieren Sie den Code.

3. Erstellen Sie eine gute und klare technische Dokumentation.

4. Verwenden Sie einen Docker.

5. Verwenden Sie Montagesysteme mit automatischer Version.

Organisation der Teamarbeit


  1. Verwenden Sie Versionskontrollsysteme, ich habe Git in meiner Arbeit verwendet.
  2. Teilen Sie die Arbeit der Entwickler in verschiedene Funktionsmodule auf, sodass beim Zusammenführen der Zweige des Versionskontrollsystems keine Konflikte entstehen.
  3. Nehmen Sie keine extreme Programmierung am Knie vor, wenn die Lösung eines Problems mehrere Stunden bis mehrere Tage dauert.

Legen Sie Aufgaben für mindestens eine Woche und höchstens einen Monat bis zum nächsten Build fest.

Testen


  1. Verwenden Sie keine Aufgabeneinstellungs- und Korrektursysteme für Tester.
  2. Verwenden Sie automatisierte Tests: Erstellen Sie ein Software-Testmodul, das jedes Mal vor der Montage ausgeführt wird, und testen Sie das gesamte System automatisch.

Entwicklungszyklus


Nachdem Sie eine hochwertige technische Aufgabe erstellt haben, können Sie mit der Entwicklung beginnen. Dann werde ich einen Wiederholungszyklus geben:

1. Festlegen von Aufgaben für Entwickler in verschiedenen Systemen zur Überwachung der Ausführung von Aufgaben, damit sie sich nicht auf den Code des anderen auswirken, z. B. Aufteilen des Systems in Module, die jeweils in einem eigenen Zweig arbeiten.

Aufgaben müssen innerhalb einer Woche erledigt sein.

Nach Abschluss jeder Aufgabe muss der Entwickler automatisierte Softwaretests ausführen, die das gesamte System abdecken.

2. Jeden Montag wird der Code jedes Entwicklers in der Hauptniederlassung zusammengeführt.

Nachdem das Ergebnis der Arbeit des gesamten Teams in der Hauptniederlassung angezeigt wurde, kopiert jeder der Entwickler die Hauptniederlassung für sich.

Als nächstes wiederholt sich der Zyklus.

Mit diesem Ansatz


  1. Die Anzahl der Fehler, die sich aus Aufgaben ergeben, ist minimal.
  2. Sie können ein besseres Softwareprodukt erstellen.
  3. Sie sparen Zeit.
  4. Sie sparen Geld.
  5. Das Team wird schneller, effizienter und harmonischer arbeiten (ohne Konflikte bei der Änderung des Codes).
  6. Sie können Aufgaben pünktlich erledigen.
  7. Erledigte Aufgaben werden besser.
  8. Sie müssen keine zusätzlichen Aufgaben ausführen, z. B.: Ändern des Designs, der Funktionalität oder anderer Elemente im Laufe der Arbeit.

Was macht das Ergebnis vorhersehbarer und einfacher und verständlicher?

Ich programmiere seit mehr als 10 Jahren alle interessanten und erfolgreichen Projekte!

Source: https://habr.com/ru/post/de442704/


All Articles