Keystroke-Counter 3000

Ich wollte einen Herzschlag unserer Büro-Arbeit und deshalb alle Tastenanschläge live zählen.

Zum Ergebnis springen

Motivation

Ich hatte mit ein paar Kolleg:innen die sogenannte "Tekki-Time" gestartet, in der wir jeden Montag nach Feierabend an digitalen Projekten arbeiteten, auf die wir gerade Lust hatten - teilweise gemeinsam und teilweise jeder für sich.

Eines Abends dachte ich mir, dass ich gerne eine Visualisierung der Arbeit, die wir alle jeden Tag im Büro verrichten, bauen möchte. Andere Leute sehen am Ende des Tages, was sie geschafft haben, doch bei uns digital arbeitenden Menschen ist der Ergebnis oft leider nicht so schön sichtbar. Also wollte ich etwas bauen, womit wir eine Art Herzschlag unserer Arbeit sehen können und da wir alle vor allem den ganzen Tag lang tippen, fand ich es eine interessante Idee, alle Tastenanschläge im Büro live zu zählen.

Herausforderungen & Lösungen

Generell

Als ich die Idee bei ein paar Leuten vorstellte, wurde ich schnell gefragt: "Aha und das zeichnet dann auch auf, was ich tippe, oder wie ist das?" Ich merkte, dass ich diese Befürchtungen schnell entschärfen musste.

Ich lasse also einen unabhängigen Dritten, der besonders kritisch ist, den kompletten Quellcode prüfen und bestätigen, dass dieser ausschließlich die Tastenanschläge zählt - nicht mehr und nicht weniger. Dafür habe ich mich an den internen IT-Manager gewandt und mit seinem "OK" waren die Datenschutzbedenken aus dem Weg geräumt.

Client-Software

Eine große Herausforderung bestand darin, dass die Technik einfach funktionieren musste, damit die Einstiegshürde für meine Kolleg:innen, bei dem Projekt mitzumachen und sich die notwendige Client-Software zu installieren, möglichst niedrig war.

Installationsassistenten für MacOS und Windows

Client-Software als Hintergrund-Dienst, der sich selbst startet und neustartet, falls er abstürzt.

Außerdem musste das Client-Programm natürlich sehr performant sein, damit es möglichst wenige Ressourcen verbraucht und die Arbeitscomputer der Leute nicht langsamer machte. Ach und sie musste sowohl auf MacOS als auch Windows funktionieren.

Programmierung in C++. Vor allem um unnötigen Overhead zu vermeiden und alles so schlank wie möglich aufbauen zu können.

Server-Software

Jeder Mitarbeiter soll jederzeit live die Tastenanschläge ansehen können.

Node-Server, der eine Websocket-Verbindung anbietet und gleichzeitig ein simples HTML-Frontend, das man im Browser aufrufen kann.

Wenn der Server aufgrund von Updates oder Ausfällen neu gestartet werden muss, sollte er den aktuellen Stand der Tastenanschläge dauerhaft in einer Datenbank speichern.
Außerdem war es wichtig, dass er auch mit sehr vielen eingehenden Tastenanschlägen zurecht kommt, was bei einem 60-köpfigen Team, das im Dauerakkord auf Tastaturen einhämmert, durchaus passieren kann.

Festgelegter Speicherintervall in die Datenbank, Zwischenspeicherung in RAM.

Das Ergebnis

Insgesamt hat es ein paar Tekki-Time-Nächte gedauert, aber schlussendlich war die erste Version doch schon nach verhältnismäßig kurzer Zeit fertig. Zum ersten Mal hatte ich einen produktiv einsetzbaren Node-Server und eine plattformübergreifende Client-Software in C++ programmiert, die im späteren Einsatz tatsächlich sehr zuverlässig funktionierten.
Im folgenden Video stelle ich die erste Version des Keystroke-Counter 3000 vor. Es war bereits 01:39 Uhr, also sehen Sie mir die vielen "äh" und langsame Sprechgeschwindigkeit bitte nach. :) Ich habe hier auch ganz ungefiltert im Tekki-Jargon gesprochen und benutze viele Fremdwörter. Wenn Sie das Ergebnis nur in Aktion sehen möchten, springen Sie einfach zu 04:35.
Der Raketenwerfer war ein lustiges Extra, auf das ich in dieser Nacht noch Lust hatte. Tatsächlich kam er dann später nicht zum Einsatz, um das Augenlicht und Stresslevel meiner Kolleg:innen zu schonen.

In diesem Video stelle ich die erste Version des Keystroke-Counter 3000 vor.

Ab in die Praxis!

Die erste Version war fertig und ich verteilte die Client-Software im Team.

Die interne Webseite über die man die Tastenanschläge live sehen konnte, sah übrigens ganz einfach aus:

Wie Sie vielleicht sehen, wurde die Anzahl der Tastenanschläge auch direkt in andere Zahlen umgerechnet. Da wir Erklärfilme und WBTs erstellten, waren für uns Sprechtextminuten und WBT-Folien interessant, aber auch generelle Dinge wie die Antwort auf die Frage: "Wie viele Romane könnten wir mit unseren Tastenanschlägen mittlerweile füllen?".

Fazit

Dieses kleine Projekt hat mir richtig Spaß gemacht! Von der Idee bis zum Ergebnis habe ich einiges Neues gelernt - in diesem Fall vor allem viel über die Entwicklung nativer Programme mit C++.
Für mich ist es immer wieder extrem befriedigend, etwas zu programmieren, weil es so enorm kreativ ist und man gleichzeitig etwas erschafft, das danach Herausforderungen löst. Ich mag elegante, minimalistische Lösungen und der Keystroke-Counter ist ein gutes Beispiel dafür.

Los geht's!

Fragen kostet nichts

Alles beginnt mit einer ersten Nachricht, einem ersten Treffen und gemeinsam entstehen tolle Erfolgsgeschichten daraus.

Ich schreibe dir jetzt einfach mal