Freitag, 22. Juni 2007

Scrum Projekt Abschluss

Wir schreiben die 10. Woche im aktuellen Scrum-Projekt und nach der Auslieferung von Release 4.0. am 18.Juni geht das Projekt dem Ende zu.
Momentan gibt es noch ein paar Abnahmen mit dem Kunden und die Inbetriebnahme beim Provider. Dannach ist das Projekt abgeschlossen. Zeit, mal ein paar Zahlen zu generieren:

Zeitraum: 13. April bis 18. Juni, 47 Arbeitstage
Team: 4 Developer, 1 Product Owner, 1 Scrum Master

# Story Points: 80 PT
Gesamtaufwand: 188 MT (47 Tage x 4 Developer)

# Sprints: 5, davon 1x 3 Wochen, 2x 1 Woche, 2x 2 Wochen
User Stories/Sprint: 9PT/1, 1PT/2, 26PT/3, 23PT/4, 21PT/5
Durschnitt/Sprint: 16 PT pro Sprint

# Releases: insgesamt 4
User Stories/Release: 9PT/1, 27PT/2, 23PT/3, 21PT/4
Durchschnitt/Release: 20 PT pro Release

# Bugs: 24

Ok, der Blick zurück - jetzt wird's interessant. Wie wurde denn das gesamte Projekt vor Beginn vom Team geschätzt?

Insgesamt wurden 50 Story Points für die gesamte Realisierung VOR Projektbeginn geschätzt. Aus Erfahrung aus anderen Scrum Projekten ist man von 2.5 MT pro 1 SP ausgegangen. Das ist die Basis für die Schätzung. Mit einer pessimistischen und optimistischen Abweichung kann man den Know-How Gap vom neuen Projekt ein bischen ausbalancieren. Mit einer Abweichung von -25% und + 40% kommt man dan bei optimisticher, realistischer und pessimistischer Schätzung auf:

Mit heutigem Wissen kann man dass richtige Verhältniss MT pro User Story leicht errechnen:



Die Aufwandschätzung lag also im realistischen Bereich oberhalb der +40% Grenze!!! Mehr als doppelt so teuer! Die berichtigte Aufwandschätzung sieht wie folgt aus:



Bleibt die Frag offen, wieso 50 SP geschätzt und doch 80 realisert worden..... Das genau ist der Vorteil von agiler Entwicklung. Ein mal mehr war der Kunde "moving target" - d.h. er hat seine Prioritäten im Projekt verlangert, neue Ideen eingebracht und andere verworfen.

Donnerstag, 21. Juni 2007

Eigenschaften einer User Story

Gestern habe ich in einem Post ein paar Beispiele gezeigt, wie User Stories nicht aussehen sollten. Nur um sicherzugehen, hier noch mal die Eigenschaften, die eine User Story ausmachen:
  1. Estimatable
  2. Valuable
  3. Negotiable
  4. Small
  5. Testable
  6. Independent
Ok, das sagt nicht viel darüber aus, wie man eine User Story schreibt - richtig! Ich werden in ein paar Tagen darüber schreiben, wie man eine gute User Story schreibt.

TheServerSide Java Symposium - Europe

Kommende Woche werde ich am Java Sympodium in Barcelona teilnehmen. Worauf ich mich besonders freue: GWT und JRuby ...

Berichte folgen - stay tuned!

Mittwoch, 20. Juni 2007

Was sind KEINE User Stories

Nach ein paar Scrum Projekten habe ich so einige User Stories gesehen, die definitiv keine sind!

Ein paar Beispiele:

"Ein cooler mash-up mit Google Maps wird erwünscht"
"Navasys durch Google Maps ersetzen (Prototype)"
"Datenbank auf 3.0 migrieren"
"Funktion "Drucken" verwendet eine optimierte Darstellung"
"Anpassung "Schnellzugriff" im eingelogten Zustand"

Ok, was lernen wir? Wie man eine gute User Story schreibt ist nicht so einfach.

Man sollte sich immer wieder vor Augen führen, dass der User im Zentrum steht!

"Wer macht was um welches Ziel zu erreichen" - das ist Basisregel für eine User Story...

Dienstag, 19. Juni 2007

10 Gründe für Agile Development

  1. Wertschöpfung (Revenue)
    Iterative Softwareentwicklung bedeutet in erster Linie inkrementelles Entwicklen von Features, um diese bereits früher bereitzustellen, während das Produkt noch (weiter)entwickelt wird.
  2. Marktnähe (Time to market)
    Es ist bekannt, dass 80 % der Marktführer mit ihrem Produkt/Service jeweils die ersten am Markt sind(waren). Neben der hohen Wertschöpfung trägt die Philosophie von frühen und regelmässigen Releases bei agiler Projekten nicht zuletzt auch dazu bei.
  3. Qualität (Quality)
    Ein wesentlicher Aspekt bei agilen Softwareentwicklungsprojekten ist, dass Testing ein integrativer Bestandteil des Produkt-Lebenszylus während der Entwicklung ist. Somit hat der Produkt Owner die Möglichkeit früh Abweichungen zu erkennen und im Rahmen der Sprint Planungen gegenzulenken.
  4. Transparenz (Visibility)
    Ein wesentlicher Grundsatz für agiles Arbeiten ist die Beteiligung von "aktiven" Personen während der gesamten Produktentwicklung - das Team. Jeder Stakeholder kann somit den Projekt- und Produktfortschritt verfolgen und somit sicherstellen, dass die geleistete Investition den gewünschten Ertrag bringt.
  5. Risiko Management (Risk Management)
    Kleine, regelmässige Releases ermöglichem dem Produkt Owner und dem Team schnell Probleme zu erkennen und frühzeitig darauf zu reagieren. Die Transparenz trägt dazu bei, dass alle nötigen Entscheidungen zu frühest möglichen Zeitpunkt getroffen werden können, um Probleme zu lösen.
  6. Flexibilität (Flexibility / Agility)
    Bei klassischen Softwareentwicklungsprojekten wird vor Projektbeginn eine Spezifikation geschrieben. Obendrein wird darauf hingewiesen, dass es teuer wird, wenn sich an der Spezifikation etwas ändern sollte, insbesondere wenn das Projekt bereits begonnen hat. Oftmals werden Changes hinausgezögert und ein Kontroll Organ eingesetzt, um sich vor never-ending Projekten und Verlagerungen des Scops zu schützen. Der agile Ansatz ist anders - Changes sind willkommen, genauer gesagt: werden erwartet!
  7. Kostenkontrolle (Cost Control)
    Der Zeitplan ist fix, der Umfang wage bekannt und natürlich gibt es auch ein fixes Budget. Der Projektscope und die Product Features sind variabel, die Kosten nicht. Der Produkt Owner hat alle Steuerungselemente in der Hand, um seine anfallenden Kosten zu kontrollieren und zu steuern, pro Sprint.
  8. Business Engagement und Kundenzufriedenheit (Business Engagement/Customer Satisfaction)
    Die aktive Beteiligung aller Mitglieder inklusive dem Product Owner, die hohe Transparenz des Projektverlaufs und die Flexibilität von Änderungen, wenn Änderungen notwendig sind erhöhen die die Kundenzufriedenheit und das Business Engagement. Dies sind wichtige Vorteile, die nicht zu letzt eine positive und nachhaltige Kundenbeziehung sicherstellen.
  9. Das richtige Produkt
    Aufgrund der gegebenen Flexibilität und regelmässigen Releases kann auf Marksituationen schnell und zielgenau reagiert werden. Mit agilen Entwicklungsprojekten steht der User im Zentrum der Aktiviäten. Man nennt das auch User Centered Design (UCD).
  10. Spass an der Arbeit
    Eine aktive Beteiligung, die Mit- und Zusammenarbeit von jedem einzelnen machen agile Entwicklungsteams für viele zu einem attraktivem Arbeitsumfeld.

Sonntag, 17. Juni 2007

Use Case, User Story und Szenario

Use Case, User Story und Szenarien - irgendwie ja alles das Gleiche, oder doch nicht?

Ich meine, es ist sehr wichtig die einzelnen Begriffe doch deutlich voneinander abzugrenzen.

Ein Use Case ist eine graphische Modellierung eines Anwendungsfalls mittels UML.

Eine User Story ist eine formale Bescheibung einer Aktivität eines Benutzers mit einem System für agile Softwareentwicklung. Im Vordergrund steht die Frag: Wer macht Was, um welches Ziel zu erreichen.

Ein Szenario ist der User Story ähnlich, nur das zusätzlich zur Aktivität noch Rahmenbedinungen, Stimmungen, Gefühle und vieles mehr addressiert werden. Szenarien werden häufig bei der Modellierung von Personas verwendet.

Dienstag, 12. Juni 2007

Agile Development: Back to the future!

Kelly Waters schreibt gestern auf seinem Blog, wie man mit Features umgeht, die nach Ablauf eines Sprints nicht fertig gestellt wurden. Er beschreibt, wie man den Code für eine releasefähige Version verwalten und zurückrollen kann - daher der Name: "Back to the future!"

Er beschreibt, warum das nur theoretisch funktioniert, und warum das in der Praxis nicht so einfach ist.

agile-development-back-to-future

Montag, 11. Juni 2007

Wie führt man Scrum ein

Man hat sich mit agiler Vorgehensweise nach Scrum beschäftigt, befürwortet dieses Arbeitsweise, fragt sich, warum ma nicht schon immer so gearbeitet, hat ein paar Sympathisanten an seiner Seite und möchtes Scrum mal selbst "ausprobieren".

Die Frage lautet: Wie führt man Scrum ein?
Iterativ, alles auf einmal, mit oder ohne Kunden, etc? Viele Fragen, hier ein paar Antworten.

Aus meiner Erfahrung kann ich nur empfehlen, Scrum nur gesamthaft, d.h. mit allen Rollen und Ritualen einzuführen. Das bedeutet, Einführung von agiler Vorgehensweise von heute auf morgen, zur Stunde 0.

Wie kann man das vorbereiten? Schulen, Schulen, Schulen! Zunächst ist es wichtig, dass das zukünftige Scrum Team der Idee folgen kann/will. Dazu braucht es auch unmittelbar die Zustimmung der operativen Ebene in einem Unternehmen.
Ein paar "early adaptives" sind sehr wichtig. Es bietet sich an, dass man bestimmte Themen auf verschiedene Personen verteilt und ein paar Rollenspiele vor der Einführung organisiert. Es ist wichtig, dass das Team die Arbeitweise anerkennt und "lebt"....

Was macht man mit dem Kunden? ....coming soon.

Release 3 ausgeliefert

Nach nur einem Sprint von 2 Wochen haben wir am Freitag den Release 3.0 ausgeliefert.
Das Team hat insgesamt 23 Story Points, verteilt auf 8 User Stories, angenommen und zu 100% fertiggestellt. Zusätzlich wurde ein Bug bearbeitet.

Die Velocity in diesem Sprint betrug 23- damit ergibt sich ein Durchschnitt bisher von 19 Story Points pro Release.

Seit Projektbeginn Anfang April 07 hat das Team 59 Story Points abgearbeitet.
Das Projekt wird am 15. Juni mit einen weiteren Release abgeschlossen. Es sind noch 13 Story Points geplant.

Freitag, 8. Juni 2007

Daily Scrum mit TargetProcess, Teil III


Nach gut 4 Wochen mit der neuesten TargetProcess Version haben wir das Tool TaskBoard vielfach verwenden können, und - nicht mehr wegzudenken!

TaskBoard ist für die Auslegung des Daily Scrum optimal. Das Team hat dieses neue Werkzeug gut angenommen, jeder arbeitet damit und der Scrum Master, sowie Product Owner haben eine aussagekräftige Übersicht. Sehr gut.

Einzig ein neues Feature fehlt noch: automatisiertes Hinzufügen von Task, wenn eine User Story angelegt wird, z.B. Write a UAT, Write a Unit Test, etc.

Wer ist der Product Owner?

Scrum definiert eine Reihe von Ritualen und Rollen. Eine sehr wichtige Rolle ist der Product Owner, ich würde sogar sagen, dass dies die wichtigste Rolle eines Scrum Projekts ist.

Was, oder besser Wer genau ist der Product Owner?

Bei jedem Projekt gibt es einen Geldgeber, der Investor. Er verfügt über eine Budget zur Lösung diverser "Probleme" innerhalb des budgetierten Zeitraums. Er entscheidet, welche Projekte wieviel Budget in einer solchen Periode zugesprochen bekommen.

Wird einem Projekt Budget zugesprochen, gibt es einen Projekt Manager, der dieses Projekt leitet. Nach Scrum ist diese Person der Product Owner. Er steuert das Projekt. Er balanciert Investment und ROI. Darüber hinaus ist er der Interessenvertreter aller Stakeholder.

Das Scrum Team wird vom Product Owner gesteuert.

Mittwoch, 23. Mai 2007

TargetProcess 2.4 - TaskBoard

Seit der Auslieferung des letzten Release setzen wir für das Projektmanagement TargetProcess Version 2.4 ein. Insbesondere haben wir das neue Feature "TaskBoard" in unsere Daily Scrum Meetings aufgenommen.

Nach anfänglicher Skepsis stellt sich heraus - sehr gutes Tool! Das Team pflegt jetzt Tasks, was vorher nur sporadisch gemacht wurde. Nun kann man auf einen Blick sehen, wer woran arbeitet und was noch zu tun ist. Der Austausch und das Mitarbeiten an den Aufgaben von anderen Teammitgliedern funktioniert nun viel besser. Man nimmt sich einfach einen Task und beginnt zu arbeiten. Wenn man neue Arbeit erkennt, legt man einen Task an. Im Daily Scrum werden alle Tages-Aufgaben sofort erkannt und jeder weiss, was das Tagegeschehen ist.

Ich finde, TaskBoard hat eine Chance verdient.