Empfehlungen für die Formalisierung der Softwareentwicklung und -verwaltung

Gilt für diese Checkliste für azure Well-Architected Framework Operational Excellence:

OE:03 Formalisieren Sie die Software-Ideenfindung und Planungsprozesse. Ziehen Sie etablierte Branchen- und Organisationsstandards heran. Verwenden Sie einen allgemeinen, priorisierten Backlog und ausreichend detaillierte Spezifikationen. Führen Sie auf der Grundlage der Ergebnisse kontinuierliche Verbesserungen in Ihrem Planungsprozess durch.

In diesem Leitfaden werden die Empfehlungen für die Verwaltung von Softwareentwicklungspraktiken gemäß den festgelegten Standards beschrieben. Die Fähigkeit Ihres Teams, qualitativ hochwertige Software zu produzieren, basiert auf einem strukturierten, kollaborativen Ansatz für die Entwicklungsplanung. Produktbesitzer und -manager müssen in der Lage sein, die Arbeit klar zu verstehen, die Entwickler zu jedem Zeitpunkt in einem Entwicklungszyklus ausführen, und sie den Projektbeteiligten nahezubringen. Andererseits müssen Entwickler die Ziele des Entwicklungszyklus dank gut geschriebener Features, Benutzergeschichten und Akzeptanzkriterien verstehen. Etablierte Standards definieren, wie Entwicklungspraktiken durchgeführt werden sollten, und ermöglichen es dem Workloadteam, effektiv zusammenzuarbeiten, wodurch das Risiko von Verwirrung bei Zielen und Erwartungen reduziert wird.

Wichtige Entwurfsstrategien

Formalisieren Sie Ihre Softwareentwicklungspraktiken, um sicherzustellen, dass Produktbesitzer, Projektmanager und Entwickler die Ziele jedes Sprints verstehen und den Projektbeteiligten eine konsistente Qualität bieten. Eine Überprüfung der Anleitungen zu Entwicklungspraktiken finden Sie im Leitfaden zur kontinuierlichen Integration.

Einrichten von Zusammenarbeits- und Kommunikationsstandards

  • Zusammenarbeit: Der Prozess der Definition vorgeschlagener Änderungen an der Arbeitsauslastung sollte eine zusammenarbeitende Arbeit sein. Die meisten Änderungen an der Arbeitsauslastung wirken sich auf mehrere Funktionen und/oder Komponenten aus, sodass so viele Workload-Teammitglieder wie möglich dazu beitragen, dass wichtige Aspekte nicht übersehen werden und dass jeder über die Auswirkungen auf ihre bestimmte Domäne informiert ist. Die Zusammenarbeit hilft außerdem, den Umfang einer Änderung klar zu definieren und die erforderlichen Aufgaben aufzuteilen, die erforderlich sind, um die Änderung in gut definierte Arbeitsaufgaben zu erreichen, da eine größere Gruppe mit Fachwissen in allen Domänen erfahrungsbasierte Schätzungen für den erforderlichen Aufwand bereitstellen kann.

  • Kommunikation: Definieren Sie die Standardprotokolle für Produktbesitzer und Projektmanager, um bevorstehende Versionen intern und extern zu fördern. Sie können z. B. einen Standard für die Kommunikation mit externen Parteien über bevorstehende Versionen einrichten. Der Standard kann festlegen, dass die Kommunikation zwei Wochen vor der Veröffentlichung gesendet werden sollte, und eine Erinnerung sollte 24 Stunden vor der Veröffentlichung gesendet werden.

  • Überprüfung: Führen Sie regelmäßig interne Audits Ihrer Entwicklungspraktiken über Entwicklungszyklus-Retrospektiven und Postmorteme durch. Die Prozessreflexion sollte schuldlos sein und sich auf das Lernen konzentrieren, das als Verbesserungen angewendet werden kann. Stellen Sie sicher, dass das Team darüber nachgibt, wie effektiv die Benutzergeschichte und -aufgaben bei der Definition der erforderlichen Aufgaben und der Genauigkeit von Zeitschätzungen waren.

  • Berichte: Standardisieren Sie Berichte für Projektbeteiligte, die nützliche Metriken bereitstellen, die sich auf Änderungen konzentrieren. Wenn Sie sich auf Veränderungen konzentrieren, können Sie die Produktbeschleunigung und Verlangsamung nachverfolgen. Hilfreiche Metriken können Änderungen in:

    • Die monatliche Wachstumsrate der Einführung.

    • Leistung.

    • Schulungszeit.

    • Die Häufigkeit von Vorfällen.

    Die Berichterstellung sollte nicht als Tool verwendet werden, um die Arbeit einzelner Personen auszuwerten. Vermeiden Sie daher Metriken wie Storypunkte oder Codezeilen für jeden Techniker.

Auswählen von Branchenstandardtools

Verwenden Sie etablierte, branchenüblich bewährte Tools und Prozesse wie Agile, Scrum und Kanban-Boards. Die Entwicklung eigener Tools und Prozesse ist ein bedeutendes Unternehmen, das Zeit- und Entwicklungszyklen in Anspruch nimmt, die andernfalls für Ihre Arbeitsauslastung aufgewendet werden könnten. Die meisten erfahrenen DevOps-Ingenieure und Produktbesitzer sind mit diesen Arten von Tools und Prozessen vertraut, sodass die Lernkurve bei der Einführung minimal sein sollte. Ebenso wird der Onboarding-Prozess für Neueinstellungen auch von der Verwendung von Standardtools und Prozessen profitieren, da sie wahrscheinlich bereits mit den gleichen Tools und Prozessen in Kontakt stehen.

Tradeoff: Agile-Methodik kann zu streng werden, wenn sie übermäßig präskriptiv ist. Streben Sie nach einem Gleichgewicht zwischen klar definierten Standards und Innovationen.

Einführung eines Standards zum Erfassen von Endbenutzerszenarien

  • Benutzergeschichten: Standardisieren sie eine Vorlage für Benutzergeschichten. Stellen Sie sicher, dass jeder Benutzerabschnitt eine einzelne Arbeitseinheit ist, die aus sicht des Endbenutzers geschrieben wird. Gut geschriebene Benutzergeschichten sollten die folgenden Merkmale aufweisen:

    • Jede Benutzergeschichte sollte ganz unabhängig voneinander sein. Benutzergeschichten unabhängig voneinander zu halten, vermeidet Verwirrung mit überlappender Arbeit und hilft dem Team zu verstehen, ob die Arbeit an einer bestimmten Benutzergeschichte auf die Arbeit an anderen basiert, was bei der Planung und Priorisierung hilft.

    • Jeder Benutzerabschnitt ist verhandelbar. Die Perspektiven der Endbenutzer und der Arbeitsauslastung von Teammitgliedern sind beide wichtig, um realistische Benutzergeschichten zu erfassen, die über einen kurzen Zeitraum erreicht werden können.

    • Benutzergeschichten sind für den Endbenutzer wertvoll. Wenn Sie Benutzergeschichten aus der Perspektive des Endbenutzers schreiben, erfassen Sie die Änderungen, die sie sehen möchten, und die ihrer Erfahrung einen Mehrwert verleihen. Dieser Fokus bleibt erhalten, da der Benutzerabschnitt in Arbeitsaufgaben unterteilt ist, um sicherzustellen, dass jede Bereitstellung eine verbesserte Benutzererfahrung bietet.

    • Der aufwand, der für eine Benutzergeschichte erforderlich ist, ist mit einem hohen Maß an Vertrauen zu schätzen. Ohne eine enge Annäherung an die für eine bestimmte Benutzergeschichte erforderlichen Stunden zu haben, ist die Planung schwierig und das Potenzial für fehlende Fristen steigt, was möglicherweise zu kaskadierenden Auswirkungen auf andere geplante Arbeiten führt.

    • Gut geschriebene Benutzergeschichten sind klein, sodass sie innerhalb weniger Wochen abgeschlossen werden können. Kleinere Themenbereiche helfen ihnen dabei, sie aufschätzbar und überschaubar zu halten und Arbeitsaufgaben zu erreichen.

    • Benutzergeschichten sollten testbar sein. Ohne zu testen, dass ein Feature bereitgestellt wurde, kann der Endbenutzer nicht sicher sein, dass das Ziel erreicht wurde. Selbst wenn ein Test noch nicht für eine bestimmte Benutzergeschichte geschrieben wurde, sollte es ein klares Verständnis dafür geben, wie ein Test entwickelt werden kann, um die Bereitstellung des Features zu beweisen.

  • Akzeptanzkriterien: Standardisieren sie eine Vorlage für Akzeptanzkriterien. Stellen Sie sicher, dass sich die Akzeptanzkriterien speziell auf die Benutzergeschichte beziehen und anhand eines oder mehrerer Akzeptanztests eindeutig nachgewiesen werden können.

Standardisieren von Bereitstellungspraktiken

  • Bereitstellung: Planen Sie die Verwendung häufiger kleiner, iterativer Bereitstellungen anstelle großer seltener Bereitstellungen. Mit diesem Ansatz können Benutzergeschichten und Arbeitsaufgaben von einem Projektmanagement-Standpunkt aus verwaltbar bleiben und das Risiko großer Probleme verringern, wenn Bereitstellungen fehlschlagen.

  • Begriffe: Standardisieren Sie Ihre Definition der fertigen Entwicklungszyklen, um sicherzustellen, dass unterstützende Funktionen, einschließlich Tests, Dokumentation und Barrierefreiheitsfeatures, erfolgreich abgeschlossen werden.

  • Ablaufverfolgung: Stellen Sie sicher, dass der Entwicklungsprozess nachverfolgbar ist. Sie sollten den Status Ihrer Produktionsarbeitsauslastung und den zugehörigen Code eindeutig auf Qualitätsüberprüfungstests, Akzeptanzkriterien, Benutzergeschichten und Features zurückverfolgen. Eine detaillierte Ablaufverfolgung kann z. B. auch eine behördliche Anforderung sein, z. B. das Gesundheitswesen.

Azure-Erleichterung

Azure Boards ist ein webbasierter Dienst, mit dem Teams Die Arbeit im gesamten Entwicklungsprozess planen, nachverfolgen und diskutieren können. Es eignet sich gut für Agile-basierte Entwicklungspraktiken.

GitHub Projects ist ein anpassbares Projektmanagementtool, mit dem Projekte organisiert und mithilfe von Problemen und Pullanforderungen in GitHub integriert werden können.

Checkliste für operative Exzellenz

Lesen Sie den vollständigen Satz von Empfehlungen.