Verwalten Sie das agile Team mit XPlanner

Umfang, Design, Bau, Test, Lieferung, Entschuldigung. Dies sind die oft ausgetretenen Schritte einer traditionellen Engineering-Methodik, wenn sie auf die Quecksilberwelt von Softwareprojekten angewendet werden. Als Softwareentwickler kennen Sie wahrscheinlich die "letzte" Systemanforderung, die sich wie ein Preiskämpfer zu ducken und zu weben scheint. Vielleicht haben Sie sich an einem Entwicklungsprojekt gearbeitet, um Monate (oder Jahre) später einem Kunden gegenüberzutreten, der zutiefst enttäuscht zu sein scheint, dass seine tatsächlichen Bedürfnisse nicht erfüllt wurden. Vielleicht sind Ihre Kollegen an dem Punkt angelangt, an dem ein akribischer Entwicklungsplan mit großer Reichweite ihnen ein Gefühl des bevorstehenden Untergangs vermittelt. Fazit: Ihr Team ist bereit für eine agile Entwicklung. Wurde Ihr traditionelles Teammanagement-Tool jedoch für das traditionelle Teammanagement fest verdrahtet?

Die agilen Methoden mögen leicht sein, aber sie sind sehr diszipliniert. Jedes Tool, das Sie bei der Planung und Verfolgung schneller Lieferungen in enger Zusammenarbeit mit Kunden unterstützt, kann eine wertvolle Ergänzung Ihres Arsenals darstellen. Die gute Nachricht ist, dass dem agilen Team jetzt mehrere solcher Tools zur Verfügung stehen. Dieser Artikel beschreibt eine praktische Erfahrung in der Verwaltung eines agilen Entwicklungsteams mit einem dieser neuen Tools, dem Open Source XPlanner.

XPlanner ist eine Java-Webanwendung, die das Teammanagement gemäß der Extreme Programming Methodology (XP) unterstützt. Wir haben jedoch festgestellt, dass dieses Tool flexibel genug ist, um wertvolle Unterstützung für andere gängige agile Ansätze (z. B. Scrum) in der Hitze der Projektabwicklung zu bieten. XPlanner ist zwar nicht anspruchsvoll, bietet jedoch ein praktisches Tool, mit dem Sie Ihr Team unterstützen können, unabhängig davon, ob Sie Erfahrung mit der lohnenden Welt der agilen Softwareentwicklung haben oder gerade erst in diese einsteigen.

Traditionelle oder agile Teammanagement-Tools

Herkömmliche Teamverwaltungstools (wie z. B. Microsoft Project) basieren auf Projektstrukturplänen, die weit in die Zukunft eines Projekts blicken. Die geplante Zuweisung von Ressourcen und ein sorgfältiges Auge auf die Abweichung von der Basislinie werden verwendet, um den "kritischen Pfad" zur endgültigen Lieferung zu verwalten. Die Anwendung solcher Tools erfordert einen erheblichen Planungsaufwand im Voraus, starre Aufgabenabhängigkeiten und eine stabile Basis von Anforderungen. Wesentliche Änderungen des Umfangs oder der Anforderungen erfordern wahrscheinlich erhebliche Änderungen des Modells. Daher eignen sich diese traditionellen Werkzeuge am besten für die Planung einer Reise von A nach B, sofern nur geringe Kursschwankungen vorliegen. Im Gegensatz dazu sind agile Projekte darauf ausgerichtet, Veränderungen zu erwarten, ohne davon auszugehen, dass B überhaupt das endgültige Ziel sein wird.

Um die Kultur des agilen Projekts zu verstehen, ist es nützlich, die Grundsätze der agilen Entwicklung zu berücksichtigen, die von den Autoren des agilen Manifests vertreten wurden:

  • "Individuen und Interaktionen über Prozesse und Werkzeuge
  • Arbeitssoftware über umfassende Dokumentation
  • Kundenzusammenarbeit über Vertragsverhandlungen
  • Reaktion auf Umstellung nach einem Plan "

    (Kent Beck et al., 2001)

Agile Projekte geben daher die langfristige Planung ausdrücklich zugunsten einer engen Einbindung der Stakeholder auf, konzentrieren sich klar auf hochwertige Funktionen und veröffentlichen frühzeitig und häufig verwendbare Software. Das zugrunde liegende Ziel ist es, angesichts ständiger Veränderungen einfach und effektiv Wert zu liefern. Damit ein Planungs- und Nachverfolgungswerkzeug in diesem Zusammenhang wertvoll ist, muss es mit diesen Werten übereinstimmen.

Projektplanung und -verfolgung mit XPlanner

XPlanner ist ein agiles Projektmanagement-Software-Tool, das unter der GNU Lesser General Public License erhältlich ist (wodurch es im Open-Source-Jargon "kostenlos wie in Bier" ist). Das Paket wird als Webanwendung bereitgestellt, mit der Ihre Teammitglieder und Projektbeteiligten mithilfe ihrer bevorzugten Webbrowser an Bord gehen können. Nach der Konfiguration können Sie verschiedene Aspekte der Bereitstellung Ihres agilen Projekts über eine einfache Weboberfläche planen und verfolgen.

Aus agiler Sicht können die Projektteilnehmer direkt zusammenarbeiten, indem sie ihre Informationen in das gemeinsame Projekt-Repository einbringen. Diese Zusammenarbeit kann Kunden umfassen, die Projektanforderungen in Form von User Stories beschreiben, anhand derer Entwickler die Aufgaben detaillieren und verfolgen, die erforderlich sind, um diese Storys Wirklichkeit werden zu lassen.

XPlanner unterstützt nicht nur diese Ebene der Kundenzusammenarbeit, sondern bietet auch weitere nützliche Funktionen, die den agilen Ansatz unterstützen. Dazu gehören Funktionen wie ein einfacher Mechanismus zum Definieren von Projektiterationen. eine intuitive Benutzeroberfläche für Personen, die den Aufwand schätzen und verfolgen; und Diagramme zum Veröffentlichen von Teammetriken. XPlanner wird hier erläutert, da es zur Unterstützung der Bereitstellung eines elektronischen Handels- und Workflow-Systems eingesetzt wurde, das aus mehreren Interessengruppen und einem Team von sieben Entwicklern besteht.

Herunterladen und installieren

XPlanner ist eine reine Java-Anwendung, die in jeder J2SE 1.4-Entwicklungsumgebung bereitgestellt werden kann, die mit Apache Ant und einer geeigneten Servlet-Engine ausgestattet ist. Wir haben Apache Tomcat als Servlet-Engine ausgewählt. Jeder mit Servlet 2.3 (oder einer neueren Version) kompatible Motor sollte dies jedoch tun. XPlanner wird als Dateiarchiv (zip oder tar.gz) geliefert, das Sie entpacken und erstellen müssen, bevor Sie das Tool bereitstellen und verwenden.

Ein obligatorischer Konfigurationsschritt ist erforderlich, da Sie Ihre bevorzugte Datenbank einrichten müssen, um sie als Repository für Projektinformationen zu verwenden. Da XPlanner die Hibernate-Objekt- / relationale Persistenzschicht für die Datenbankinteraktion verwendet, können Sie jede von Hibernate unterstützte Datenbank für Ihr Projektrepository verwenden. Die gebündelte Option ist die leichtgewichtige Java-Datenbank Hypersonic (jetzt HSQLDB genannt). Wir haben jedoch Oracle 9i als Repository-Datenbank verwendet. Um diese Datenbank zu konfigurieren, mussten wir die Datei bearbeiten, xplanner.propertiesindem wir die bereits definierten Oracle-Eigenschaften auskommentierten. Wir mussten die build.xmlDatei auch ändern , um den Oracle Thin-Datenbanktreiber zu integrieren. Nach der Konfiguration können Sie Ihre XPlanner-Bereitstellung erstellen. Dazu muss Ant wie folgt ausgeführt werden, um ein implementierbares Webarchiv (WAR) zu erstellen:

ant install.db.schema ant build.war 

Stellen Sie die resultierende Webarchivdatei ( xplanner.war) in der Servlet-Engine Ihrer Wahl bereit und navigieren Sie dann zu URL // your-server: your-port / xplanner / (unter Verwendung des Standardbenutzers "sysadmin" und des Kennworts "admin"), um die Ergebnisse zu überprüfen!

Integration in Ihr Ökosystem

Die meisten Entwicklungsumgebungen enthalten bereits ein Bug-Tracking-System, Kollaborationsforen, Sicherheitssysteme, Standard-Repositorys usw. Obwohl XPlanner als eigenständiges Tool nützlich ist, kann der Wert von XPlanner durch seine einfachen und leistungsstarken Integrationsfunktionen gesteigert werden. XPlanner bietet beispielsweise die Möglichkeit, das Rendern von Entwicklersprachen in einem Beschreibungsfeld zu unterstützen, z. B. Fehler: 1001 als Link zu //mybugzilla/show_bug.cgi?uid=1001. Dies kann durch einfaches Hinzufügen twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=zur xplanner.propertiesDatei erfolgen. Dieselbe Technik kann für andere webbasierte Tools wie viewcvs (xplanner.propertieszeigt einige andere Beispiele). XPlanner bietet auch einen erweiterten Wiki-Formatierer (der in unserem Projekt nicht verwendet wird), der die automatische Verknüpfung mit Wiki-Einträgen ermöglicht. Weitere Informationen zu XPlanner-Erweiterungen finden Sie unter Ressourcen.

In den meisten Organisationen bietet ausnahmslos eine Form von LDAP-kompatiblem Verzeichnisserver (Lightweight Directory Access Protocol) ein zentrales Repository für Benutzersicherheitskonten. Innerhalb der Organisation, die unser Projekt sponsert, diente beispielsweise ein altmodischer, aber funktionsfähiger LDAP-Server diesem Zweck (Microsoft Active Directory unterstützt auch weitgehend das LDAP-Protokoll). Es war erfrischend, dass XPlanner einfach und XPlannerLoginModuleeinfach in LDAP zu integrieren ist. Dies beinhaltete die Aktualisierung xplanner.propertieswie folgt:

-> Comment out default security #xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ...to: xplanner.security.login.option.roleSearch=(uniqueMember={0})

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=

Mit einer schnellen Neuerstellung und Bereitstellung wurde die XPlanner-Authentifizierungssicherheit vollständig integriert. Der einzige Nachteil war, dass Benutzernamen immer noch explizit in XPlanner hinzugefügt werden mussten, aber zumindest Probleme mit Kennwörtern und Gruppenmitgliedschaften wurden zum Problem des Helpdesks des Unternehmens.

Team, treffe XPlanner

XPlanner zeigt ein Projekt nach Iterationen, User Stories und Aufgaben an. Gemäß dem Agile-Paradigma wird jedes von XPlanner verwaltete Projekt gemäß einer Reihe aufeinanderfolgender Iterationen geplant und verfolgt. Jede Iteration besteht aus einem Startdatum, einem Enddatum und einer Sammlung von User Stories, die innerhalb dieses Zeitraums von der Story zur Realität erstellt werden sollen.

Eine User Story ist das wichtigste konzeptionelle Werkzeug in der agilen Entwicklung, um Softwareentwicklern die Kundenbedürfnisse mitzuteilen. Sobald eine User Story einer aktuellen Iteration zugewiesen wurde (im Rahmen der Release-Planung über XPlanner), sucht der Entwickler in Zusammenarbeit mit dem Benutzer (hoffentlich von Angesicht zu Angesicht) nach weiteren Details für jede Story. Das Ergebnis dieses Schritts ist eine detaillierte Reihe von Entwicklungsaufgaben, von denen jede vom Entwickler in XPlanner anhand der relevanten User Story registriert wird.

Wir haben unser E-Commerce-Workflow-Projekt so gewählt, dass es mit monatlichen Iterationen ausgeführt wird, die jeweils aus etwa 10 Storys bestehen und jeder Story 10 bis 15 Aufgaben zugewiesen sind.

User Stories ernten

Jede User Story für eine Projektiteration sollte eine kurze und ergebnisorientierte Beschreibung einer User Experience sein, wie sie in der ersten Person erzählt wird (z. B. "Ich suche dann nach Farbe ..."). Diese Erfahrung wird von einem Benutzer verfasst, der sich das ideale zukünftige Produkt in Aktion vorstellt. Sie können sich also eine User Story als positive Visualisierung für Software vorstellen! Ziel jeder Visualisierung ist es, einem Softwareentwickler genügend Informationen zur Verfügung zu stellen, um den Aufwand abzuschätzen, der erforderlich ist, um diese Geschichte Wirklichkeit werden zu lassen.

XPlanner katalogisiert die Sammlung von User Stories Ihres Projekts und zeichnet dabei jeweils eine Schätzung des Kunden, des Trackers, der Priorität und des Aufwands auf. Die Hauptschwierigkeit, die wir häufig finden, ist das Ernten hochwertiger User Stories aus den Köpfen der Systembenutzer. Dies war sicherlich der Fall für unser Projekt, da es ein bedeutender Paradigmenwechsel gegenüber den Anforderungen an starre Abschnitte / Unterabschnitte war, an die die Benutzer gewöhnt waren. Die Möglichkeit, XPlanner zu verwenden, um Storys so zu verwalten, dass sie von Stakeholdern leicht gesehen und aktualisiert werden können und schnell in eine bestimmte Iteration hinein und aus dieser heraus gehandelt werden können, hat sicherlich geholfen. Eine nette, wenn auch nicht funktionale Funktion von XPlanner ist das authentische Gefühl, das eine User Story vermittelt und jede auf dem Bildschirm als ähnliche 3-mal-5-Karteikarte anzeigt, wie in Abbildung 1 dargestellt.

Aufwand schätzen und aufzeichnen

Die agile Entwicklung schreibt vor, dass Entwickler ihre eigenen Ziele festlegen, indem sie eine User Story analysieren und die technischen Aufgaben definieren, die zur Realisierung dieser Story erforderlich sind. Ein Entwickler sollte frei sein, zusätzliche Aufgaben hinzuzufügen oder vorhandene Aufgaben zu ändern, sobald weitere Story-Details verfügbar werden. XPlanner unterstützt diese Flexibilität, indem es Entwicklern vollen Zugriff zum Definieren und Bearbeiten einer Aufgabe bietet. Jeder Aufgabe kann ein Typ zugewiesen werden, z. B. Verschuldung, Merkmal oder Fehler, um die Art der ausgeführten Arbeit zu charakterisieren (Verschuldung ist beispielsweise eine Aufgabe zum Reinigen der technischen "Kruft", die von einer vorherigen Iteration im System zurückgeblieben ist). Aufgaben werden auch mit einer Disposition (geplant oder ungeplant), dem akzeptierenden Entwickler, einer Arbeitsbeschreibung und einer Schätzung der Anzahl der idealen Stunden angegeben, die erforderlich sind, um diese Aufgabe zu meistern.

Mit XPlanner kann ein Entwickler auf einfache Weise aufzeichnen, wie viel Arbeit in eine bestimmte Aufgabe investiert wurde, oder die ursprüngliche Aufwandsschätzung aktualisieren (das Original wird noch gespeichert). Beachten Sie, dass Aufwandsschätzungen, wie erwähnt, in idealen Stunden angegeben werden sollten . Eine ideale Stunde ist eine Stunde, in der der Entwickler absolut keine Unterbrechungen erfährt.

Entwickler sollten auch die Anzahl der idealen Stunden aufzeichnen, die sie für eine bestimmte Aufgabe investieren. Wenn Sie Ihre Entwickler dazu ermutigen, die idealen Stunden ehrlich aufzuzeichnen (indem Sie nicht wissen möchten, wohin die Zeit geht), können Sie einige nützliche Metriken aus XPlanner extrahieren (siehe unten). Wir haben zum Beispiel festgestellt, dass bei unserem Projekt eine ideale Stunde ungefähr 1,4 Stunden dauerte, um erreicht zu werden. Diese Informationen können dann verwendet werden, um eine verfeinerte Schätzung für nachfolgende Iterationen bereitzustellen. Dies hilft dabei, die Versprechen des Teams und die Erwartungen des Kunden im gleichen Rahmen zu halten.

Metriken und Planung für die nächste Iteration

Sie befinden sich mitten in einer Iteration und der Chef möchte wissen, "wie wir aussehen". Eine abgenutzte Antwort auf diese Frage lautet: "Wir sind ungefähr 80 Prozent des Weges dorthin." Natürlich scheinen die letzten 20 Prozent immer viel länger zu dauern als es sollte - die letzten 20 Prozent sind das Software-Äquivalent des stumpfen Gemüses beim Abendessen, das Sie bis zum letzten Mal verlassen haben.