Konzepte

Real Life Task‑ und Time-Planer

13. February 2007

allein den Namen find ich schon erstklassig :) und erinnert mich an Fugengrau und Superkleber.

So why doesn’t anybody make a schedule? Two key reasons. One, it’s a real pain. Two, nobody believes that it’s worth anything. Why go to all the trouble working on a schedule if it’s not going to be right? There is a perception that schedules are consistently wrong, and only get worse as time goes on, so why suffer for naught?

die grundproblematik:

1) tasks/projekte werden nicht geplant
2) wenn sie geplant werden, werden sie falsch geplant (aufgaben vergessen, zeiten falsch geschätzt, overhead mit hilfe ms project, sap produziert)
3) wenn sie halbwegs ordentlich geplant werden/sind, sind änderungen (wir erinnern uns an das teufels quadrat) schlecht abbildbar und vorallem kommunizierbar
4) auch bei einer ordentlichen und aktuellen planung, hab ich immer noch das problem dass der status nicht gepflegt wird.
5) planung, nachvollziehbarkeit und steuerung verursacht einen erheblichen mehraufwand

Was dabei sehr interessant ist, dass die Problematik viele Verantwortliche (und vorallem Informatiker) sehr ähnlich wahrnehmen, wie z.B. http://www.joelonsoftware.com/articles/fog0000000245.html, was zu 80 % meinen Überlegungen entspricht.

Mein lösungsansatz:

Zunächst einmal muss ich gestehen, dass mein Lösungsansatz zunächst nur das Teilproblem der Aufgabenverwaltung aufgreift. Allerdings ist es bewusst so gewählt dass man das Konzept zu einem späteren Zeitpunkt “aufbohren” kann – will heissen ob der PL die Planung für ein grösseres Projekt mit ms project macht oder doch lieber Visio oder einfache Text‑ und Tabellendokumente benutzt, überlasse ich jedem selbst. Die Aufgabenverwaltung/Terminplanung kann natürlich später auch im Lieblingstool der Wahl erfolgen, Outlook, Thunderbird etc. (das Zauberwort heisst API und Middleware-Funktionen)

So genug Lala, um was gehts eigentlich?

Ein Modell schaffen, dass die realen Gegebenheiten in realen (kleinen und mittleren) Unternehmen sinnvoll abbildet – und nicht die DIN-Norm für Projekt‑ und Arbeitsorganisation! und gleichzeitig die einfache Selbstorganisation fördert um Overhead zu minimieren.

Das führt dazu, dass ich einigen “unsauberen” Annahmen ausgehe.

– MA haben Linienarbeit und mehrere Projekte parallel
 – Der Arbeitsfluß wird öfters von “Notfällen” unterbrochen
 – Ein erheblicher Teil der Planung bzw. der Steuerung erfolgt on-the-fly, d.h. Features werden gekürzt um Termine einzuhalten oder “unglaublich wichtige” Features, die erst später im Projektverlauf dazu kommen, müssen vor dem Release noch rein.
 – das System wird überhaupt nur genutzt wenn es nicht als 5 Minuten Zeit am Tag kostet und einfach ist
– das Arbeitsverhalten entspricht am ehesten dem Abarbeiten einer Queue
 – Korrekturen Aufwandschätzung finden nicht Top-Down sondern Bottom-UP statt (der Bearbeiter erkennt das Ausmaß/Verzögerung als erstes)

Die Grundanforderungen an eine Lösung die sich daraus meiner Meinung ergeben …

– KISS
für den User
kein zusätzlicher Login notwendig, Kombination von Desktop‑ und Web-Technologie, kleine aber stressfreie Reminder (für das Timetracking), auf wenige Klicks optimiert, automatische Emails (auch hier wieder ohne zu nerven, also zb nur einmal am Tag oder sogar nur einmal pro Woche), doppelte Dateneingabe vermeiden (Taskliste im Client kommt aus der DB)

– KIESS (keep it extreme simple and stupid)
für den Kunden
Gehen wir davon aus, dass Kunden meistens extrem doof sind. Viel mehr als Email und Telefon können sie nicht benutzen, schon gar nicht ist die Erstellung von strukturierten Dokumenten, Vorgaben und Konzepten durch den Kunden möglich.

Zusätzlich haben Kunden das talent vollkommen unnötig zu nerven, z.B. durch Anrufe alle paar Stunden, wie lange es noch dauert oder warum dieses oder jenes “auf einmal” länger dauert.

Das führt zu folgenden “Funktionalitäten” für den Kunden

Der Kunde muss das System selbst per Email (und Telefon) füttern können.
Der Kunde braucht zeitnah eine Rückmeldung über Dauer (und/oder Kosten) und erwarteter Zeitpunkt der Fertigstellung.
→ grössere Aufgabe muss in Pool gestellt werden zur Aufwandsschätzubg
→ Wenn geschätzt und in Queue sortiert, Email raus mit Aufwand und wo es derzeit in die Queue steht

Automatische Statusmails
jede Woche (evtl auch jeden Tag) geht eine Mail raus, was ist in der letzten Zeitperiode gelaufen und was ist für die nächste Periode geplant

bei Änderungen vom Kunden
→ Funktionalität wird vom Kunden geändert, Email mit Auswirkungs-Warnung wird versendet (”Achtung dadurch ändert sich Termin/Zeit/Kosten/Qualitätsziel”). Evtl sollte man den Kunden das bestätigen lassen oder selbst festlegen lassen welche Ecke er anfassen will ;)

bei Verzug
→ Entwickler stellt eine neue “erwartete Dauer der Fertigstellung” fest, der Auftraggeber bzw. PL muss informiert werden.

Der Auftraggeber wird direkt eingebunden
kann die Reihenfolge/Priorisierung selbst ändern oder “Vorschläge machen”

Sonstige Feature Ideen

neben linienarbeit führen wir noch abwesenheitszeit ein … urlaub/krankheit

pro ma gibts einen ratio von planbarer zeit (80⁄20, 60⁄40) und definierbare wochenarbeitsstundenzeit

evtl. verbesserungen …
automatische subtasks für bestimmte arten von tasks
wenn ich einen task (neues feature anlege) wird auto

Ganz wichtig dürfte die Möglichkeit sein Vorgänge anzulegen, d.h. innerhalb der Linienarbeit ein Mini-Projekt, Prozess mit dynamischen oder festen Workflow oder Subtasks zu einem Task definieren zu können (auch innerhalb der Linie).

Beispiel: VServer Laura kündigen, als ich die Aufgabe angehe, stelle ich fest, dass wir ja den DNS Kram und Monitoring noch brauchen, aber wohin damit? Also brauchen wir noch einen neuen VServer auf Angelina. Ja wenn der DNS eh schon fertig ist, dann bitte schön auch richtig und nicht nur die üblichen 90 % und dann nutzen wir das Teil auch endlich mal. Hm, dass muss ich dann noch die ganzen Sachen von Euhost abziehen.

Aus der usprünglichen Aufgabe sind 6 Miniaufgabe geworden, die eigentlich auch von unten nach oben abgearbeitet werden müssen/sollen.

billige Hochverfügbarkeitslösung für Webserver

1. December 2006

Heute auch wieder einen Lösungsansatz für ein langbearbeitetes Problem gefunden. Ein günstiges Failover System für Webserver ohne die obligatorische DNS Problematik.

Der Schlüssel liegt in einem Redirect auf den DNS Servern, der je nach Verfügbarkeit der Webserver ausgeführt wird.

Ole’s Gedanken zum Thema Information

29. November 2006

sehr lange beschäftige ich mich mit dem Thema, wie man Informationen sinnvoll verteilt, aufbereitet, strukturiert und letztendlich effektiv nutzbar macht. Neben unglaublich viel Information selbst, hat das Web hunderte Verfahren zum Aufbereiten von Informationen hervor gebracht, CMS (Websites), Blogs, Foren, soziale Netzwerke, Tagging, die letzten Anfragen, die meisten Klicks, “Kunden, die diesen Artikel gekauft haben”, Bookmark Sharing, RSS, Page Rank, Sitemaps, Userbewertungen, spezialisierte Datenbanken, ASP-Services wie Groupware oder writely usw.

Alle haben Vor‑ und Nachteile und sind mehr oder weniger für verschiedene Anwendungszwecke geeignet. Aber meiner Meinung nach ist fast alles was man so findet (und frei nutzen kann) ineffektiv und auch nicht mal ansatzweise intelligent. *ich denke wieder mit Wehmut an unser revolutionäres migno zurück*

Ausnahmen die mir spontan einfallen sind kleine Tools wie Mindmeld (was ich aber noch nie wirklich produktiv eingesetzt habe), viele Sachen die Google bereits auf die Beine gestellt hat, die Technologie von Akamai und Autonomy dann wird’s aber auch schon schnell sehr, sehr düster.

Strukturierung hat, gerade wenn man Bücher betrachtet, einen unschätzbaren Wert z.B. wenn man Wissen zu einem Thema erwerben möchte (Tutorial), aber z.B. bei Email macht Tagging viel mehr Sinn (was außer meinem heiß erwarteten Chandler noch kein Programm begriffen hat), in Boards/Usenet lassen sich sehr gut Probleme lösen, nur das Finden von (anderen) Lösungen geht meist nicht ohne dass man ⅔ des Threads liest, eine Volltextsuche findet die Roh-Informationen, ist aber nicht in der Lage Beziehungen aufzubereiten oder Struktur zu schaffen.

Dabei hab ich heute bei dem Problem endlich einen Fortschritt erzielt … und zu meiner Überraschung ist das grundsätzliche Konzept erschreckend simpel.

Die Rohdaten (was auch immer, die im Speziellen seien) versieht man mit Tagging (in erster Linie für Clustering und Views), gebe Ihnen einen Timestamp (erstellt, geändert am) um die chronologische Abfolge sehen zu können, stecke sie in ein oder mehrere (mehr oder weniger) feste Strukturen (n:m Verknüpfung mit hierarchischen Strukturen), schaffe die Möglichkeit zur intelligenten Verlinkung zur Vernetzung der Daten (siehe Migno), Datentyp (oder aber auch Tag‑) spezifische zusätzliche Felder (eine Email, die ich in eine Todo umwandle, bekommt eine Fälligkeitsdatum und eine Priorität)

Das Ganze versehe man mit einer API damit man auch anwendungsübergreifend was mit den Daten anfangen kann und auch ein paar rudimentären Funktionen zur Benachrichtigung (Push Verfahren, evtl. auch Events).

Unter zu guter letzt erstelle man eine Suchfunktion, die lernfähig alla Mindmeld ist und in der Lage ist die Informationen inkl. der Zusatzinformationen (benutzerdefiniert) darzustellen.

Aber werden wir wohl erst mit Web 7.0 erleben oder ich 200 gute Programmierer 3 Jahre zur freien Verfügung bekomme ;) mal unseren lieben Timo fragen, was wir nächstes Jahr für ein Budget für Spaßprojekte haben ;)