Category Archives: IT project management

IT project management

Checklist Softwareauswahl

Knappe eineinhalb Jahre vor Inbetriebnahme des Campus WU werden aktuell zahlreiche Softwareprodukte unterschiedlicher Größe beschafft. Software ist durch ihre nicht überschaubaren Anwendungsmöglichkeiten komplex, die Auswahl des richtigen Produkts daher keine triviale Aufgabe.

Im Zuge der Beschaffung eines Geoinformationssystems (GIS) fand allerdings ein Bilderbuchbeispiel für einen strukturierten Entscheidungsprozess seinen Weg bis zur Vertragsunterzeichnung; ein Beispiel, das ich in abstrakter Form hier gerne teile.

Ausgangspunkt

Wir kaufen also Unternehmens-Software: Diese ist im Jahr 2012 beinahe immer webbasiert, oder zumindest in einer three tier architecture umgesetzt. Das Unternehmen möchte die Gesamtkosten (total cost of ownership) minimieren, dabei aber dennoch eine ausreichend gute Software einführen.

Im Studium lernte ich die Nutzwertanalyse als Werkzeug bei derartigen Entscheidungsprozessen kennen. Als ich sie vor Jahren zum ersten Mal anwenden wollte, erlebte ich allerdings zahlreiche Probleme: Die Punktevergabe samt Gewichtung gaukelt ein genaueres, transparenteres Ergebnis vor, als es tatsächlich ist. Gewichtungen werden oft auch noch nachträglich verändert. Die Betriebswirtschaftslehre nennt das Sensitivitätsanalyse, in der Praxis ist das eher ein Hintricksen zum gewünschten Ergebnis.

Was ich an Methoden agilen Projektmanagements mag, ist weniger die Fähigkeit, Prozesse vielleicht besser steuern zu können, sondern die im Lieferumfang enthaltene Transparenz mit der Unsicherheit und Ungenauigkeit nach außen hin als solche deklariert werden.

Soll heißen: Ich präsentiere hier eine absichtlich zur Checklist verkommene Nutzwertanalyse, weil jedes mehr an Datenpunkten, lediglich mehr Zahlenspiel als sinnvolle Entscheidungsgrundlage bedeutet. Anstatt Punkten und Gewichtungen treten nur noch drei Zustände: KO, entscheidend, relevant. Während KO als Filter zu sehen ist, sind die beiden letzteren rein qualitative Aussagen: “Dieses Kriterium ist entscheidend und Anbieter A ist da wohl ein wenig besser” – mehr ist nicht möglich.

Nutzwertanalyse “light”

Zuerst zur Software selbst
  1. Erfüllt die Software alle meine mir jetzt bekannten Anforderungen? Gibt es zumutbare Workarounds für fehlende Anforderungen?
    (KO-Kriterium)
  2. Kann die Software deutlich mehr, als ich es will? Paradox: Je mehr unnötige Funktionalität geboten wird, desto schlechter!
    (siehe: Complexity kills!, entscheidend)
  3. Können alle künftigen Endanwender den Client verwenden oder gibt es Einschränkungen bei Browserversionen und/oder Betriebssystemen? Gilt dies auch noch künftig in meinem Unternehmen?
    (KO-Kriterium)
  4. Falls ein mobiles Szenario existiert: Ist der Service mobil nutzbar?
    (relevant)
  5. Ist eine zentrale Authentisierung (Login mit unternehmensweitem Passwort) möglich?
    (KO-Kriterium)
  6. Ist eine zentrale Autorisierung (Übernahme zentral gepflegter Berechtigungen) möglich?
    (relevant)
  7. Falls ein älteres System abgelöst wird: Können Daten übernommen werden?
    (entscheidend)
  8. Wie schätze ich die wirtschaftliche Situation des Anbieters ein? Wird es ihn in fünf Jahren noch geben? Ist sein angebotenes Produkt für ihn selbst wichtig oder wird mir ein Auslaufmodell angeboten? (Product Roadmap) Wie stark ist letztlich meine Abhängigkeit?
    (entscheidend)
    ODER
    Handelt es sich um Open-Source Software? Gibt es andere Anbieter, die auf Basis dieser Software Dienstleistungen anbieten?
    (relevant. Das bedeutet, dass dieser Punkt im Falle von OSS weniger Tragweite erhält.)
  9. Liegen die Daten in einem lesbaren Format vor, oder sind sie im System des Anbieters gefangen?
    (entscheidend)
  10. Kann ich das System (notfalls) selbst administrieren? Gibt es ausreichend Angebote für Dienstleistungen (Beratung, Support, Administration), wenn möglich auch von anderen Anbietern?
    (entscheidend)
  11. Gibt es Referenzen? Habe ich Erfahrung von anderen Installationen des Anbieters in meiner Branche? Welches Feedback ergibt eine Netz-Recherche?
    (relevant)
  12. Was sagen meine Endanwender? Hat Ihnen die Produktpräsentation gefallen? Gefällt ihnen die Software?
    (arrogant, aber: beinahe irrelevant)
  13. Bietet das System offene Schnittstellen für Daten und/oder Automatisierung?
    (entscheidend)
  14. Erfüllt das System meine Sicherheitsanforderungen hinsichtlich Architektur, Datenhaltung, Verschlüsselung, usw.? Ist das Angebot “in der Cloud” bzw. gebe ich unternehmenskritische oder datenschutzrechtlich sensible Daten in fremde Hände?
    (KO-Kriterium)
  15. Darf ich das System in dieser Form einsetzen, oder spricht geltendes Datenschutz-Recht dagegen? Besitze ich eine Meldung beim DVR oder ist gar mit einer Ablehnung zu rechnen?
    (realistischerweise lediglich relevant)
  16. Passt die vom Anbieter vorgeschlagene Vorgehensweise bei der Einführung zu Kultur und Ressourcen meines Unternehmens? Sind etwa Schulungen zeitlich möglich? Wissen alle Stakeholder überhaupt von ihren künftigen Rollen?
    (relevant)

Man sieht, in meiner Auflistung fehlen zentrale Punkte, die normalerweise (stärker) repräsentiert sind. Dazu zählen etwa die Zufriedenheit der Nutzer oder die technische Ausgereiftheit des Produkts.

Bei einer Produktpräsentation etwa bewerten Endanwender eher die sympathische Art des Beraters, nicht aber das Produkt selbst. Bewerten sie in Ausnahmesituationen doch die Software anstatt der Powerpoint-Präsentation, lassen sie sich vom GUI blenden und schaffen es de facto nie, das Gezeigte zu abstrahieren und in ihre Arbeitswelt zu überführen.

Doch auch IT-Spezialisten sind schlecht im Bewerten: In zehn Jahren IT habe ich festgestellt, dass in Systeme nicht hineingesehen werden kann. Die traurige Nachricht lautet, dass man alle Probleme am eigenen Leib erleben wird, bevor man sie mühsam lösen muss. Dabei gibt es kaum Unterschiede zwischen Open Source und kommerzieller Software: Bei ersterer ist tendenziell mehr Expertenwissen bei der Problemlösung vonnöten – bei höheren Erfolgsaussichten -, bei zweiterer sind zeitlicher Aufwand (Support-Hotline!) und monetärer Einsatz (Beratertage) weitaus größer.

Den Reifegrad einer Software anhand des Namedroppings von Programmiersprachen, Protokollen, Datenbanksystemen, Dateiformaten, usw. feststellen zu wollen, ist blanker Unsinn. Verwendete Technologie und Qualität korrelieren äußerst schwach. Die Eckpunkte von Softwarequalität lauten Entwicklungsprozess, automatisiertes Testen, Sourcecodemanagement, Erfahrung & Motivation, … – alles Dinge, die von außen gänzlich unsichtbar sind.

… und dann das Geld

Nun zu den Kosten: Diese sind bei Hardware und Lizenzen zwar noch vergleichbar, aber oft stellen Schulungen, Beratungsleistungen, Support u.ä. ein großes Problem dar. Veranschlagt ein Anbieter etwa das Doppelte für Beratungsleistung, kann es gleich mehrere Gründe dafür geben: Das System ist schwieriger einzuführen, die Berater sind teurer, der Anbieter ist vorsichtiger bezüglich des Projektfortschritts, usw.

Ein möglicher Ausweg ist die Aufschlüsselung der Kosten in angebotene Gesamtstunden und Stundensatz. Der Median der angebotenen Stunden (über alle Angebote hinweg) ist zunächst die beste Näherung für den Aufwand. Mit dem jeweiligem Stundensatz multipliziert kommt man so zu normierten Angeboten hinsichtlich der Dienstleistungen.

Diese so errechneten (fiktiven!) Angebote sollten Basis eines Preisvergleichs sein.

Eine Pattstellung zwischen zwei Anbietern ist aufgrund der bestehenden Unsicherheit nach wie vor äußerst wahrscheinlich. Möglicher Ausweg hier: Beauftragung beider Anbieter mit einer in maximal acht Wochen durchführbaren Pilotphase bei voller Transparenz des Modus und fairen Bedingungen.

Diese Vorgehensweise stellt die beiden Anbieter in direkten Wettbewerb. Man kann davon ausgehen, dass die “Motivation” auf beiden Seiten hoch sein wird. Auch im nachfolgenden (Groß-)Projekt – wenn dann die Auswahl letztlich getroffen ist – kann das Ergebnis der Pilotphase als Qualitätsreferenz dienen. (Der Anbieter legt sich selbst eine hohe Latte.)

Während die Methode bei kleineren Beauftragungen übertrieben scheint, stellt sie bei wichtigen Projekten eine probate Möglichkeit dar, Entscheidungsunsicherheit tatsächlich zu reduzieren.

IT project management

IT trifft auf Beton!

Ich bin seit nunmehr einem knappen Jahr in das Neubauprojekt der WU Wirtschaftsuniversität Wien eingebunden. Man würde auf den ersten Blick vielleicht nicht vermuten, wieviel IT in einem modernen Gebäude steckt, aber der Campus WU ist voll davon.

Was mich im Bereich des Bau- und Einrichtungsprojekts immer wieder beeindruckt, sind Professionalität und Detailgrad der Planungen. Schon jetzt – zwei Jahre vor Montage – stehen beispielsweise Spezifikation und Position jeder einzelnen Leitung fest. In CAD-Plänen werden diese genauestens visualisiert, in zugehörigen Excel-Sheets aggregieren sich Kosten noch so kleiner Einzelteile zu einer konkreten Gesamtsumme.

Bei “meinen” Softwareprojekten ist das ganz anders, zum Beispiel: Am Campus soll es elektronische Gegensprechanlagen vor Departments und Dienstleistungseinrichtungen geben. Die grundsätzliche Anforderung, vor einer Tür stehend jemand dahinter anzurufen, klingt zunächst wenig komplex.

Bei genauerer Betrachtung ergeben sich allerdings viele Probleme im Detail, von denen ich nur ein paar aufzählen möchte:

  • Zahlreiche Eingänge liegen in Außenbereichen, wodurch die Hardware kalten Wintern, Feuchtigkeit, tief stehender Sonne und vor allem auch Vandalismus standhalten muss. Was innen vielleicht mit üblicher Hardware funktioniert, benötigt außen die “Military”-Variante mit Kosten, die drei- bis fünffach höher sind.
  • Für die Suche nach Personen werden lange Namenslisten benötigt. Spätestens seit dem iPhone will jede/r Benutzer/in nur noch mit Multitouch-Gestures scrollen. Kapazitive Touchscreens und die darunter-liegende Softwareschicht sind 2011 aber weit von Standardisierung entfernt. (emerging hardware)
  • Ein ambitionierter Wunsch nach Behindertengerechtigkeit stellt zusätzliche Anforderungen an das User Interface; Audioausgabe kann Blinden bei der Suche helfen. Rollstuhlfahrer/innen benötigen Screens weiter unten, usw. (compliance)
  • “Leute anrufen, die hinter dieser Tür sitzen” klingt trivial. Jede/r, die/der mit der Welt von Datenhaltung und Sonderfällen in Berührung ist, weiß, welche Probleme sich spätestens bei Umzügen, Einstellung externer Mitarbeiter/innen, Karenzierungen usw. ergeben. (Es ist alles sehr komplziert. Fred Sinowatz)
  • Ein zu erstellendes Sicherheitskonzept schreibt unter Umständen Videotelefonie als zusätzliches Sicherheitsmerkmal vor. Mit einer eingebauten Kamera multipliziert sich das Problem in den Bereichen Hard- und Software. Zusätzlich benötigen alle rund 1200 Mitarbeiter/innen die Möglichkeit, Videotelefonie am Rechner empfangen zu können, anstatt eines herkömmlichen Telefonapparats daneben. (die versteckte Killer-Anforderung)

Im Rahmen des Gesamtprojekts soll nun – verständlicherweise – eine Kostenschätzung her. Und da Universitäten Hard- und Software in derartigen Größenordnungen über Ausschreibung beschaffen, muss außerdem ein Ausschreibungs-taugliches Lastenheft erstellt werden.

Ich denke, mein Problem mit der Geschichte wird inzwischen klar. (Und wer nun denkt, man könne zumindest den Hardware-Teil leicht lösen, der soll sich einfach mal hinter Mail und Telefon klemmen und Europas Hersteller derartiger Devices kontaktieren…)

Während an einer Universität die Frage “An welchem Tag und mit exakt wieviel Aufwand an Reise- und Literaturkosten schafft Forscher/inneteam X mit Theorie Y den Durchbruch?” absurd klingt, tauchen ähnliche Fragen – wieder verständlicherweise – im Kontext der Softwareentwicklung auf.

Ich behaupte aber, das oben beschriebene Projekt ist näher an der Forschungsmetapher dran, als etwa am Betonieren der Gebäude.

Der Unterschied zwischen Betonieren und Programmieren

Im Certified Scrum Product Owner (CSPO) Training von Objectbay wurde das Stacey Diagram vorgestellt, das die Komplexität von Software-Projekten verdeutlicht. Ich habe es an dieser Stelle nachgezeichnet.

The Stacey Diagram

Die dargestellte Matrix zeigt Technologie und Anforderungen auf der x- und y-Achse. Sind etwa sowohl die Requirements als auch die eingesetzte Technologie klar, handelt es sich um ein simples Problem; ein Problem, das mit ausreichender Planung erschlagen werden kann. Auch tricky (im Original complicated) stellt noch kein besonderes Hindernis dar. Vielleicht steigt der Planungs- und Abstimmungsaufwand, aber die Aufgabe bleibt planbar.

Nun betreten wir die Welt komplexer oder gar chaotischer (im Original Anarchy) Projekte. Unklare Anforderungen gepaart mit technologischem Neuland eröffnen eine Welt voller Unsicherheit.

Wissenschaftliche Forschung bewegt sich rechts oben; aber auch Software-Projekte sind nur selten im linken, unteren Eck beheimatet. Das oben genannte Projekt jedenfalls nicht.

Das Planbar-Machen derartiger Umgebungen ist Thema zahlreicher, sogenannter agiler Projektmanagement-Methoden. Obwohl ich ein überzeugter Verfechter dieser Modelle bin, gibt es in meinem konkreten Arbeitsumfeld doch einige Einschränkungen wie etwa rechtlichen Hürden bei Beschaffungsvorgängen, etc.

Jedenfalls werde ich in Zukunft das Stacey Diagram gebetsmühlenartig vorstellen. Das hilft mir zwar kein bisschen bei meinem akuten Planungs-Dilemma, aber es entschuldigt vielleicht mein Scheitern auf transparente Weise…

Das CSPO-Training beim hervorragend dozierenden Andreas Wintersteiger von Objectbay kann ich übrigens nur empfehlen!