Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
knowhow:planspiel20110622 [2011/08/31 00:26]
admin
knowhow:planspiel20110622 [2012/02/19 14:10] (aktuell)
Florian Sesser Tags hinzugefügt
Zeile 3: Zeile 3:
 Workshop Teil 1: Die Idee. Das Management hat eine Idee für ein neues Projekt. Wolkige Vorstellungen, grobe Ideen. Wir sind damit beauftragt aus dieser vagen Idee ein brauchbares Produkt zu machen. Workshop Teil 1: Die Idee. Das Management hat eine Idee für ein neues Projekt. Wolkige Vorstellungen, grobe Ideen. Wir sind damit beauftragt aus dieser vagen Idee ein brauchbares Produkt zu machen.
  
-An diesem Szenario spielen den Weg einer Software von der Idee zum fertigen Produkt nach. Auf dem Weg dokumentieren wirwann wir was warum gemacht haben. Nach dieser Reise werden wir eine Form der Dokumentation gewählt habenRollen identifiziert, Stakeholder kennen gelernt, Kommunikationstechniken geübtRequirements wurden gefunden, ein Plan wurde aufgestellt. Wir haben eine Softwarearchitektur gefunden und die Realisierung in die Wege geleitet+Dies ist die Wiki-Aufbereitung der [[agenda:a0411:mitschrift|Mitschrift]] von Joesie enthält nochmals Tipps und Informationendie am Abend noch nicht zur Sprache kamen.
  
 +=== Auftakt ===
  
-{{ :knowhow:workshop.jpg?nolink&300 |}}+Die Teilnehmer des Workshops spielen die Rolle eines Entwicklungsteams. Ein Kunde (z.B. aus einer anderen Abteilung eines Konzerns) kommt hereingeschneit und bestellt eine neue Web-Anwendung.
  
 +Er benötigt eine Anwendung zum Erfassen und Verwalten von Mitarbeiteprofilen von Softwareentwicklen, seine Abteilung hat dort einen Markt erkannt und will dort tätig werden. Man hat dort einige wolkige Ideen, aber noch keine allzu detaillierten Vorstellungen.
  
-  * Rollenspiel: Froh "bestellt" eine Web-Anwendung zum Profil-Management (analog GULP) bei einem Entwicklungsteam (restliche Teilnehmer) +=== Unser Team ===
-  * Beim Entwicklungsteam haben wir Glück: Für dieses Rollenspiel dürfen wir unser Entwicklungsteam frei aussuchen und arbeiten nur mit Mitarbeitern unserer Wahl zusammen. +
-  * Exkurs: Beim Erfassen von Requirements und Reden mit den Stakeholden müssen wir viel kommunizieren. Hier bietet sich an, sich einmal mit der "Gewaltfreie Kommunikation" nach Marshall Rosenberg zu beschäftigen.+
  
-  * spezifisches Requirement A) "Jahre Erfahrung pro Fachgebiet im Profil erfassen" +Beim Entwicklungsteam haben wir Glück: Das Team können wir aus erfahrenen Mitarbeitern selbst zusammenstellen, brauchen für dieses Planspiel also nicht auf Entwickler Rücksicht nehmen die aus "nicht-fachlichenGründen ins Projekt geschoben werden.
-  * Budget "vorhanden" (Aufhänger: Planungsteam 4 Personen)+
  
-  * Wer macht was +=== Anforderungen des Kunden === 
-    * Rollenverteilung beim Kunden ermitteln +Der Kunde hat eine konkrete Anforderung: Er will ein Portal, in dem sich Softwareentwickler registrieren können und anstelle der üblichen "ich kann Java nicht/bisschen/mittel/guteine Erfahrungswertung haben "ich habe 7 Jahre Erfahrung mit Java und 6 Monate mit Ruby"
-    * Kommunikation zwischen Tech und non-Tech bei Requirements/im Projektverlauf aufrechterhalten +
-  * Klären: Produkt oder Projekt? +
-    * Nachsatz: "Wenn das Projekt fertig ist können wir es ja als Produkt verkaufenvermeiden +
-  * Unterschiedliche Vorstellungen innerhalb des Kunden klären +
-    * Assoziationen zunächst jeder für sich entwickeln, dann in der Runde konsolidieren (Hilfsmittel: Jeder schreibt seine auf) +
-    * wenn möglich unabhängig von der Organisationsstruktur+
  
-  * Ideen, die beim Kunden rumgeistern, zusammen mit Prioritäten/Gewichten erfassen/erzählen lassen +Die genauen Anforderungen müssen noch durch Gespräche mit den Beteiligten festgelegt werden.
-    * Zusammenhänge zwischen den Ideen verstehen +
-    * Ideen außerhalb der Umsetzungsdomäne identifizieren und "ablehnen" +
-      * Ideen sind: Rollen, Daten (DB-Felder), Funktionalitäten +
-    * ungeklärte Probleme dürfen *explizit* offen bleiben+
  
-  * "Zeichenphase": Lösungsansätze/Prototypen entwickelnvom Kunden beurteilen lassen +Für das Rollenspiel nehmen wir andass ein Budget für die Entwicklung vorhanden ist.
-    * z.B. aus dem Blickwinkel unterschiedlicher Rollen+
  
-  Zyklisch ab "Unterschiedliche Vorstellungen" bzw. "Wer macht was", bis der Prototyp genau genug als Implementierungsvorlage ist. Prototyp bekommt die Rolle eines Lastenhefts.+<WRAP center round tip 75%> 
 +//**__SGS Workshop (nachträglich eingefügt)__**//
  
-  * Flo: Tool "Balsamiq Mockups" => Bleistiftoptikanalog Idee von Joel SpolskyUnfertige Funktionen im UI "handschreiben"+Eine Möglichkeitdie Projektbeteiligten, die Ziele und den Umfang des Projekts auszuloten ist der [[http://www.volere.co.uk/pdf%20files/StkGoalsScope.pdf|SGS Workshop]]. SGS steht für //Stakeholders, Goals, Scope//.
  
-  Martin "Vorteil" von Komitee-EntscheidungenMan hat genug Zeit das Zeug  fertig zu machen, während der Entscheidungsprozess langwierig läuft +Dem SGS Workshop liegt die Erfahrung zugrunde, dass Stakeholders, Goals und Scope von verschiedenen Teams in verschiedener Reihenfolge ermittelt werden - und dass Erkenntnisse bei dem einen neue Fragen beim anderen Aufwirft. 
-  * Funkionierendes Beispiel: "DünnerProzess, in Templates nur das nötigste Ausfüllen + 
-  * Froh: Confluence + ARC42-Template; Martin: Trac, Pläne durch Confluence zu ersetzen+Der SGS Workshop behandelt schlicht alle drei in einem einzigen Workshop. 
 +</WRAP> 
 + 
 + 
 +<WRAP center round tip 75%> 
 +//**__ExkursGewaltfreie Kommunikation__**// 
 +Beim Erfassen von Requirements und Reden mit den Stakeholden müssen wir viel kommunizieren. Hier bietet sich an, sich einmal mit der [[http://de.wikipedia.org/wiki/Gewaltfreie_Kommunikation|Gewaltfreien Kommunikation]] nach Marshall Rosenberg zu beschäftigen. Diese erlaubt es auf //Bedürfnisse// von Menschen zu hören.  
 + 
 +Drüber hinaus ist es auch sinnvoll für Verhandlungssituationen - auch diese können beim Requirements Enigneering entstehen - einmal vom [[Harvard Konzept]] gehört zu haben. 
 +</WRAP> 
 +  
 + 
 +== Wer macht was? == 
 +(Bei SGS sind das die Stakeholder) 
 + 
 +Das Entwicklungsteam muss ermitteln, wer beim Kunden welche Rolle spielt und wie er auf das Projekt Einfluß nimmt. Die Kommunikation zwischen verschiedenen Kommunikationskulturen (z.B. Techniker / Nichttechniker) muß funktionieren. 
 + 
 +== Projekt oder Produkt? == 
 +Nichts ist gefährlicher als der Nachsatz "Wenn das Projekt fertig ist, können wir es ja als Produkt verkaufen". Wir ignorieren damit, dass Endkunden ganz andere Bedürfnisse haben als der spezifische Personenkreis, für den wir entwickelt haben. 
 + 
 +Anders läuft es bei einen Produkt. Auch wenn man einen Erstkunden hat nach dessen Vorgaben man entwickelt, kann man dessen Wünsche nach "goldenen Wasserhähnen" auch mal ablehnen. 
 + 
 +== Kommunikation == 
 +Bei der Kommunikation mit dem Kunden müssen Missverständnisse vermieden werden, die Requirements müssen gelten. Hierzu kann man verschiedene Mittel einsetzen: 
 + 
 +  * Was ausgemacht ist wird von allen Teilnehmern für sich interpretiert, danach wird in der Runde sichergestellt, dass ein gemeinsames Verständnis existiert. 
 +  * Konventionen können helfenz.B. bei User Stories gibt es schriftliche Confirmations. Wenn die Confirmations erfüllt sind, muss die Story abgenommen werden. Es zählt der Wortlaut. Da der Kunde die Confirmations diktieren kann, wird er seine Anforderungen genau festlegen. 
 +  * Weiterbildung ist nützlich: Bei Scrum ist gibt es z.B. einen einzelnen Ansprechpartner des Teams - den Product Owner. Der PO ist nicht technisch, gehört optimalerweise zum Kunden, er ist eine Einzelperson //und// er hat eine Weiterbildung als PO besucht. 
 + 
 + 
 +== Anforderungen == 
 +Die Ideen, die beim Kunden existieren müssen erzählt und erfasst werden. Ideen außerhalb der Umsetzungsdomäne (Scope) werden abgelehnt, andere Ideen werden verstanden und priorisiert. Rollen, Daten (DB-Felder), Funktionalitäten - all dies dient als Input. 
 + 
 +== Prototypen == 
 +Ein Lösungsansatz oder sogar ein Prototyp wird entwickelt. Das Ergebnis prüft man zusammen mit dem Kunden wie weit es seine Bedürfnisse erfüllt und geht danach in die nächste Runde: Die Schritte "Wer macht was?" und folgende werden durchlaufen bis Zufriedenheit herrscht. 
 + 
 +Der Lösungsansatz (Papier) oder der Prototyp bekommt die Rolle eines Lastenhefts. 
 + 
 +<WRAP center round tip 75%> 
 +//**__Prototypoptik__**// 
 + 
 +Ein Prototyp sollte nicht wie eine fertige Software aussehen, erst recht nicht ein Wireframe. Das Tool [[http://balsamiq.com/products/mockups|Balsamiq Mockups]] verwendet deswegen z.B eine Bleistiftoptik. 
 +Joel Spolsky verwendet als Platzhalter für unfertige Funktionen z.B. handgeschriebene Buttons in der Software. 
 +</WRAP> 
 + 
 +===== Diskussionsteil ===== 
 + 
 +  * Kommiteentscheidungen dauern oft so lange, dass man den "Vorteil" hat die Software fertig zu implementieren, während der langwierige Entscheidungsprozeß noch läuft (Martin) 
 + 
 +  * Gegenbeispiel: "SchlankerProzeß, in Dokumentationstemplates nur das nötigste ausfüllen. 
 + 
 +  * DokumentationWiki, z.B. Confluence oder Trac. Ein Archtekturtemplate wie [[http://www.arc42.de/|ARC 42]] ist sehr hilfreich. 
 + 
 +  * Grundregel: Es gibt nur //**einen**// Platzan dem dokumentiert wird
  
   * Abstimmungs-Meetings: Wechselnde, kleine Gruppen zusammenstellen   * Abstimmungs-Meetings: Wechselnde, kleine Gruppen zusammenstellen
Zeile 52: Zeile 94:
   * Martin: Gibt es Strategien, mit angeordneter Kommunikationstrennung effizient/effektiv umzugehen?   * Martin: Gibt es Strategien, mit angeordneter Kommunikationstrennung effizient/effektiv umzugehen?
     * -> praktisch nur "Nebenkanäle", Social Engineering     * -> praktisch nur "Nebenkanäle", Social Engineering
- 
  
   * Plan für den nächsten Schritt: Architektur/Umsetzungsplan fur die oben erfassten Ideen/Prototypen   * Plan für den nächsten Schritt: Architektur/Umsetzungsplan fur die oben erfassten Ideen/Prototypen
 +
   * Interesse von Flo: Wie kommt man aus den Requirements zu einer Roadmap   * Interesse von Flo: Wie kommt man aus den Requirements zu einer Roadmap
 +
   * Froh: "Growth Paper"; als "Gate" des Konzernprozesses   * Froh: "Growth Paper"; als "Gate" des Konzernprozesses
 +
   * Michi: Bei feststehendem Endtermin pragmatisch   * Michi: Bei feststehendem Endtermin pragmatisch
     - Klickdummy     - Klickdummy
     - in schnellen Iterationen Features (nach Abhängigkeiten)     - in schnellen Iterationen Features (nach Abhängigkeiten)
 +
   * Froh: Vereinbarte Iterationen helfen, disjunkte Teams zu synchronisieren   * Froh: Vereinbarte Iterationen helfen, disjunkte Teams zu synchronisieren
- 
  
   * WIE schreibt man die Ergebnisse der obigen Erfassung auf!?   * WIE schreibt man die Ergebnisse der obigen Erfassung auf!?
 +
   * ZIELGRUPPE/Zielperson der Dokumentation explizit aufzeigen!   * ZIELGRUPPE/Zielperson der Dokumentation explizit aufzeigen!
 +
   * Ein Dokument kann auch für viele Konsumenten vorgesehen sein - Beispiel FuncSpec (Martin)   * Ein Dokument kann auch für viele Konsumenten vorgesehen sein - Beispiel FuncSpec (Martin)
 +
   * Flo: Trac-Schema mit "Drill-Down"-Funktionalität (aus technischem Blickwinkel)   * Flo: Trac-Schema mit "Drill-Down"-Funktionalität (aus technischem Blickwinkel)
     * Obere Layer dienen auch als Input für Übersetzer/graphische Designer/usw.     * Obere Layer dienen auch als Input für Übersetzer/graphische Designer/usw.
  
  
 +{{ :knowhow:workshop.jpg?nolink&800 |}}
 +
 +
 +{{tag>Von_der_Idee_zum_Release Planspiel Conways_Law SGS_Workshop Prototyping Gewaltfreie_Kommunikation}}