Archiv für Mai 2009

BSI über Sicherheit und AJAX

Das BSI rät immer noch von der Verwendung von AJAX und sonstigen aktiven Inhalten ab obwohl es inzwischen Web Application Firewalls wie Webcastellum gibt. Meiner Ansicht nach ist zumindest zu überprüfen, ob diese Auffassung noch Gültigkeit hat.

Nichtsdestotrotz sind die schon etwas betagten Codebeispiele auf der Website des BSI immer noch lesenswert.

Neuer Vortrag auf den OMG Information Days

Auf den OMG Information Days in Düsseldorf, Darmstadt und München halte ich einen neuen Vortrag, der das innige Verhältnis zwischen Anforderungen, Architektur und Projektvertrag beleuchtet. Wie müssen Anforderungen gemacht sein, um zur Basis “guter” Software-Architektur zu werden? Und wie können gut gemanagte Anforderungen Grundlage von Projektverträgen werden?

Ich freue mich darauf, Sie am 30.6., 1.7 und 2.7. in diesem Vortrag zu sehen und mit Ihnen innovative Ideen zu diskutieren!

Mehr Info dazu finden Sie bei SIGS DATACOM.

Kopfrechnen mit Dreisprung

Hallo an die Kopfrechner unter meinen Blog-Lesern: Die Firma Dell gab kürzlich der Börse bekannt, dass der Umsatz um 23%, der Gewinn jedoch um 63% eingebrochen sei. Wie groß ist also der Anteil der Kosten am Umsatz (in Prozent)?

Technik-Göttin werden

Was es doch manchmal für Bücher gibt! How to Be a Geek Goddess – wie man eine Technik-Göttin wird, ohne jemals einen Mann zu fragen. Fand ich eine witzige Idee. Damit das Buch nicht nur von Frauen gekauft wird, haben sich die Marketingleute natürlich etwas für “diese andere Zielgruppe da” einfallen lassen:

Tech savvy folks who buy the book as a gift for the women in their life to avoid having to answer tech questions themselves

Na, denn, Männer: Kauft! :-)

Zielvereinbarungen funktionieren nicht

…zumindest nicht in der Software-Entwicklung. Eine oft gehörte Beschwerde, und ich finde, sie stimmt tatsächlich!

Softwareentwicklung ist in der Tat so komplex, dass sie Zielvereinbarungen schnell überholt und unwirksam macht. Die Ursache liegt in fehlender “requisite variety”.

W. Ross Ashby (Kybernetiker) hat 1956 das Law of Requisite Variety (Gesetz der notwendigen Vielfalt) formuliert, das auch hier anwendbar ist: “Nur Varietät kann Varietät zerstören”. Wenn ich ein komplexes System (z.B. einen lebenden Organismus oder eine Landschaft von durchzuführenden SW-Projekten) habe, so hat dieses System essenzielle Variablen, deren Werte innerhalb bestimmter Bereiche bleiben müssen, damit das System lebensfähig bleibt. Störungen von außen verändern die Werte dieser Variablen. Ein Regulator versucht, diese Störungen zu blockieren, so dass die essenziellen Variablen im Wertebereich bleiben. Dieses Blockieren ist eher ein Kompensieren und daher ein Akt der Kommunikation, der Regulator ist de facto ein Kommunikationskanal. Als solcher muss er (vom Prinzip her wie nach Shannon) eine mindestens so hohe Varietät haben wie die Störung, die eintrifft, sonst kann er sie nicht erfolgreich neutralisieren.

Was bedeutet das für das Thema Zielvereinbarungen? Die Störungen sind Einflüsse, die auf das System “Softwareprojekt” einwirken und den Satz essenzieller Variablen wie Termin, Qualität, Kosten, Umfang aus dem zulässigen Wertebereich treiben, wenn man nichts dagegen tut. Mitarbeiter sind wie Regulatoren, die mit Hilfe von Zielvereinbarungen “programmiert” werden sollen (ich übertreibe die kybernetische Sprechweise hier ein wenig). Das Problem ist nun, dass die Regulatoren mit angemessener Varietät auf die Vielfalt der Störungen reagieren müssen – die Zielvereinbarung kann diese Varietät jedoch nicht aufweisen, sonst müsste sie im Zielvereinbarungsgespräch bereits vorhergesehen werden, was nicht möglich ist. Sie ist also als “Programm” für den Regulator ungeeignet (zu geringe Varietät).

Besser ist es, auf Selbstorganisation der Mitarbeiter zu setzen, da diese Selbstorganisation eine ähnlich hohe Varietät entwickeln kann wie die der eintreffenden Störungen. Beispielsweise kann in einem Daily Scrum das Team kreativ die Optionen besprechen, mit denen auf eine eintreffende Störung (Fehler in einem verwendeten SW-Framework, Änderung einer Anforderung, usw.) reagiert werden kann. Alle Mitarbeiter werden zu Regulatoren, die sich selbst programmieren, ohne Zielvereinbarungen dazu zu brauchen. Die Kenntnis der Zusammenhänge über die essenziellen Variablen reicht aus. Die Führung muss diese Zusammenhänge allerdings liefern!

Führungskräfte sind die, die mit Komplexität umgehen können. Mitarbeiter sind die, die komplizierte Aufgaben lösen können. Wenn nun die Führung das Verständnis über die komplexen essenziellen Variablen des Systems herstellen kann, können die Mitarbeiter all die komplizierten Maßnahmen einleiten, die notwendig sind, um Varietät zur Neutralisierung der komplexen Störung aufzubauen – ganz ohne Zielvereinbarungen.

Frage an meine Blog-Leser: Wie regelt man dann das Thema “variabler Gehaltsanteil”, wenn einfache, messbare Ziele plötzlich wegen zu geringer Varietät ihre Nützlichkeit im Altag der Softwareentwicklung verlieren?