Ein Leitfaden für Anfänger zur Verwaltung der Softwareentwicklung mit Kanban und Trello
Veröffentlicht: 2022-03-11Jeder ist ein Projektmanager. Egal, ob Sie die Entwicklung einer neuen Anwendung verwalten und Ihr Startup ausbauen, an einem neuen Milliarden-Dollar-Unternehmensprojekt arbeiten oder einfach nur versuchen, Ihren Garten mit etwas DIY-Landschaftsgestaltung zu beleben, Sie verwalten immer ein Projekt.
Der Erfolg Ihres Projekts hängt von vielen Faktoren ab, aber einer der häufigsten Gründe für das Scheitern von Projekten ist ein Mangel an Management oder ein völlig schlechtes Projektmanagement. Egal wie klein Ihr Team ist oder wie klar Ihre Anforderungen dokumentiert sind, wenn Sie Ihr Team nicht richtig managen, wird Ihr Projekt zwangsläufig scheitern.
Agiles Projektmanagement ist eine weithin akzeptierte Methode, um moderne Softwareentwicklungsprojekte anzugehen. Aber was bedeutet Agilität wirklich?
Für einen tieferen Einblick in die agilen Prinzipien schlage ich vor, unseren Ultimativen Leitfaden für agiles Projektmanagement zu lesen.
In diesem Beitrag erläutern wir die Grundlagen des agilen Projektmanagements mit Kanban.
Auch wenn Sie ein erfahrener Projektmanager sind, der agile Prinzipien in und aus versteht, sollten Sie Ihr Gedächtnis auffrischen und sich an Kernkonzepte erinnern. Innovationszyklen in der Softwareentwicklung werden immer schneller, wodurch das Projektmanagement mit jeder Iteration komplexer wird. Es ist immer wichtig, zu den Grundprinzipien zurückzukehren und die Kernprinzipien von Agile zu festigen. Wiederholung ist schließlich die Mutter allen Wissens.
Kanban ist eine der einfachsten Methoden zur Verwaltung eines agilen Softwareentwicklungsprojekts. Sie können problemlos mit einem lokalen Entwicklungsteam umgehen, das vom selben Büro aus arbeitet, oder mit einem verteilten Team, das über mehrere Zeitzonen verteilt ist.
Kanban ist kein Prozess. Es ist eine Möglichkeit, jeden Prozess mit minimalen Änderungen an den etablierten operativen Aktivitäten des Teams zu verwalten.
Um die Kanban-Prinzipien auf Ihre Arbeit anzuwenden, müssen Sie zwei einfache Regeln anwenden:
- Visualisieren Sie Ihren Prozess.
- Laufende Arbeiten begrenzen.
Visualisieren Sie Ihren Prozess
Datenvisualisierung ist eine schnelle und einfache Möglichkeit, Informationen universell und leicht verständlich zu vermitteln. Beim Betrachten von Bildern kann das menschliche Gehirn mehrere Informationen gleichzeitig verarbeiten. Einige Untersuchungen sagen, dass dies bis zu 60.000-mal schneller sein kann als das Lesen eines Textes.
Die beliebteste Art, einen Prozess zu visualisieren, ist ein Kanban-Board. Ein Kanban-Board ist ein Board, das vertikal in mehrere Spalten unterteilt ist, wobei jede Spalte einen Zustand in Ihrem Prozess darstellt.
Werfen wir einen Blick darauf, wie ein einfaches Softwareentwicklungsboard aussehen würde. Zuerst müssen wir Zustände für unsere Entwicklungsfunktionen definieren:
- To-Do - Feature wartet auf Entwicklung
- Entwicklung - Funktion wird einem Entwickler zugewiesen und er/sie arbeitet daran
- Qualitätssicherung - Funktion wird überprüft
- Bereitgestellt – Funktion wird akzeptiert und ist in der Anwendungsversion enthalten
Auf dieser Grundlage sollte Ihr Board das folgende Layout haben:
Das Visualisieren einzelner Aufgaben ist so einfach wie das Erstellen einer einfachen Karte (ähnlich einem Post-it), die die zu erledigende Arbeit darstellt. Sie können die Aufgabe benennen, den Namen des zugewiesenen Entwicklers, das Fälligkeitsdatum und andere relevante Informationen zu dieser Karte hinzufügen.
Wenn Sie diese Karte zu einer Spalte auf dem Kanban-Board hinzufügen, haben Sie beispielsweise visualisiert, dass ein bestimmter Entwickler an einer bestimmten Aufgabe arbeitet, die zu einem bestimmten Datum fällig ist und sich derzeit in der Entwicklung befindet.
Unfertige Arbeit (WIP) begrenzen
Menschliches Multitasking ist eine Täuschung. Anstatt auf ein oder zwei Dinge gleichzeitig zu achten, wechselt unser Gehirn sehr schnell zwischen ihnen.
Dies ist in der Softwareentwicklung sichtbarer als anderswo. Entwickler können jeweils nur an einem Codeabschnitt arbeiten, und der Wechsel zu einer anderen Funktion führt zu Verzögerungen und beeinträchtigt ihre Konzentration und Leistung.
Dies bedeutet nicht, dass Sie die Anzahl der Zuordnungen auf jeweils nur eine beschränken müssen. Entwicklung ist komplexe und kreative Arbeit, einige Aufgaben brauchen mehr und andere weniger Zeit, und es gibt immer eine Verzögerung, während ein Entwickler auf etwas oder jemanden wartet. Wichtig ist, die zugewiesenen Aufgaben auf eine vernünftige Anzahl zu beschränken, die kein Chaos verursacht (dies sind normalerweise drei bis fünf Aufgaben gleichzeitig).
Angenommen, Ihr Entwicklungsteam besteht aus zwei Entwicklern und einem QA-Ingenieur, könnte Ihr Board die folgenden WIP-Limits haben:
- Aufgaben - Unbegrenzt
- Entwicklung - Sechs-Karten-Limit (Zwei Entwickler jeweils auf maximal drei Aufgaben begrenzt)
- Qualitätssicherung – Drei-Karten-Limit (1 QA-Ingenieur begrenzt auf maximal drei Karten)
- Bereitgestellt - Unbegrenzt
Es ist Ihre Aufgabe als Projektmanager sicherzustellen, dass die To-Do-Liste richtig priorisiert wird und Aufgaben den Entwicklern nicht früher als nötig zugewiesen werden.
Ein gut geführtes Kanban-Board gibt Ihnen auf einen Blick ein klares Bild Ihres Projektstatus. Sie können sehen, dass Ihre Entwickler genug Arbeit haben, dass Sie neue Aufgaben vorbereitet haben, die sie übernehmen können, sobald ihre Aufgaben erledigt sind, und dass Ihr QA-Techniker auf neue Aufgaben zur Überprüfung wartet.
Verwenden Sie Trello, um Ihr Kanban-Board zu verwalten
Trello ist eine webbasierte Kanban-Projektmanagementanwendung. Es ermöglicht eine einfache Zusammenarbeit in Echtzeit zwischen Teammitgliedern und sogar mehreren Teams und Projekten.
Um ein Board in Trello zu erstellen, klicken Sie auf den Menüpunkt „Neues Board erstellen …“ und legen Sie einen Titel für Ihr Board fest.
Sie beginnen mit einem leeren Brett. Verwenden Sie das Feld „Liste hinzufügen …“, um Spalten für Ihre Kanban-Karten zu erstellen.
Indem Sie unten in einer der Listen auf „Karte hinzufügen…“ klicken, können Sie ganz einfach eine Aufgabe erstellen. Jede von Ihnen erstellte Karte sollte eine Aufgabe darstellen, die von einem Teammitglied ausgeführt wird.
Karten in Trello können auf viele Arten angepasst werden:
- Weisen Sie Teammitglieder zu, die für die Ausführung einer Aufgabe verantwortlich sind
- Codieren Sie sie farblich abhängig von bestimmten Gruppierungen, die Sie hinzufügen möchten
- Legen Sie Fälligkeitstermine fest
- Anhänge hinzufügen
- Fügen Sie benutzerdefinierte Felder wie eine Checkliste hinzu, in denen Sie den Fortschritt kleinerer Elemente verfolgen können, aus denen eine Aufgabe besteht
- Teammitglieder können eine Karte kommentieren, und jeder wird über jede vorgenommene Änderung benachrichtigt.

Visualisierung ist alles in Kanban, also sieht eine Karte auf dem Board so aus:
Allein durch einen Blick auf die Karte, ohne die Detailansicht zu öffnen, sieht man:
- Die Aufgabe zum Einrichten des GitHub-Code-Repository wartet darauf, in der Aufgabenliste ausgeführt zu werden.
- Die Aufgabe ist bis zum 27. Januar fällig.
- Aufgabe hat eine Beschreibung.
- Es gibt einen Kommentar zur Aufgabe.
- Es gibt eine Checkliste mit zwei Punkten, und keiner dieser Punkte ist derzeit abgeschlossen.
- Die Aufgabe wird dem Benutzer DS zugewiesen, der sie als Nächstes übernimmt.
- Die Aufgabe gehört zu einer Gruppe grüner Farbkarten, was bedeutet, dass sie vor Beginn des Projekts erforderlich ist.
Schätzen Sie Zeit und Komplexität der Entwicklungsarbeit
Die Planung und Verwaltung eines Projekts ist unmöglich, ohne den Aufwand und die Zeit zu verstehen, die erforderlich sind, um eine bestimmte Aufgabe abzuschließen. Eines der schwierigsten Dinge in der Softwareentwicklung ist jedoch die Bestimmung, wie lange es dauern wird, ein neues Softwareprodukt oder eine neue Funktion bereitzustellen.
Scrum, eines der beliebtesten agilen Prinzipien, stützt sich stark auf Schätzungen, unabhängig davon, ob sie auf Zeit oder „Komplexitätspunkten“ basieren.
Das Team sollte viel Zeit damit verbringen, die Aufgabe auszuarbeiten.
Dies liegt daran, dass Scrum auf Zeitintervallen basiert, in denen eine bestimmte Gruppe von Aufgaben voraussichtlich abgeschlossen ist. Um die Lieferung zu planen, müssen Sie alle für diesen Zeitraum geplanten Arbeiten vollständig verstehen.
Kanban ist nicht auf zeitgesteuerte Lieferungen angewiesen, und Sie können die tägliche Lieferung planen, wenn Sie möchten. Es basiert auf der Optimierung des Flusses, was bedeutet, dass sich das Team darauf konzentriert, die WIP-Säule so schnell wie möglich fertigzustellen und zu leeren.
Das Team verbringt nicht viel Zeit damit, die Arbeit im Voraus zu schätzen. Ein Entwickler nimmt das nächste Element von To-Do auf; vervollständigen Sie es so schnell wie möglich; und nimm eine andere Aufgabe auf.
Das bedeutet nicht, dass ein Team das Volumen seiner Arbeitsbelastung nicht abschätzen sollte.
Sie können Ihre wöchentlichen oder täglichen Anrufe verwenden, um Fälligkeitsdaten zu aktualisieren und zu überprüfen.
Für ein kleines Team ist es jedoch wichtiger sicherzustellen, dass Entwickler zu jedem Zeitpunkt an der Aufgabe mit der höchsten Priorität arbeiten und dass es keine Engpässe gibt, die einen Entwickler zwingen, seine Arbeit zu unterbrechen.
Irgendwann wird Ihr Projekt wachsen und Sie müssen beginnen, den Umfang der Entwicklungsarbeit detaillierter abzuschätzen. Wenn Sie diese Situation erreichen, nehmen Sie sich etwas Zeit, um unseren Leitfaden zur Softwarekostenschätzung im agilen Projektmanagement zu lesen.
Unverzichtbare Managementpraktiken
Bisher haben Sie gelernt, wie wichtig es ist, Ihren Prozess zu visualisieren und WIP zu begrenzen, und wie Sie Trello verwenden, um Ihr Projekt zu verwalten.
Ein Softwareprojekt lässt sich aber nicht nur mit Karten und Spalten verwalten. Daher ist es wichtig, auch agile Best Practices zu implementieren:
Organisieren Sie ein regelmäßiges Teammeeting.
Tun Sie dies mindestens wöchentlich, um zu überprüfen, was getan wurde, und den Rückstand (To-Do-Liste) bei Bedarf zu verfeinern und zu priorisieren. Auf diese Weise erhält das gesamte Team gleichzeitig Updates und Ideen können geteilt werden. Bei diesen Meetings ist es wichtig, dass ein Projektbeteiligter (Kunde, CTO des Unternehmens oder jemand aus dem Produktteam, der eine Entscheidung treffen und Fragen beantworten kann) eventuell nicht-technisches Feedback gibt.Stellen Sie die ständige Kommunikation mit den einzelnen Teammitgliedern sicher.
Das erleichtert allen die tägliche Arbeit erheblich. Halten Sie diese Meetings oder Synchronisierungen sehr kurz und einfach, ein kurzes Update in Ihrem bevorzugten Chat-Programm reicht aus. Es ist nützlich, tägliche Check-Ins zu haben, was ungefähr 15-minütige tägliche Meetings sein können, die Sie mit Ihrem Team haben. In diesem Meeting spricht jedes Teammitglied einige Sekunden lang und sagt:
- Woran sie gestern gearbeitet haben.
- Woran sie heute arbeiten wollen.
- Vor welchen Herausforderungen oder Engpässen sie stehen.
Machen Sie sich während des Gesprächs Notizen und achten Sie darauf, mögliche Probleme zu finden (Blocker, falscher Fokus auf die Aufgabe, unerwartete technische Herausforderungen) und arbeiten Sie mit dem Team daran.
Bootstrap für Ihr Softwareentwicklungsprojekt
Obwohl jedes Softwareentwicklungsprojekt anders ist, gibt es bestimmte Aufgaben, die Sie in fast allen finden werden. Hier sind einige der Aufgaben, die Sie planen sollten, wenn Sie ein Softwareentwicklungsprojekt starten:
Richten Sie die Codeversionierung und ein Repository ein.
Das Nachverfolgen von Änderungen und das Überwachen von Code ist äußerst wichtig, insbesondere bei der Zusammenarbeit an Projekten, bei denen mehrere Personen denselben Code aktualisieren.
Einer der beliebtesten Dienste für die Code-Versionierung ist GitHub. GitHub ist ein webbasiertes Git- oder Versionskontroll-Repository, das alle Funktionen der verteilten Versionskontrolle und Quellcodeverwaltung (SCM) von Git bietet.
Es bietet Zugriffskontrolle und mehrere Funktionen für die Zusammenarbeit, wie z. B. Fehlerverfolgung, Funktionsanfragen, Aufgabenverwaltung und Wikis für jedes Projekt.Definieren Sie eine Datenbanksicherungsrichtlinie.
Die Nutzung von Diensten wie GitHub stellt sicher, dass Ihr Code regelmäßig gesichert wird.
Datenbanken sind normalerweise nicht Teil Ihres Versionsverwaltungssystems, und Sie sollten auch häufige Datenbanksicherungen einrichten.
Der Entwicklungsprozess ist fehleranfällig, und es ist leicht, während der Entwicklung einen Fehler zu machen und die falschen Daten zu aktualisieren. Wenn Sie ein Backup haben, ersparen Sie sich die Mühe, wenn ein solches Problem auftritt.Richten Sie Tools für die Zusammenarbeit und Dateifreigabe ein.
Projektdokumentation, funktionale Spezifikationen, Designdateien und alle anderen Dokumentationen und Dateien, die während der Projektentwicklung verwendet werden, werden ständig aktualisiert und sollten an Ihr Team verteilt werden.
Sie können eine Reihe verschiedener Dienste verwenden, um diese Dateien freizugeben. Google bietet eine einfache und kostengünstige Lösung für dieses Problem. Verwenden Sie Google Drive, Google Docs, Google Sheets und andere Google-Apps, um Dateien zu teilen und gemeinsam daran zu arbeiten.Richten Sie separate Entwicklungs- und Testserver ein.
Der Entwicklungsprozess muss jederzeit fortgesetzt werden.
Entwickler sollten nicht auf die Ergebnisse der Anwendungstests warten, sondern weiter an ihren Aufgaben arbeiten, während die Qualitätssicherung abgeschlossene Funktionalitäten überprüft.
Gleichzeitig soll der Kunde jederzeit den aktuellen Stand der Anwendung überprüfen können, ohne auf das Entwicklungsteam warten zu müssen. Ein dedizierter Testserver, der regelmäßig aktualisiert wird, beseitigt alle Engpässe in diesem Prozess und stellt sicher, dass Ihr Team unterbrechungsfrei läuft.Definieren Sie eine feste Zeit für wöchentliche Teamanrufe und eine feste Zeit für tägliche Nachholgespräche oder Chats.
Lassen Sie alle Ihre Teammitglieder in ihrem Kalender eine Zeit für Anrufe und Besprechungen einplanen. Dies gibt Ihrem Team einen festen Zeitplan ohne Arbeitsunterbrechungen.
Wegbringen
Projektmanagement ist eine komplexe und allzu oft sehr stressige Tätigkeit. Durch das Hinzufügen von Struktur und die jederzeitige Sichtbarkeit und Genauigkeit des Projektstatus wird dieser Stress erheblich verringert. Durch die Anwendung der Kanban-Methode und der agilen Prinzipien in Kombination mit den richtigen Tools sparen Sie viel Zeit.
Abgesehen davon gibt es kein Tool oder keine Methodik, die die Zeit ausgleicht, die Sie als Projektmanager für die Verwaltung des Projekts aufwenden müssen.
Und nur weil ein Projekt klein ist, bedeutet das nicht, dass es weniger Zeit in Anspruch nimmt. Diese Mentalität ist ein großartiges Rezept für große Kopfschmerzen auf der ganzen Linie.
Hier ist eine einfache Checkliste, mit der Sie überprüfen können, ob Ihr Projekt ordnungsgemäß verwaltet wird:
- Ist Ihr Prozess richtig visualisiert?
- Ist WIP für jedes Teammitglied begrenzt und minimiert?
- Hat Ihr Team regelmäßig geplante Besprechungen – entweder wöchentlich oder täglich?
- Wird Ihr Kanban-Board regelmäßig aktualisiert?
- Haben Sie ein Code-Repository eingerichtet?
- Haben Sie Datenbanksicherungen geplant?
- Haben Sie Tools für Teamkommunikation und Zusammenarbeit eingerichtet?
- Ist Ihre Entwicklungsumgebung von Test, Abnahme und Produktion getrennt?
Denken Sie daran, dass diese Liste alles andere als endgültig und fertig ist; Das ist nur der Anfang.
Bitte hinterlassen Sie Ihre Kommentare und teilen Sie Ihre Tipps und Praktiken mit Projektmanagern, die gerade erst ihre nie endende Reise zur Stärkung von Softwareentwicklungsteams beginnen.