Zeiterfassung: Ein schweres Thema für jeden Arbeitnehmer und Arbeitgeber

Seit meiner Arbeit bei einer Agentur in Esslingen als technischer Leiter weiß ich, dass mit das Wichtigste in jeder Art von Arbeitnehmer / Arbeitgeber Beziehung die Arbeitszeit ist. Egal ob man jetzt daran interessiert ist was am Ende auf der Rechnung steht oder nur Prozesse optimieren möchte, die Arbeitszeit für verschiedene Aufgaben, Tätigkeiten, Projekte oder Kunden ist essentiell. Es gibt eine ganze Menge an Lösungen die uns dabei helfen können und ich möchte einmal kurz auflisten welche Features in meinen Augen wichtig sind, und welche Tools ich derzeit kenne.

Wichtige Funktionen

Einfache Zeiterfassung

Ja ne ist klar. Ein Zeiterfassungstool sollte schon in der Lage sein die Zeit zu erfassen, das als Anforderung hier aufzulisten ist also totaler Humbug… Nein ist es nicht. Ich kenne wirklich viele Lösungen und ich halte viele davon einfach für viel zu Komplex. Entweder man muss erst umständlich Kunden, Projekte und Aufgaben anlegen oder auswählen bevor man los legen kann oder man kann eine Tätigkeit nicht ohne Ticket durchführen. In der Theorie ist das wirklich schön, aber es gibt immer wieder diese Anrufe mit „Kannst du mal eben“, bei denen man dem Kunden am Telefon nicht sagen kann: „Moment, ich lege kurz ein Ticket an und dann schau ich mir an, warum Ihr Projekt grade nicht funktioniert“. Auch ein notieren der Startzeit hat hier keine großen Chancen, entweder man vergisst die Endzeit aufzuschreiben, notiert sich nicht um welchen Kunden es ging, oder der Zettel wird am nächsten Morgen als „Müll“ von der Putzfrau beseitigt. In all diesen Fällen hat man damit für Lau gearbeitet und das darf nicht entstehen.

Ich werde mich hier glaube ich mal mit meiner Freundin Ina und den Jungs von Better Talk über UI und UX unterhalten, damit wir etwas richtig gutes und solides auf die Beine stellen. Es muss schnell, intuitiv aber schnell Konfigurierbar sein.

Schöne Hierarchie und Vererbung

In meinen Augen sollte der Aufbau für eine Zeiterfassung so aussehen:

  • Kunde
    • Projekt
      • Ticket
        • Tätigkeit

Tätigkeiten müssen auch irgendwo gepflegt werden, in meiner Hierarchievorstellung ist eine Tätigkeit entweder global, an einen Kunden gebunden, an ein Projekt gebunden oder an einen Benutzer gebunden. An Tätigkeiten könnte man Kommentare und / oder Stundenpreise hängen.

So etwas muss zum Einen sehr einfach und übersichtlich sein, des Weiteren sollte man in der Lage sein einen komplexen Aufbau zu ermöglichen.

Teamverwaltung

Das ist nur ein ganz kleiner Punkt, aber er fällt mir halt direkt auf, weil ich beim schauen was es alles so gibt immer wieder Produkte gefunden habe, die nur für den gebrauch an einem Handy oder einem Rechner gedacht waren, aber nicht für Teams. Die Arbeitszeiten, die ich hinterlege sind nicht nur für eine Person, sondern sollen natürlich die Arbeit des ganzen Teams widerspiegeln.

LDAP

Eine ganze Menge an Menschen nutzen verschiedene Arten der Nutzerverwaltung, mittlerweile setzt sich auch Atlassian immer mehr durch, aber in meinen Augen gibt es derzeit nur 2 solide Lösungen für Benutzerverzeichnisse, die wirklich weitreichend eingebaut werden können:

  1. LDAP
  2. Active Directory

Und da wir in der OpenSource Welt sind würde ich sagen braucht man LDAP. Sonst muss man wohl möglich jeden Nutzer mit Projekt und Rechten händisch in jeder Anwendung einstellen, das ist viel zu viel Arbeit.

2-Faktor Login

In Zeiten in denen Passworte alleine Unsicher sind sollte man einen zweiten Faktor haben. Ob Yubikeys oder Google Authenticator ist dabei egal, nur irgendetwas, damit niemand die Kunden- oder Projektliste einsehen kann.

Externe API zum Pullen und Pushen

Es gibt verschieden Anwendungsszenarien in denen es einfach extrem praktisch ist mit einer API Kommunizieren zu können. Der erste Grund ist, dass ohne die APIs die ganzen APP Gedanken nicht funktionieren. Egal ob die App auf dem Desktop oder auf dem Mobilgerät ohne API ist die Zeiterfassung an ihren Ort gebunden.

Ich habe ein paar Ideen im Kopf wo eine API ( egal in welche Richtung ) sehr nützlich wäre, daher hätte ich das auch gerne als Anforderung. Ich werde mal ein paar Beispiele geben:

  • In Slack / Mattermost schreiben „/time start meinKunde meinKommentar“ und schon wird die aktuelle Aufgabe beendet und eine neue gestartet.
  • Nach dem Erfassen einer Zeit automatisch die erfasste Zeit im Rechnungstool vorfinden
  • Dem Projektmanagement schnell eine Auswertung geben, welche Aufgaben wie weit im Zeitplan sind.
  • Massenbearbeitung über externe Tools ( Typo3 zu TYPO3 ersetzen bevor die Zeitliste zum Kunden geht, oÄ )
  • Einen Git-Push automatisch verarbeiten und Auswerten und die Zeiten die im Push stehen einbinden

Exportfähigkeit

Obwohl man mit einer API eine schnelle Möglichkeit hat die Daten in jedes Format und in jede Auswertung zu extrahieren erwarte ich einfach von einem solchen Werkzeug, dass ich mir auch einfach einen Export als CSV Datei machen kann um schnell in Excel ein paar Filter und Summen zu setzen. Zugegeben ist das keine Anforderung die ich wirklich habe, aber ich habe mehrfach die Erfahrung gehabt, dass Kunden und Chefs solche CSV Dateien sehr zu schätzen wissen, daher sollte so etwas simples auch eingebaut sein.

Rechte und mehr User

Das sind jetzt gleich zwei Punkte.

Ersten sollten alle Projekte für Nutzer freischaltbar oder Blockbar sein. Gerne darf das auch über Gruppen funktionieren, aber auf jeden Fall möchte ich nicht, dass der Praktikant für Projekt A sich alle Arbeitszeiten zu Projekt B anschauen kann. Hingegen soll der Aufsichtsrat Herr Müller in der Lage sein in alle Projekte zu schauen.

Zweitens ist es mir wichtig, dass ich nicht, wenn ich einen weiteren Nutzer hinzufüge,dazu gezwungen bin mir Gedanken über neue Kosten Gedanken zu machen. Alle Nutzer müssen einen Preis kosten, dann ist die Software auch gut nutzbar.

Statusvergabe

Um einem Kunden nicht mehrfach dieselbe Tätigkeit in Rechnung zu stellen oder zu vergessen eine Rechnung über einen Prozess zu stellen sollte man in der Lage sein eine erfasste Zeit mit Tags zu versehen. „In Rechnung“ oder „Bezahlt“ wären zum Beispiel wichtige Dinge. Oder auch „Dienstleistungsvertrag“ um einfach nur die Zeit zu erfassen, dieses aber nicht in der Rechnung auftauchen zu lassen. Solche Statusfelder sind in meinen Augen sehr wichtig.

Beim erneuten Lesen bin ich mir nicht Sicher ob der Begriff „Status“ hier der richtige ist. Ich denke nicht an ein statisches Dropdown, sondern eher an eine Art Tag mit AutoComplete, damit man eben auch schnell weitere Werte anfügen kann. Zum Beispiel wäre auch „Überzogen“ oder „InTime“ für manche Projekte wichtig.

Manueller Override

Ganz wichtig ist, dass der Kunde nicht automatisch eine Rechnung erhält. Gehen wir mal davon aus, wir haben einen Laden, der unser Kunde ist. Dieser Laden hat ein Festpreisangebot erhalten, wenn ich nun auf Grund von falscher Herangehensweise nicht die geplanten 4 Stunden benötige, sondern 6, dann kann ich nicht automatisch eine 6 Stunden Rechnung schreiben. Das muss also immer noch manuell noch veränderbar sein.

Mögliche Lösungen

Gut, jetzt kennen wir, einige Anforderungen. Der Markt für Werkzeuge die man zum Arbeiten benutzen kann ist groß, also wird es die richtige Lösung für mich wohl schon geben.

Redmine

Das Projektverwaltungstool Redmine kommt von Haus aus nicht wirklich mit einer Zeiterfassung aus. Um eine solide Zeiterfassung zu integrieren muss man das Plugin „TimeTracking“ installieren. Jetzt kann man, wenn man das Projekt konfiguriert hat, in jedem Ticket beim Status Update oder auch einzeln Zeiten erfassen und mit Kommentaren versehen. Die Zeiterfassung ist „frickelig“, manchmal ist 00:15 eine Viertelstunde, an anderen Stellen muss man aber zwingend 0,25 Stunden angeben. Ich hätte gerne eine einheitliche Eingabe oder eine Eingabe, die erkennt welchen Typen ich grade eingebe und automatisch in das entsprechende Zielformat umrechnet.

Das Ganze hat dann auch noch den massiven Nachteil, dass es zum Einen absolut nicht schnell zu bedienen ist und zum Anderen die möglichen Exporte sowie die Möglichkeit etwas als „Bezahlt“ oder zumindest als „In Rechnung gestellt“ zu markieren nicht ohne weiteres möglich sind. Man gibt also einen Kommentar zu einem Projekt ab und muss dann zwingend sagen, was genau man in der Arbeitszeit gemacht hat, das ist doppelte Arbeit und zudem sehr unübersichtlich.

Jira

Über das wohl meistbenutzte Projektmanagement Tool der Welt brauche ich gar nicht so viel schreiben. Es ist absolut Solide, hat eine geniale API und kann auch alle andere was ich möchte von Hause aus oder mit einem preiswerten Plugin umsetzen. Es ist selfhosted und läuft sehr stabile, ABER: Ich kann nicht mal eben eine Zeit erfassen und anschließend jemandem zuweisen. Das ist auch nicht die Aufgabe eines Projektmanagement Tools, sondern einer Zeiterfassung. Für die Zeiterfassung muss alles ticketiert sein und es gibt hier einen Kostenfaktor, der mich stört. Habe ich einen Freelancer für ein Projekt dazu geholt muss ich seine Zeiten händisch als Text Pflegen oder ihm einen Account erstellen. Bei den Preisen die Jira im Jahr kostet ist es aber immer überlegenswert ob man diesen Schritt wirklich gehen möchte, denn schon der 11. Benutzer erhöht die Kosten von 10€ auf 1200€. Also besser keine Externen Leute in unser Jira gucken lassen, da reichen auch interne.

Fazit: Zu teuer und zu starr.

Mite

Ich kenne wirklich viele zufriedene Kunden von Sebastian und Julia und das Tool ist Grundlegend auch ein tolles Werkzeug, hat aber wiedermal einige Nachteile.

Anfangen möchte ich aber mal mit den Vorzügen, für 5€ pro Person pro Monat kann man hier sehr schnell und einfach mit einer soliden API und diversen Clients seine Zeiterfassung durchführen. Das Projekt ist nicht hübsch, aber absolut intuitiv und die Auswertungen und Exporte sind solide und für jede Rechnung absolut das Richtige. Eigentlich wäre es genau mein Tool, aber…

  1. 10€ im Monat nur für eine Zeiterfassung? Wir sind ja 2 im Unternehmen, das sind 120€ im Jahr und damit eine ganze Menge Geld. Klingt nach Mikromanagement, aber mal im Vergleich bekomme ich für um die 20€ im Monat Adobe Produkte. Wenn also meine Zeiterfassung ein viertel der Adobe Produkte kosten sind die dann so anpassbar wie ich das möchte, oder können die einfach so viel?
  2. Ich habe keine Kontrolle über die Daten. Ich liebe Datenschutz, setze SSL überall ein wo ich es kann und habe selbst PGP und S/Mime verschlüsselte Emails im Einsatz, aber die Liste meiner Kunden und Projekte gebe ich nun einer Firma in Berlin und bezahle dafür…
  3. Ich kann es nicht erweitern. Dadurch, dass der Code nicht bei liegt kann ich auch nicht „mal eben“ ein Feld hinzufügen wo ich es grade brauche, das Firmenbrand so umsetzen wie ich das möchte oder in der Datenbank Bulkaufgaben durchführen, wenn ein Mitarbeiter irgendetwas falsch gepflegt hat…
  4. Es unterstützt kein LDAP.

Alles keine großen Punkte, aber Grund genug, dass es meine Anforderungen nicht erfüllt.

Kimai

Das OpenSource Tool Kimai macht nichts anderes als Zeiten zu erfassen und das tut es grundlegend auch gut. Abgesehen von ein paar Bugs und ein paar meiner Wünsche wäre Kimai das Tool mit dem ich wirklich arbeiten würde, aber es ist einfach nicht Flexibel genug und auf Grund fehlender APIs gibt es auch keine Clients, die man mal eben auf dem Tablet starten könnte.

Zudem ist Quelltext und JavaScript Programmierung nicht mehr Zeitgemäß und sollte zwingend überholt werden. Aber wie bei vielen (vermutlich) Hobby Open Source Projekten wäre das ein komplettes Redesign und würde zu viel Zeit schlucken.

Für jemanden der nicht anfangen möchte alles selbst zu schreiben und der nur ein kleines Budget hat halte ich Kimai für die richtige Wahl. Aber vielleicht sollte man sich einen alternativen Skin basteln.

Fazit

Es sieht so aus, als gäbe es das Tool für mich hier nicht, also muss ich wohl in meiner Freizeit dran und selbst etwas schreiben. Das ganze Projekt erhält von mir jetzt erstmal den Projektnamen #PottTracker und wird ein Symfony2 PHP Projekt mit ’ner fetten Restschnittstelle. Als Autorisierung habe ich an OAUTH gedacht, bleibt die Frage welche Frontends es geben wird. Und da brauche ich wohl Hilfe, denn ich hätte gerne, dass es zum einen eine Responsive Webseite auf Basis von Angular JS, als auch eine native OsX App und eine Mobile App. Vielleicht kann ich da mit den AppPilots reden, mit denen ich aus dem Studium noch befreundet bin. Vielleicht könnte das ein cooles Prestigeprojekt werden.

Auf Grund der offline Apps gibt es übrigens noch eine wichtige Anforderung: Offline Sync — Und das wird glaube ich Arbeit…

 

PS: Wer Lust hat mich bei dem Projekt wie auch immer zu unterstützten ( z.B. Werbung, Budget oder Manpower ), Vorschläge hat welches Tool ich mir noch ansehen sollte oder das Tool einsetzen möchte kann mir gerne eine Email an meine Firmenadresse bastian@agentur-pottkinder.de senden.

Hey, ich bin Bastian, ein Netzzombie vor dem Herrn. Gemeinsam mit meiner Freundin habe ich 2015 eine Medienagentur mit Schwerpunkt TYPO3 und Hosting gegründet, aber in meiner Freizeit kümmere ich mich um die wirklich wichtigen Dinge: Whiskey, Hörspiele, Comics und Rollenspiel! Das sind meine Laster. Nur nicht in der Reihenfolge...

2 Comments

  1. 21. Mai 2016 - 6:46
    Reply

    Für die einfache, schnelle Zeiterfassung zwischendurch: toggl.com

  2. 21. Mai 2016 - 10:41
    Reply

    Das sieht gut aus, aber die Preispolitik von denen ist ab 5 Personen auch relativ hoch und dann hat man noch das Problem, dass die Daten im Zweifelsfall immer noch nicht bei dir ist, oder?

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

top