Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Visualize Unvisible Work

Autor: Matthias Künzi, visuellklar

Beitrag - Embedded Software Engineering Kongress 2017

 

Um effiziente und effektive Lösungen für Software und Systeme zu entwickeln oder anspruchsvolle Projekte richtig steuern zu können, ist Transparenz essentiell. Es ist elementar, dass allen Beteiligten die Fragestellungen transparent und verständlich sind, die Risiken, Abhängigkeiten und zu erledigenden Arbeiten klar sind. Der Vortrag zeigt, wie mit visuellen Mitteln diese Transparenz wieder erreicht werden kann. Die Teilnehmer erhalten praxiserprobte Ideen, Methoden und Beispiele um Projekte oder Systementwicklungen besser sichtbar und damit greif- und begreifbar zu machen.

Sichtbare und unsichtbare Arbeit

Was bedeutet sichtbare Arbeit? Es geht darum, den aktuellen Stand oder Status einer Arbeit oder Tätigkeit zu sehen. In handwerklichen Berufen und Tätigkeiten, in welchen Handfestes geschaffen wird, ist die Sichtbarkeit meist automatisch gegeben. Zum Beispiel ein Feinbäcker, welcher ein Kuchenblech voll Törtchen macht, sieht auf einen Blick, bei welchen Törtchen welche Arbeitsschritte schon gemacht wurden resp. wo noch was fehlt (s. PDF, Abb. 1)

Wie sieht das aber in unserem Umfeld aus? Wir haben eher kopflastige Arbeiten. Vieles ist vom Handwerk zur Wissensarbeit geworden. Was ist beispielsweise der Status des folgenden Codefragmentes? Ist es fertig? Was fehlt noch? Welche Schritte sind schon gemacht?

(s. PDF, Abb. 2: Nicht (schlecht) sichtbare Arbeit – C++ Klasse programmieren)

Das lässt sich nicht so ohne weiteres beantworten. Selbst wenn wir den Code genauer ansehen könnten und uns Zeit dazu nehmen würden, wäre es immer noch sehr schwierig, den genauen Status dieses Artefakts zu benennen.

Ähnlich verhält es sich mit den folgenden in einem Softwareprojekt anfallenden Tätigkeiten:

  • Kundenanforderung umsetzen
  • Anforderung testen
  • Code überprüfen
  • Architektur erstellen und dokumentieren
  • Risiken behandeln
  • Use Case implementieren


Warum ist Sichtbarkeit wichtig?

Wie beim Feinbäcker ist es auch für uns als Wissensarbeiter wichtig, den Stand der Arbeiten in einem Projekt zu kennen. Unsere Arbeiten sind vernetzt. Arbeitsergebnisse hängen voneinander ab. Es ist deshalb wichtig zu wissen, wann etwas fertig wird, oder wie lange es geht, um etwas fertig zu machen. Kurz - es geht um Planbarkeit.

Auf Projektarbeit bezogen sollten auch Risiken, oder Abhängigkeiten oder sämtliche Projekterzeugnisse, wie Dokumente, Funktionen, Use Cases, Anforderungen, … sichtbar gemacht werden. Denn, wie Tom DeMarco sagt: "You can’t control what you can’t measure", ist es essentiell, in der Projektarbeit Kontrolle, sprich eine aktive Steuerungsmöglichkeit, zu haben. Folgenden Fragen stellen sich: Was ist der Status der Arbeit? Was ist fertig, was noch nicht? Was läuft gut, was nicht? Wo muss ich als Projektleiter steuernd eingreifen? Wo sind Maßnahmen notwendig?

Kriterien für sichtbare Arbeit

Was sind die Kriterien für sichtbare Arbeit? D.h. wann ist der Status einer Arbeit transparent und sichtbar?

Es müssen dazu 4 Kriterien erfüllt sein.

  1. Der Typ der Arbeitseinheit muss eindeutig definiert sein. Das heisst, es muss klar sei,n für welche Arbeitseinheit Sichtbarkeit erreicht werden soll.
  2. Für die definierte Arbeitseinheit muss der Workflow bekannt und definiert sein. Welche Arbeitsschritte sind für die komplette Abarbeitung notwendig? In welcher Feinheit ist Sichtbarkeit gefordert?
  3. Der Kontext, in der sich die konkrete Arbeitseinheit befindet, muss bekannt sein.
  4. Für die konkrete Arbeitseinheit muss nun der Status im Workflow aufgezeigt werden. Oder anders gesagt: Es muss aufgezeigt werden, in welchem Arbeitsschritt sich die Arbeitseinheit befindet.


Wie gelingt es, unsichtbare Arbeit sichtbar zu machen?

Im agilen und Lean Umfeld ist es üblich, sogenannte Kanban-Boards zu erstellen, um die Sichtbarkeit von Arbeit zu erzeugen. Visualisierung ist ja auch eines der generellen Prinzipien von Kanban. Nachfolgend ein einfaches Kanban-Board mit einer Visualisierung von Arbeitseinheiten (Tasks):

(s. PDF, Abb. 3: Einfaches Kanban-Board, um Arbeiten sichtbar zu machen)


Aber reicht es, ein Kanban-Board zu erstellen und jede Arbeitseinheit als Karte (real oder digital) in der "Todo" "In Progress" oder "Done" Spalte aufzuführen?

Sehen wir uns dazu die Kriterien für Sichtbarkeit an – und prüfen, ob diese erfüllt sind:

  1. Typ der Arbeitseinheit muss eindeutig definiert sein.
  2. Für die Arbeitseinheit muss der Workflow bekannt und definiert sein.
  3. Kontext muss bekannt sein.
  4. Status im Workflow muss sichtbar sein.

Zu Kriterium 1:
Ist der Typ der Arbeitseinheit eindeutig definiert? Aus meiner Sicht nicht. Es ist nicht klar, ob das alles Implementierungsarbeiten sind. Oder vielleicht Fehleranalysen? Oder Fehlerbehebungsarbeiten? Oder gar Dokumentationsarbeiten? Natürlich kann ich alles generalisiert als Tasks darstellen. Aber gibt das mir wirklich die geforderte Sichtbarkeit und damit Planbarkeit?

Zu Kriterium 2:
Ist der Workflow bekannt und definiert? Ja. Der Workflow ist "Todo" --> "In Progress" --> "Done". Aber ist das wirklich der richtige Workflow, welcher uns genügend Sichtbarkeit bringt?

Zu Kriterium 3:
Ist der Kontext bekannt? Rein mit dem Kanban-Board wohl eher nicht. Zeigt das Board alle Arbeiten eines Projektes? Von welchem Team? In welchem Sprint? In welchem Teilgebiet? Es ist wichtig, hier den Kontext oder auch Scope zu wissen.

Zu Kriterium 4:
Ja, der Status jeder Arbeitseinheit ist im Workflow sichtbar.

Zusammenfassend heisst das, dass nur mit dem Eintragen von Karten für jeden Task auf einem einfachen Kanban-Board üblicherweise noch nicht genügend Sichtbarkeit erreicht wird.

Verbesserte Sichtbarkeit würden folgende Definitionen/Maßnahmen erreichen:

  1. Jede Karte steht für eine Implementierungsarbeit.
  2. Der Workflow sieht wie folgt aus: "Open" --> "Design in Progress" --> "Coding in Progress " -->
    "Testing in Progress" --> "Reviewed" --> "Done"
  3. Kontext: Teilprojekt ABC; Sprint 22
  4. Die entsprechenden Karten sind den entsprechenden Workflow-Schritten zugeordnet.

 

Beispiel: Erreichen von Sichtbarkeit von umzusetzenden Use Cases

Es macht Sinn, nicht nur von generalisierten Tasks zu sprechen, sondern von den richtigen Artefakten, auf welche sich die Tätigkeiten und Arbeiten beziehen. Das bedeutet, wenn es beispielsweise darum geht, einen Use Case umzusetzen, sollte dieser auch als sichtbare Arbeitseinheit visualisiert werden. (s. Abbildungen im PDF)

  1. Arbeitseinheit: "Umzusetzender Use Case"
  2. Definierter Workflow
  3. Definition Kontext
  4. Status im Workflow sichtbar


Beispiel: Erreichen von Sichtbarkeit von Software-Architekturarbeit

Auch komplexere Themen wie Architekturarbeit lohnen sich sichtbar zu machen, um vor allem bei größeren Systemen eine Planbarkeit, gemeinsames Verständnis und somit Effektivität und Effizienz zu erreichen. Anhand einer systematischen Architekturerstellung ist hier die Arbeitseinheit ein in der Architektur zu berücksichtigender Architekturtreiber (Architecture Driver). (s. Abbildungen im PDF)

  1.  Arbeitseinheit: "Architektur Driver"
  2. Definierter Workflow
  3. Definition Kontext
    Damit ist auch gleich klar und definiert, wie die Architekturerstellung (Architekturprozess) ablaufen soll.
  4. Status im Workflow sichtbar

Zusammenfassung

Zusammenfassend lässt sich folgendes festhalten:

  1. Sichtbarkeit ist essentiell für die Projektarbeit.
  2. Schaffen Sie Transparenz in Ihren Projekten durch Sichtbarmachen der Arbeiten.
  3. Sichtbarkeit bezieht sich nicht nur auf generelle "Tasks". Versuchen Sie, Sichtbarkeit für konkretere und komplexere Arbeitseinheiten zu erreichen.
  4. Schaffen Sie Sichtbarkeit durch definierte Arbeitseinheiten, einen definierten Workflow und einen sichtbaren Status aller Arbeitseinheiten sowie durch Aufzeigen des Kontexts.

 

Abbildungsverzeichnis

  • Abb. 1: Sichtbare Arbeit – Törtchen backen
  • Abb. 2: Nicht (schlecht) sichtbare Arbeit – C++ Klasse programmieren
  • Abb. 3: Einfaches Kanban-Board, um Arbeiten sichtbar zu machen

Autor

Matthias Künzi (Dipl. El. Ing. HTL, Dipl. Software Ing. FH) arbeitet seit 2015 bei Belimo AG. In seiner jetzigen Tätigkeit als "Head of Software" bringt er über 20 Jahre Erfahrung in die Umsetzung von kritischen Softwaresystemen im Embedded Umfeld mit ein. Mit seiner eigenen Firma "visuellklar" beratet und unterstützt Matthias Künzi Firmen bei der Umsetzung komplexer Problemstellungen im Projekt und Softwareumfeld. Dabei kommen vor allem visuelle und agile Methoden zum Einsatz.

 

Kontakt

  • Internet: www.visuellklar.ch
  • Email: matthias.kuenzi@visuellklar.ch

 

Beitrag als PDF downloaden


Management - unsere Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Management / Prozess-, Projekt- und Produktmanagement.

Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Management - Fachwissen

Wertvolles Fachwissen zum Thema Management / Prozess-, Projekt- und Produktmanagement steht hier für Sie zum kostenfreien Download bereit.

Zu den Fachinformationen

 
Fachwissen zu weiteren Themen unseren Portfolios finden Sie hier.