07 Jun 2009 @ 10:25 PM 

Motivation

Entscheidungen zu fällen ist eigentlich ganz leicht, die Schwierigkeit besteht immer darin, die richtige Entscheidung zu fällen. Eine Formel, immer die richtige Entscheidung zu treffen kann keiner aufstellen, man kann lediglich die Chance erhöhen, die richtige Entscheidung zu fällen. Als Softwarearchitekt oder Entwickler steht man sehr oft vor Entscheidungen, meisst geht es um die Entscheidung, eine standardisierte oder ein selbstgeschriebene Lösung zu wählen, um ein Problem zu lösen.

Hier sind 6 kleine Schritte, nach denen man viel eher in der Lage ist, eine Entscheidung zu treffen und somit die Chance auf die richtige Entscheidung steigt.

1. Analyse

Jegliche Entscheidung besteht aus einer Wahl zwischen mehreren Möglichkeiten. Wichtig ist hier alle Wahlmöglichkeiten so sehr zu analysieren, dass man für jeden Parameter der Möglichkeiten eine eindeutige  Vergleichsmöglichkeit hat. Bei IT- Projekten sind typische Parameter:

  • Kosten in €
  • Zeitaufwand (aka Kosten in MannTagen)
    • Für die Implementierung
    • Für die Einarbeitung in die fremde API
  • Performance
  • Wartbarkeit
  • Wiederverwendbarkeit
  • Robustheit

2.Akzeptanz

Nun haben wir eine gute Übersicht über die Alternativen. Allerdings sind wir Menschen. Und gerade in der IT beeinflusst eine Entscheidung meisst mehrere Menschen. Jetzt bewerten wir den sogenannten “Kuschel-Faktor”

  • Wie zufrieden bin ich mit jeder Alternative?
  • Wie zufrieden ist das Team mit jeder Alternative?

Es mag witzig erscheinen, aber wie in der Natur lassen sich Entscheider in 2 Kategorien einteilen.

Es gibt die Jäger und es gibt die  Beute.

Bei der Entscheidungsfindung handelt die Beute immer nach dem gleichen Prinzip: Sie hält an altbewährtem fest. Sie fühlt sich sicher in ihrer aktuellen Umgebung und wagt nur geringes Risiko.

Der Jäger hingegen ist offen für neues, akzeptiert Risiken zur Verbesserung und Kostenersparnis.

Die Erkenntnis, zumindestens in der IT, ist allerdings, dass obwohl die eben genannten Definitionen einen anderen Schluss zulassen, das Gesetz der Natur immer noch gilt :

Jäger frisst Beute

Hat man allerdings ein Team aus Beutetieren, wäre es alles andere als die richtige Entscheidung, deren Kuschelfaktor zu ignorieren und revolutinäres zu wagen. Sie würden mit Entscheidungen, mit denen sie nicht zufrieden sind leben müssen,  unzufrieden sein und weniger produktiv. Hat man allerdings alles richtig gemacht und Guy Kawasakys Rat[1]

Hire infected people

befolgt, sind sich immer alle über den Kuschel-Faktor einer Entscheidung einig.

Ein typisches Beispiel dafür ist Java Server Faces, die einen vergöttern es, die anderen verteufeln es. Hier ist es wichtig, dass das gesamte Team hinter der Entscheidung Pro oder Contra steht. Andere Beispiele sind Google oder Microsoft, die polarisieren. Der Pol, an dem das Team steht, ist der Richtige.

3.Die Risiken

Jede Entscheidung trägt die unweigerliche Folge mit sich, die Falsche sein zu können. Das ist auch der Grund, warum so viele Menschen dazu tendieren, Entscheidungen anderen zu überlassen. Macht man sich allerdings die Risiken jeder Möglichkeit bewusst, dann muss man sie nicht fürchten, sondern einkalkulieren.

Die Typischen Kriterien der IT

  • Zeit (In- Time)
  • Qualität (In- Quality)
  • Kosten (In- Budget)

4.Die Vorteile

Hier kommt meisst derjenige ins Spiel, der eine Möglichkeit vorgestellt oder ins Rennen geschickt hat, natürlich muss man seine hohe Meinung respektieren, analysieren und bewerten. Jedes Mitglied des Teams muss erkannt haben, dass ein Möglicher Vorteil eines der 3 eben angesprochenen Kriterien verbessert.

5.Die Freiheit

Jede Entscheidung die man trifft hat Auswirkungen und wenn man eine Entscheidungskette hat, kann es sein, dass Entscheidungen die am Anfang getroffen werden, Möglichkeiten weiter hinten in der Entscheidungskette ausschliessen.

Wenn wir uns jetzt für A entscheiden, können wie nie wieder x-en

Um in der IT zu bleiben, wer sich für .NET entscheidet, wird nie Hibernate benutzen können.

6.Verteidigbarkeit

Wer bis hierhin gelesen und durchgeführt hat, hat eine sehr gute Übersicht über die Fakten der Entscheidung, wie die Entscheidung angenommen wird, welche Vor- und Nachteile sie hat, und welche Wege sie versperrt. Jetzt gibt es nur noch eine Hürde: die Entscheidung mitteilen.

Man muss jetzt schauen, wem man die Entscheiung mitteilen muss. In der IT hat man meisst eine gewisse Kontrollschicht. Dieser kann man entweder Diagramme zeigen oder einfach nur zusichern, dass diese oder jene Entscheiung die Richtige ist. Leider haben vor allem die Vorgesetzten eine eigene Meinung zu jeder Entscheidung und bewerten einen der 5 vorher aufgeführten Punkte besonders hoch. Die Optimisten sehen die Vorteile, die Pessimisten sehen die Nachteile, Freiheit und Akzeptanz sind für andere wichtig. Und die Controller, die Analysten werden mit besonderm Auge auf die Tabelle aus dem Punkt 1 schauen. Die Entscheidung muss jenem, dem die mitgeteilt wird zufriedenstellen und möglichst viele gute Bewertungen aus den ersten 5 Punkten haben.

Entschluss

Geht man diese 6 Schritte  durch, hat man die Möglichkeiten vergleichbar gemacht, kennt man alle Vor- und Nachteile, kennt man die Wege die es einem verbaut und  kennt (in etwa)die Reaktion “nach oben” und “nach unten” auf diese Entscheidung. Das ist eine Formel, die, wie angesprochen nicht immer die richtige Entscheidung hervorbringt, aber die Chance auf ebenejene erhöht.

Links

The Art of the Start

Posted By: tkdmatze
Last Edit: 25 Jun 2009 @ 10:22 AM

EmailPermalink
Tags
Categories: MyWeb, privat


 

Responses to this post » (None)

 
Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.


 Last 50 Posts
 Back
Change Theme...
  • Users » 2
  • Posts/Pages » 30
  • Comments » 6
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight