Montag, 1. Februar 2016

Ein Meeting-Timer mit Kostenanzeige: Wie VBA unter Excel die Selbstorganisation von Teams fördert

IT-Verantwortliche werden die Hände über dem Kopf zusammenschlagen: Wir empfehlen ausdrücklich, dass Teams ihre eigenen kleinen Tools programmieren dürfen und sollen. Und dass sie gezielt ausgebildet werden in der Progammiersprache VBA (Visual Basic for Applications), im Zusammenspiel mit MS Excel.

Leser, die trotz Schauderns und Grauens den folgenden häretischen Post lesen, werden mit einem kleinen Meeting-Timer belohnt.


Mit kleinen Excel-Tools kann man schneller reagieren

Jan kommt zu mir und fragt: "Kannst du mal schnell einen kleinen Meeting-Timer programmieren? So ein Ding, bei dem man während eines Meetings sieht, wie viel Zeit schon verstrichen ist und vor allem die bisher aufgelaufenen Kosten."

"Wieso der Aufwand", frage ich. "Da gibt's doch bestimmt haufenweise Freeware." - "Schon", antwortet er. "Aber entweder sind die alle oversized oder man kann die Gehälter der Teilnehmer nicht erfassen."

Ich überschlage schnell die Opportunitätskosten:
  • Mit Jan streiten: 2 Stunden. 
  • Programmieren: 1 Stunde. 
Also programmieren. Ich brauche 55 Minuten für ein Tool, das folgendermaßen aussieht /1/:

Abbildung 1: Ein einfacher Meeting-Timer mit Excel

Der Timer ist extrem simpel. In die Tabelle im unteren Teil gebe ich die Anzahl der Teilnehmer nach Gehaltsklassen ein. Dann klicke ich auf "Los!" Die Uhr beginnt zu laufen und damit auch der Kostenzähler in der Zelle darunter.
Die Agilität dieser Methode ist doppelt:
  1. Man kann sich mit VBA kleine Tools sehr schnell erstellen, wenn man ein bisschen Übung hat. Das  muss nicht jeder im Team können, ein oder zwei Teammitglieder reichen.
  2. Jan kann nicht in VBA programmieren, aber er beherrscht Excel. Er kann sich den Timer vielfältig an seine Bedürfnisse anpassen, ohne auf mich und meine Zeit angewiesen zu sein.

Teammitglieder können die Tools auch ohne Programmierkenntnisse anpassen

Abbildung 2: Die Anwender können die Gehaltsklassen erfassen

Es ergibt keinen Sinn, jedes Gehalt jedes Meeting-Teilnehmers genau zu erfassen. Ist meist aus Datenschutzgründen auch gar nicht möglich. Es reicht aus, Gruppen zu definieren mit ihren Jahresgehältern. Dazu gibt es eine Erfassungstabelle im Arbeitsblatt pAllgemein.

Wem vier Gehaltsklassen nicht ausreichen, kann auch beliebig viele Gehaltsklassen hinzufügen. Er muss das nur in beiden Tabellen machen: in dieser Gehaltstabelle und in der Teilnehmertabelle im Timer-Arbeitsblatt selbst.

Wie komme ich von den Jahresgehältern zu den Meetingkosten pro Minute? Dazu gibt es in pAllgemein eine Umrechnungstabelle. Auch die besteht nur aus Excel-Formeln. Wem die Berechnungsmethode nicht einleuchtet, kann sie auch ohne Programmierkenntnisse anpassen:

Abbildung 3: Umrechnung von Jahresgehältern in Minutenkosten

Eigene Tools passen besser zur eigenen Situation


Grundsätzlich besteht die Herausforderung darin, die Schnittstelle zwischen VBA-Code im Hintergrund und den Excel-Worksheets im Vordergrund ganz klar zu gestalten. Also auch für die Nicht-Programmierer verständlich. Dann können sie nicht unabsichtlich etwas "zerstören".

Das folgende Schema zeigt diese Methode:

Das VBA-Makro tut nichts anderes, als in regelmäßigen Abständen (standardmäßig alle 10 Sekunden) eine Uhrzeit in die Zelle B4 im Arbeitsblatt tClock zu schreiben.

Abbildung 4: Eine klare Abgrenzung zwischen VBA-Code und Worksheet

Auf diese Zelle B4 greift die Kostenberechnung in Zelle B7 zu. Das geschieht mittels ganz normalen Excel-Formeln und ist dem VBA-Makro völlig schnurz. Jeder Anwender kann die Formel beliebig ändern und z. B. statt Kosten den durchschnittlichen Kaffeeverbrauch oder die Formel "Gähnfrequenz nach Sitzungsdauer" berechnen. Auch Formate können frei geändert werden.

Die Anwender können sogar die Zelle, in die das Makro schreibt, an eine beliebige andere Stelle in der Datei verschieben. Das Makro schreibt nämlich nicht in die Zelle "B4 im Arbeitsblatt tClock", sondern in "eine Zelle mit dem Zellnamen zClock". Und wenn ich eine benannte Zelle verschiebe, wandert der Name bekanntlich mit. Also findet das Makro die Zelle nach wie vor.

Am Beispiel soll vor allem klar werden: Ein selbst erstelltes Tool kann sehr viel adaptiver sein als irgendeine fest codierte Freeware, in die man nicht mehr eingreifen kann.

Sind eigene Excel-Tools gefährlich?

Excel ist schon ein sehr biegbares, geschmeidiges Tool. Viele, gerade agile Mitarbeiter, schätzen seine gute Mischung zwischen Strukturierung und Freiheit. Im Gegensatz zu Word wird es nie verschwinden.

Noch viel weiter verwendbar wird Excel, wenn auch das mitgelieferte VBA genutzt wird. Dagegen laufen viele IT-Abteilungen Sturm: Das würde die Anwender überfordern. Keine Standards würden  eingehalten. Man könne mit VBA auch ins Dateisystem eingreifen und dort Dateien löschen oder sonstwie Unheil anrichten. Und einige IT-Departments greifen zu Machtmitteln und deaktivieren die VBA-Entwicklungstools in der Excel-Installation.

Auf der anderen Seite ist es auch nicht so, dass die Mitarbeiter Schlange stehen, um VBA zu lernen. Sogar die Kenntnisse um die vielfältigen "normalen" Excel-Methoden wie komplexere Formeln oder Pivot-Tabellen sind nicht sehr weit verbreitet.

Aber das ist normal. Es ist Ausfluss des Silodenkens. "Bin ich zuständig? Nein, dafür ist Abteilung X da. Ist der andere zuständig? Nein, auch nicht. Was maßt der sich an?? Das werde ich schnell mal unterbinden." Die Kultur der Organisation nach Abteilungen schlägt tiefe Wunden in den gesunden Menschenverstand.

Aber warum sollten unsere Leser und wir uns damit abfinden? Wir wollen die Welt ein bisschen agiler machen.

Kleiner Werbeblock zum Schluss: Am 28. und 29. April 2016 veranstaltet Common Sense Team in Karlsruhe ein VBA-Seminar. Die Teilnahmekosten betragen für TWB-Leser 320 € netto incl. Verpflegung. Dabei geht es auch darum, die hier dargestellte "agile VBA-Theorie" zu überprüfen und zu diskutieren.

Anmerkungen


Keine Kommentare:

Kommentar veröffentlichen