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.

Release 2.0 erfolgreich ausgeliefert

Gestern, 22.05.07 haben wir den Release 2.0 (Anneboda) erfolgreich ausgeliefert. Wir haben daran zwei Sprints a eine Woche gearbeitet. Geplant war pro Sprint eine Velocity von 10 SP's. Es hat sich jedoch gezeigt, dass einwöchige Sprints nicht wirklich gut sind, denn es ist das Ziel am Sprint Ende alle User Stories auf DONE zu bringen. Wir konnten das nicht einhalten. Im ersten Sprint wurde lediglich eine User Story mit 1 SP abgeschlossen, im zweiten Sprint dann 5 weitere mit insgesamt 25 SP's. Damit wurden total 26 SP's für diesen Release realisiert. Wir werden zukünftig wieder Sprints a zwei Wochen planen - Velocity 20.

Ein alt bekanntes Problem gab es auch während dieses Releases - Resourcenlage. Es gab erneut wieder, sagen wir mal "flüchtige Resourcen". Teammitglieder wurden mal stunden-, mal tagweise abgezogen und es ist viel Arbeit liegengeblieben. Der Rest des Teams hat diese dann übernommen und fertiggestellt - immerhin fördert das den Teamzusammenhalt, auch wenn man beim Einen oder Anderen Säbelrasseln hört...

Was haben wir daraus gelernt? Nun ja, die Scrum Rituale sind wichtig! Bisher haben wir Estimation, Planning Meeting und Daily Scrum nicht nach Scrum durchgeführt. Hier war es eher so, dass ein kleiner Teil des Teams diese Meetings durchlaufen hat, nicht aber alle. Damit haben die Daily Scrum Meetings eher den Stil von "Du machst heute das!" (Weil ich es Dir sage!). Was passiert? Niemand übernimmt Verantwortung und klemmt sich hinter die Arbeit. Man bekommt auch keine Hindernisse oder Verzug gemeldet. Am Ende wird es eng und die Gemüter sind erhitzt!

Wir machen jetzt Planning Meeting mit allen Teammitgliedern und jeder wählt selbst, welche Arbeit er übernehmen möchte. "Scheissarbeiten" werden demokratisch verteilt, so kommt jeder mal in den Genuss. Jedem ist klar, dass er allein für die Fertigstellung der Aufgabe verantwortlich ist. Wenn Hindernisse auftauchen müssen diese in erster Linie selbst gelöst werden.

Wir arbeiten jetzt konzentrierter und fokussierter an den Aufgabe - ein guter Schritt nach vorn, wie ich finde.

Mittwoch, 9. Mai 2007

Scum bei der SAF AG, Tägerwilen

Die SAF AG, Tägerwilen arbeitet an verschieden Standorten an zwei ihrer Produkte - SAF ApplicationSuite und SAF Engines.

Die Verteilung der Entwicklungsteam stellt besondere Anfordungen an das Projektmanagement. Kompetenzen müssen optimal zusammenspielen, Produktverbesserungen sollen schnell und iterativ in die Produkte einfliessen und man möchte die Qualität der Software nachhaltig sicherstellen.

Die SAF AG setzt Scrum als Vorgehensmodell ein und verfügt über 11 zertifzierte Scrum Master. Täglich gibt es teamübergreifend ein Daily Scrum, der für die Transparenz im gesamten Unternehmen sorgt. Mit Scrum gelingt es der SAF AG die Qualität bei der Softwareentwicklung zu sichern.

Gibt es noch andere Unternehmen in der Schweiz, die Scrum erfolgeich einsetzen?

Was ist ein Story Point

Soll man eine Aussage über den Aufwand für eine Aufgabe machen, ist man gezwungen zu Schätzen. Je nachdem, wieviel Erfahrungen man hat, um die Aufgabe zu lösen, oder ob man eher optimistisch oder pessimistisch schätzt, oder, oder, oder kommt man zu einer anderen Aussage - eben einer Schätzung.

Wie auch immer man zu einer Schätzung kommt wurden meistens folgende Punkte mit einkalkuliert:
  • Risiko
  • Know-How
  • Komplexität
  • Zeit
  • Qualität
  • Resourcen
Story Points sind eine Einheit für Komplexität (ausschliesslich). Sie dienen der Schätzung von Aufwand für die Erledigung einer Aufgabe. Beispiel:

Wie komplex ist es, vom der Wohnungstür zum nächstgelegenen Supermarkt zu gelangen. Nehmen wir an, es ist 1. Wie komplex ist es dann wohl, von der Wohnungstür zum nächstgelegenen Flugplatz zu kommen? Vielleicht eine 3. Dass bedeutet, dann die Bewältigung der zweiten Aufgabe 3-mal so komplex ist, wie die für Aufgabe eins.

Man macht also bewusst keine Aussage über Zeit, Resourcen, Know-How oder ähnliches. Man versucht vergleichbare Aufgaben in Komplexitätsrelationen herunterzubrechen. Gebräuchlich ist die Fibonacci Folge 1,2,3,5,8 - nicht mehr!
Wenn man ein paar mal mit Story Points geschätzt hat, bekommt man sehr schnell ein Gefühl dafür, wass eine 1, 2 oder 5 ist. Da das Team die Story Points pro User Story definiert, hat der Kunde einen Feedback. Zusammen mit dem ihm bekannten Business Value kann er nun die Priorisierung festlegen. User Stories mit hohem Business Value und geringer Komplexität werden in aller Regel zu Beginn realisiert. Für alle anderen Kombinationen gibt es unterschiedliche Ansätze. So geht man bespielsweise davon aus, dass ein Feature mit einer hohen Komplexität, aber geringem Business Value auch möglichst früh in einem Projekt begonnen werden sollte, da eine hohe Komplexität das Team und den Kunde bezüglich gewonnenem Know-How am weitesten voranbringt. Man geht davon aus, dass nicht die Entwicklung des Produkts die grösste Errungenschaft ist, sondern das gewonnen Know-How ...

Release 1.0 erfolgreich ausgeliefert

Am Montag 07.Mai 07 haben wir den ersten Release (Ecktorp) im neuen Scrum Projekt planmässig ausgeliefert. Alle Features, die geplant waren, wurden firstgerecht fertigestellt und in Produktion genommen. Der Kunde ist sehr zufrieden und hat mit dem Team die weiteren Schritte definiert.

Trotzdem der Release erfolgreich war, hatten wir einige Problem, die ich hier kurz erläutern möchte.

  1. Sprint-Planung
    Von Begin an war klar, dass wir einen ersten Release nach ca. 3 Wochen in Betrieb nehmen werden. Das Produktbacklog bot genug Arbeit für ca. 3 Releases. Der Kunde hat ein Priorisierung der Features vorgegeben und das Team hat die Arbeit zunächst auf einen Sprint mit 3 Wochen mit 25 Story Points geplant. Ein weiterer Release steht in 2 Wochen an, was uns zur Frage bringt, wie man dass in eine Sprint Planung einbezieht. Wir haben für den 2. Release (Anneboda) zwei Sprints a eine Woche geplant. Die Problematik besteht nun darin, eine realistische Planung aufzustellen, denn man hat keinen Vergleich für die Sprint Geschwindigkeit (Velocity). Unsere Annahme ist, dass wir pro Woche 12 Story Points realisieren können. Wir werden sehen ...
  2. Resourcenplanung
    Sprint 1 wurde mit einem Team von 4 Entwicklern geplant. Wir haben die User Stories aufgeteilt und parallel an Features gearbeitet. Nach ca. 1 1/2 Wochen hat sich die Resourcenlage leider verschlechtert - es wurden 2 Teammitglieder abgezogen. Nun, was ist passiert? Ein Scrum Teammitglied arbeitet weitestgehend eigenverantwortlich. Wenn jemand das Team während des Sprints verlässt, hinterlässt man begonnen Arbeit in einem mehr oder weniger unklarem Zustand. Wir haben also in der Hälfte des Sprints die Strategie zur Abarbeitung der User Stories verändert und auf Stabilität statt Menge gesetzt - sprich den Umfang reduziert. Der Rest vom Team hat die liegengebliebene Arbeit (grossteils durch Überstunden) auf DONE bringen können. So haben wir es trotz nicht geplanter Lage geschafft, alle gewünschten Features fertigzustellen. Das hat nur funktioniert, weil das Team bereits mit dem Scrum Vorgehensmodell vertraut ist und technologisch sattelfest ist. Wenn das Know-How nicht homogen verteilt ist, ist eine solche Lage durchaus als riskant einzustufen.
  3. Prototype
    In der Offerte wurden bereits Screen/Design Vorschläge offeriert. Unmittelbar zum Projektbeginn hat der Kunde das Design abgenommen. Daraufhin wurde ausserhalb des Scrum Teams ein HTML Prototype realisiert. Als das Scrum Team die Arbeit aufgenommen hatte, ergaben sich die ersten Probleme. Das Design war für eine Website, nicht aber für eine Webapplikation ausgelegt. Klassiker, wie Links, die einen Form Submit auslösen, Breadcrumb Trail in einer Applikation, Dialoge, die keine Dialoge sind, etc. wurde falsch gemacht. Somit konnte das Team nur verzögert mit der Arbeit beginnen. Dazu kam, dass der Kunde das Design abgenommen hatte und nunmehr bereits nach wenigen Tagen schon ein Re-Design besprochen werden musste, bevor überhaupt Features realisiert werden konnten. Der Kunde war sichtlich irritiert - verständlich! Daher die Empfehlung einen Applikationsdesigner von Beginn an einzusetzen. Es ist sicher auch hilfreich ein Developer über das Design schauen zu lassen - das hat sich in der Vergangenheit immer bewährt.
Was vielleicht noch erwähnenswert ist: wir haben die Scrum Rituale auf eine Minimum beschränkt. Wir machen täglich ein 15-minütiges Stand-up Meeting, Sprint und Release Planung und eine Retrospective bei einem Bier am Abend. Wir setzten Target Process ein, beschränken uns aber nur auf die Funktionen für Release und Sprint Planung, sowie User Stories und Bugs. Sonst kommen keine weiteren Tools zum Einsatz.