<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6599870</id><updated>2011-11-25T21:41:13.126+01:00</updated><category term='FDD'/><category term='Lean'/><category term='XP'/><category term='Hibernate'/><category term='XML'/><category term='Build'/><category term='Testen'/><category term='Java'/><category term='Fun'/><category term='Lisp'/><category term='Groovy'/><category term='Agilität'/><category term='Refactoring'/><category term='PHP'/><category term='People'/><category term='TDD'/><category term='Architektur'/><category term='Ruby'/><category term='DSL'/><category term='Scrum'/><category term='Tools'/><category term='Grails'/><category term='Technologie'/><category term='JavaScript'/><category term='V-Modell'/><title type='text'>Stefan Roock</title><subtitle type='html'>IT-Consultant für Scrum, XP, FDD, Lean Software Development, Evolutionäre Architektur, Testen und Refactoring.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default?start-index=101&amp;max-results=100'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>267</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6599870.post-9184632749527181094</id><published>2009-02-17T20:01:00.002+01:00</published><updated>2009-02-17T20:04:40.352+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Neue Blog-Adressen</title><content type='html'>Ich bin mit meinem Blog nach Wordpress umgezogen. Die Site-Adresse bleibt bei &lt;a href="http://www.stefanroock.de"&gt;http://www.stefanroock.de&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;RSS-Feed findet sich unter: &lt;a href="http://stefanroock.wordpress.com/feed/"&gt;http://stefanroock.wordpress.com/feed/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;RSS-Feed für die Kommentare findet sich unter: &lt;a href="http://stefanroock.wordpress.com/comments/feed/"&gt;http://stefanroock.wordpress.com/comments/feed/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-9184632749527181094?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/9184632749527181094/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=9184632749527181094&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/9184632749527181094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/9184632749527181094'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/neue-blog-adressen.html' title='Neue Blog-Adressen'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6995176669802782679</id><published>2009-02-16T21:40:00.002+01:00</published><updated>2009-02-16T21:43:38.000+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Das Commitment des Product Owners</title><content type='html'>In Scrum committet sich das Entwicklungsteam auf das Sprintziel. Und der Product Owner? Der committet sich auch auf die Sprint-Planung! Genauso wie das Entwicklungsteam darf er das Ergebnis der Sprint-Planung nur dann akzeptieren, wenn er es für sinnvoll hält. Das bedeutet insbesondere auch: Der Product Onwer committet sich nur dann auf das Ergebnis der Sprint-Planung, wenn aus seiner Sicht die Entwicklungsgeschwindigkeit des Teams zufriedenstellend ist. Wenn der Product Owner meint, die Geschwindigkeit sei zu niedrig und das Projekt nicht ökonomisch sinnvoll durchführbar, muss er sein Commitment verweigern. Das Ergebnis: es gibt kein Commitment und damit keinen nächsten Sprint.&lt;br /&gt;Und dann? Dann spricht man über die Situation: Ist das Team unpassend zusammengesetzt? Fehlt es an Aus-/Weiterbildung? Gibt es ein anderes Team, dass den Anforderungen des Product Owner besser genügen kann? Etc. Und wenn die Antwort immer "Nein" lautet, dann muss sich der Product Owner die Frage stellen, ob sein Projekt überhaupt ökonomisch sinnvoll ist.&lt;br /&gt;Und bei allem sollten wir ganz gelassen bleiben. Wenn der Product Owner sein Commitment nicht geben kann, ist das keine Krise. Es ist das Ende einer Illusion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6995176669802782679?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6995176669802782679/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6995176669802782679&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6995176669802782679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6995176669802782679'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/das-commitment-des-product-owners.html' title='Das Commitment des Product Owners'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2999206484959923566</id><published>2009-02-05T11:28:00.001+01:00</published><updated>2009-02-05T11:30:59.881+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Pair-Programming-BOT für TDD</title><content type='html'>&lt;a href="http://sanitz.net/sebastian/index.html"&gt;Sebastian&lt;/a&gt; hat dieses Kleinod gefunden: Den &lt;a href="http://pairprogrammingbot.com/"&gt;virtuellen Pair-Partner&lt;/a&gt;. Das ist lustig.&lt;br /&gt;&lt;br /&gt;Aber es ist nicht nur lustig. Ich glaube, das Ding kann in der Tat ganz gute Dienste leisten, wenn man TDD erlernen möchte. Dann ist es nämlich tatsächlich sehr nützlich, genauso dogmatisch vorzugehen, wie der BOT das tut.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2999206484959923566?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2999206484959923566/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2999206484959923566&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2999206484959923566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2999206484959923566'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/pair-programming-bot-fur-tdd.html' title='Pair-Programming-BOT für TDD'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2467981666240985072</id><published>2009-02-05T09:00:00.004+01:00</published><updated>2009-02-05T09:09:09.677+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 12 (externe Displays)</title><content type='html'>Es ist unter Linux bekanntlich &lt;a href="http://rz.koepke.net/?p=24"&gt;ein Horrorthema einen Beamer anzusteuern&lt;/a&gt;. Also hatte ich auf der OOP Power-Point unter Windows verwendet. Jetzt sitze ich hier gerade neben einem externen Monitor. Den kann ich doch mal anschließen. Dann drücke ich auf Fn+F7 um die Bildschirmausgabe auf das externe Gerät umzuschalten und siehe da, es klappt. OK, ich muss ein paar mal Fn+F7 drücken, bis das gewünschte Ergebnis da ist, aber sowas passiert mir unter Windows auch gerne mal.&lt;br /&gt;Ubuntu passt die Bildschirmauflösung auf meinem Notebook an das externe Gerät an. So sieht es bei mir auf dem Notebook etwas eigenartig aus, aber auf dem Monitor mit geringerer Maximalauflösung ist alles prächtig. Cool.&lt;br /&gt;Als ich den Monitor wieder abziehe, merkt Ubuntu das aber anscheinend nicht richtig. Auch mehrfaches Fn+F7 bringt mir nicht meine Original-Auflösung zurück. Ich muss als über System-&gt;Einstellungen-&gt;Bildschirmauflösung die Auflösung wieder hochstellen, aber das ist kein großer Akt.&lt;br /&gt;Jetzt müsste es eigentlich auch auf dem Beamer funktionieren, oder? Das werde ich bei der nächsten Konferenz mal ausprobieren.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2467981666240985072?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2467981666240985072/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2467981666240985072&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2467981666240985072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2467981666240985072'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/ubuntu-fur-no-details-charaktere_05.html' title='Ubuntu für No-Details-Charaktere: Schritt 12 (externe Displays)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3213775035184248727</id><published>2009-02-03T22:15:00.002+01:00</published><updated>2009-02-03T22:21:02.056+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 11 (UMTS-Karte)</title><content type='html'>Ich habe für mein Notebook eine UMTS-Karte von Vodafone. Die Installation der zugehörigen Software gestaltete sich unter Windows als ziemlich umständlich. Also hatte ich auch für die Installation unter Ubuntu mit Problemen gerechnet. Und tatsächlich finde ich erst nach einigem Suchen eine Seite, wo man Treiber herunterladen kann. Dort gibt es zwei Versionen, bei denen mir schon nicht klar ist, welche ich nehmen soll. Also lade ich mal beide herunter. Nützen tut das aber wenig. Keine der beiden Versionen lässt sich installieren. Mist.&lt;br /&gt;&lt;br /&gt;Also stecke ich die UMTS-Karte rein und starte Windows. Halt, stop. Was ist das? Ubuntu erkennt die Karte von selbst. Ich muss nur den Provider auswählen und ich bin Online. Und dafür mich ich nicht mal die aufdringliche Vodafone-Software ertragen. Wow!&lt;br /&gt;&lt;br /&gt;Also immer bedenken: Wenn man irgendein Gerät unter Ubuntu nutzen will, erstmal anschließen und gucken, was passiert.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3213775035184248727?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3213775035184248727/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3213775035184248727&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3213775035184248727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3213775035184248727'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/ubuntu-fur-no-details-charaktere.html' title='Ubuntu für No-Details-Charaktere: Schritt 11 (UMTS-Karte)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5502624999801056915</id><published>2009-02-02T10:10:00.001+01:00</published><updated>2009-02-02T10:12:35.303+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Pecha Kucha auf der JAX 2009</title><content type='html'>Auf der diesjährigen JAX wird es auf dem &lt;a href="http://it-republik.de/jaxenter/jax/sessions/?tid=1214"&gt;Agile Day eine Pecha &lt;span class="nfakPe"&gt;Kucha&lt;/span&gt;&lt;br /&gt;Session geben&lt;/a&gt;. Pecha &lt;span class="nfakPe"&gt;Kucha&lt;/span&gt; ist eine spezielle Form der Präsentation.&lt;br /&gt;Es werden mehrere Präsentationen verschiedener Autoren zu agilen&lt;br /&gt;Vorgehensweisen in Folge gezeigt. Jede Präsentation besteht aus genau&lt;br /&gt;20 Folien, die jeweils genau 20 Sekunden angezeigt werden.&lt;br /&gt;&lt;br /&gt;Dafür suche ich Referenten. Wer Interesse hat (und möglichst sowieso&lt;br /&gt;auf der JAX oder mind. der Gegend ist), möge sich bei mir melden.&lt;br /&gt;&lt;br /&gt;Mehr Infos zu Pecha &lt;span class="nfakPe"&gt;Kucha&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://de.wikipedia.org/wiki/Pecha_Kucha" target="_blank"&gt;http://de.wikipedia.org/wiki/&lt;wbr&gt;Pecha_Kucha&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.wired.com/techbiz/media/magazine/15-09/st_pechakucha" target="_blank"&gt;http://www.wired.com/techbiz/&lt;wbr&gt;media/magazine/15-09/st_&lt;wbr&gt;pechakucha&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5502624999801056915?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5502624999801056915/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5502624999801056915&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5502624999801056915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5502624999801056915'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/pecha-kucha-auf-der-jax-2009.html' title='Pecha Kucha auf der JAX 2009'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7189247880269505483</id><published>2009-02-01T19:58:00.002+01:00</published><updated>2009-02-01T20:01:40.273+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Noch mehr Spaß mit Internationalisierung</title><content type='html'>Gerade habe ich versucht, die Webseite der Hertz-Autovermietung zu öffnen. Die war nicht erreichbar - das kann ja mal passieren. Als Meldung habe ich bekommen:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;We're sorry bur we are unable to process your request at this time&lt;br /&gt; A general application failure has been detected.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Bis auf den peinlichen Tippfehler bei "bur/but" scheint mir das OK zu sein. Und freundlicherweise findet sich darunter gleich die deutsche Übersetzung:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   wir sind, die aber traurig sind, wir sind nicht imstande, Ihren Antrag diesmal zu verarbeiten.&lt;br /&gt; Ein allgemeiner Anwendung Ausfall ist ermittelt worden.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Na, da sind wir aber traurig...&lt;br /&gt;&lt;br /&gt;Ich kann nur hoffen, dass diese Übersetzung von einer Maschine stammt...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7189247880269505483?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7189247880269505483/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7189247880269505483&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7189247880269505483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7189247880269505483'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/02/noch-mehr-spa-mit-internationalisierung.html' title='Noch mehr Spaß mit Internationalisierung'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8351246989050312806</id><published>2009-01-19T20:10:00.001+01:00</published><updated>2009-01-19T20:10:35.265+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Wenn einer eine Reise tut...</title><content type='html'>Donnerstag musste ich morgens von Berlin nach Mannheim. Ich hatte meinen Flug im Internet mit der Lufthansa gebucht und elektronisches Ticket über Kreditkarte geordert.&lt;br /&gt;&lt;br /&gt;Also stecke ich meine Kreditkarte in den Quick-Checkin-Automaten. Dieser begrüßt mich freundlich mit meinem Namen. Ich muss auswählen, ob ich alleine oder in der Gruppe reise. Alleine. Dann muss ich angeben, ob ich nur Handgepäck habe oder Gepäck aufgeben möchte. Nur Handgepäck. Und dann sagt der Automat mir, dass kein Ticket für mich gebucht ist. Sch... Habe ich den Flug für den falschen Tag gebucht? (Und selbst wenn, was ist das für Usability, dass Fragen beantworten muss, die sich am Ende als Unsinnig herausstellen?)&lt;br /&gt;&lt;br /&gt;Ich gucke auf die Übersichtsanzeige der Abflüge. Es geht ein Flug nach Mannheim zu der angegebenen Zeit. Aber die Flugnummer ist anders. Oh, oh. Also schnell zum Checkin-Schalten, um das zu klären.&lt;br /&gt;&lt;br /&gt;Mit schnell ist aber nichts, weil ich mich erstmal im Flughafen Berlin Tegel verlaufe. Das ist bei so einem kleinen Flughafen schon eine gewisse Kunst. Einige Hinweisschilder sind aber auch echt eigenartig platziert.&lt;br /&gt;&lt;br /&gt;Schließĺich finde ich den Checkin-Schalter. Da ist aber niemand. Nanu? Es sind nicht mal mehr 60 Minuten bis zum Abflug. Jetzt gesellen sich andere verwirrte Passagiere dazu. So falsch kann ich also nicht sein. Tatsächlich öffnet der Schalter nach wenigen Minuten, ca. 45 Minuten vor Abflug. Jetzt sehe ich auch, warum ich kein elektronisches Ticket bekommen konnte und warum die Flugnummer abweicht. Der Flug wird nicht von Lufthanse durchgeführt, sondern von Cirrus Airlines. Also liegt das Ticket wohl im System von Cirrus und der Lufthansa-Automat kommt da nicht dran. Da wäre ein Hinweis bei der Buchung und auch am Quick-Checkin-Automaten hilfreich gewesen - soviel Adrenalin am frühen Morgen muss nun wirklich nicht sein.&lt;br /&gt;&lt;br /&gt;Tatsächlich bekomme ich am Cirrus-Schalter mein Ticket. Bei der Sicherheitskontrolle falle ich unangenehm auf. In meinem Notebook-Rucksack haben sich soviele Kabel angesammelt, dass er nicht mehr richtig durchleuchtet werden kann. Letztes Mal musste ich daher alle Kabel rausnehmen und den Rucksack nochmal durchleuchten lassen. So leicht komme ich diesmal nicht davon. Ich werde in einen separaten Raum gebeten. Dort wird eine Art Staubsauger mit Filter in alle Rucksack-Fächer gehalten und der Filter anschließend in eine wirklich große Maschine gesteckt. Die sagt erwartungsgemäß, dass ich keine Bomben dabei habe. Hätte sie das auch gesagt, wenn ich Sylvester Böller in dem Rucksack transportiert hätte? Wenn ich mal zuviel Zeit habe, reibe ich mal eine Tasche mit übriggebliebenen Böllern ein und gehe extra früh zur Sicherheitskontrolle...&lt;br /&gt;&lt;br /&gt;Danach warte ich noch kurz am Gate und rein geht's in Flugzeug. Naja, erstmal in den Flughafenbus - zusammen mit einem dutzend anderer Leute. Zwei davon stehen im Bus und machen die Business-Kasper - die waren wirklich sehr nah dran am Sketch!&lt;br /&gt;&lt;br /&gt;Nach 5 Minuten steigen wir wieder aus- Der Bus hat sich keinen Zentimeter bewegt. Wir werden wieder zurück in die Wartehalle geholt. In Mannheim kann wg. schlechtem Wetter (Nebel und Eisregen) nicht gelandet werden. 45 Minuten nach geplantem Abflug beschließt man: Wir fliegen nach Saarbrücken und fahren dann 90 Minuten mit dem Bus nach Mannheim. Es gäbe auch noch eine geringe Chance, dass wir in Mannheim landen könnten. Aber das würde sich erst kurz vor Mannheim entscheiden.&lt;br /&gt;&lt;br /&gt;Einige Passagiere weisen darauf hin, dass bereits Flüge nach Saarbrücken umgeleitet wurden nach Stuttgart, weil der Flughafen auch schlechtes Wetter hätte. Die Cirrus-Frau fragt nochmal nach bei ihren Leuten. Aber es bleibt dabei: Wenn Mannheim nicht geht, nehmen wir Saarbrücken. Also alle wieder rein in den Bus und los geht's.&lt;br /&gt;&lt;br /&gt;Das Flugzeug hat gut 30 Sitze, so dass die meisten Sitze frei bleiben. Wir dürfen uns aber nicht in die ersten 5 Reihen setzen, weil dann die Gewichtsverteilung nicht mehr stimmt. Wer hätte gedacht, dass Flugzeuge so anfällig sind.&lt;br /&gt;&lt;br /&gt;Während wir auf die Startbahn rollen, hält die Flugbegleiterin ihre obligatorische Rede: "Im Namen des Piloten, des Copiloten und der restlichen Crew - das bin ich - heiße ich Sie herzlich willkommen beim Cirrus-Flug nach Mannheim ... oder Saarbrücken."&lt;br /&gt;&lt;br /&gt;Nach dem Start meldet sich der Pilot: "Auch ich möchte Sie herzlich willkommen heißen auf unserem Flug nach Westen. Auf mehr möchte ich mich erstmal nicht festlegen." Um uns etwas Unterhaltung zukommen zu lassen, erzählt er lange Geschichten über die Orte, an denen wir vorbeifliegen. Seine Ausführungen beschließt er mit den Worten: "Und wenn Ihnen jetzt der Sinn nach etwas seichterer Unterhaltung ist, fragen Sie die Stewardess. Die kann klassischen Ausdruckstanz. Die kann sogar ihren Namen tanzen."&lt;br /&gt;&lt;br /&gt;Kurz vor Mannheim meldet sich der Pilot: "In Mannheim ist immer noch schlechtes Wetter und wir können dort nicht landen. In Saarbrücken sieht es genauso aus. Und da es egal ist, wo wir nicht landen, fliege ich jetzt einfach mal Schleifen über Mannheim. Vielleicht tut sich ja noch was."&lt;br /&gt;&lt;br /&gt;Nach 30 Minuten kommt die Durchsage: "Es wird sich nichts mehr tun. Wir fliegen zurück nach Frankfurt." Das dauert immerhin nur 12 Minuten, aber als wir da sind: "Dass der Himmel heute nicht voller Geigen hängt, haben Sie ja bereits bemerkt. Hier hängt er voller Flugzeuge, so dass wir auch hier ein paar Warterunden drehen werden."&lt;br /&gt;&lt;br /&gt;Ich frage mich langsam, wieviel Sprit in so einer Maschine eigentlich drin ist.&lt;br /&gt;&lt;br /&gt;Aber letztlich landen wir dann doch. Lufthansa hat einen Bus organisiert, der uns an Ausgang B6 erwartet. Also wir da ankommen, finden wir da zwei Dinge nicht vor: einen Bus und jemand von Lufthansa, der uns Infos gibt. Gut organisiert ist das nicht.&lt;br /&gt;Stehen wir vielleicht am falschen Ausgang? Nach ca. 30 Minuten taucht jemand auf und nimmt uns zum Bus mit. Dort warten wir noch ziemlich lange, weil die Anzahl der Leute im Bus unter der Anzahl der Passagiere im Flugzeug liegt. Vielleicht haben die ein anderes Transportmittel genommen? Irgendwann fährt der Bus aber doch los und es dauert noch eine Stunde, bis wir in Mannheim ankommen sind.&lt;br /&gt;&lt;br /&gt;Summa Summarum: Statt einer Stunde dauerte die Reise Berlin-&gt;Mannheim 5,5 Stunden (dass der Pilot einen gewissen Unterhaltungswert hatte, entschädigt da wenig). Und da ich meinem Kunden nicht zumuten kann, um 15 Uhr zu kommen und um 17 Uhr wieder zu gehen, harre ich dort bis 18:15 Uhr aus und komme daher erst gegen 1:00 Uhr morgends wieder zu Hause an - für den Rückweg nehme ich die Bahn. Die ist in Relation zum Flugverkehr dann doch verlässlich und auch bequemer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8351246989050312806?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8351246989050312806/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8351246989050312806&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8351246989050312806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8351246989050312806'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/wenn-einer-eine-reise-tut.html' title='Wenn einer eine Reise tut...'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2288161888452152502</id><published>2009-01-12T20:24:00.002+01:00</published><updated>2009-01-12T20:27:10.939+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Perlen der Internationalisierung</title><content type='html'>Eine große Internetanwendung hat rechts oben zwei Links stehen: "Einloggen" und "Anmelden". Da kann man schon mal eine Weile drüber nachdenken.&lt;br /&gt;&lt;br /&gt;Und ein bekanntes Internetsystem, mit dem man VOIP machen kann, sagt ständig "XYZ kam online". So begeistert sind also die Benutzer dieses Systems...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2288161888452152502?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2288161888452152502/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2288161888452152502&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2288161888452152502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2288161888452152502'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/perlen-der-internationalisierung.html' title='Perlen der Internationalisierung'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2103763624871459534</id><published>2009-01-12T16:50:00.001+01:00</published><updated>2009-01-12T16:53:15.034+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 10 (Wine statt Windows)</title><content type='html'>Freitag hatte ich jetzt tatsächlich mal eine Situation, in der ich ein Programm benutzen musste, dass es nur unter Windows gibt. Man muss dazu aber Windows gar nicht starten. Man kann viele Windows-Programme mit Hilfe von &lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt; direkt unter Ubuntu laufen lassen.&lt;br /&gt;&lt;br /&gt;Cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2103763624871459534?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2103763624871459534/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2103763624871459534&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2103763624871459534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2103763624871459534'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/ubuntu-fr-no-details-charaktere-schritt_12.html' title='Ubuntu für No-Details-Charaktere: Schritt 10 (Wine statt Windows)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5263389315805592256</id><published>2009-01-06T19:44:00.003+01:00</published><updated>2009-01-06T19:54:44.557+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 9 (Skype)</title><content type='html'>Jetzt kommt Skype dran. Es gibt eine Ubuntu-Version als Debian-Package. Leider steht Skype nur als 32-Bit-Version zur Verfügung und mein 64-Bit-Ubuntu will das nicht installieren.&lt;br /&gt;Es gibt aber eine &lt;a href="http://wiki.ubuntuusers.de/Skype"&gt;gute Doku&lt;/a&gt;, wie man es trotzdem hinkriegt im deutschsprachigen Ubuntu-Wiki. Soweit läuft auch alles. Aber beim Audio-Testpassiert nichts. Mal in die Skype-Optionen gucken. Und tatsächlich kann man dort zwischen verschiedenen Audio-Treibern wählen, die mir alle nichts sagen. Zum Glück sind es nur drei. Ich probiere einfach alle aus und der letzte (das war ja klar) funktioniert auch.&lt;br /&gt;Jetzt habe ich nur noch das Problem, dass mein Mikro nicht funktioniert. Nach etwas Suchen stelle ich fest, dass in Ubuntu das Mikro ausgeschaltet ist. Das kann man einfach beheben im Ubuntu-Desktop. Hey, was ist das denn? Man kann dort einen Mikro-Boost einstellen. Was der wohl macht? Wenn man ihn zu hoch aufdreht, auf jeden Fall Rückkopplungen :-) Aber wenn man es nur etwas aufdreht, wird die Mikro-Aufnahme lauter. Das ist cool. Wenn ich das Mikro des Notebooks benutzt habe, war das unter Windows eigentlich immer zu leise. Jetzt hört es sich schon viel besser an.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5263389315805592256?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5263389315805592256/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5263389315805592256&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5263389315805592256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5263389315805592256'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/ubuntu-fr-no-details-charaktere-schritt_8368.html' title='Ubuntu für No-Details-Charaktere: Schritt 9 (Skype)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5908746696449881348</id><published>2009-01-06T19:27:00.000+01:00</published><updated>2009-01-06T19:39:29.863+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 8 (DVDs)</title><content type='html'>Nachdem ich bereits &lt;a href="http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_28.html"&gt;flackernde Videos beseitigt&lt;/a&gt; habe, sollte ich auch kommerzielle DVDs gucken können. Stimmt aber leider nicht. VLC beendet sich beim Versuch, eine DVD abzuspielen, kommentarlos selbst.&lt;br /&gt;Durch Recherchen im Internet finde ich heraus, dass man anscheinend etwas namens &lt;span style="font-style: italic;"&gt;libdvdcss2&lt;/span&gt; braucht. Zum Gück ist &lt;a href="http://https//help.ubuntu.com/community/RestrictedFormats/PlayingDVDs"&gt;gut beschrieben&lt;/a&gt;, woher man das Ding bekommt und wie man es installiert. Nicht beschrieben ist, dass man VLC danach neu installieren und dann den Rechner neu booten muss. Aber danach funktionieren auch DVDs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5908746696449881348?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5908746696449881348/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5908746696449881348&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5908746696449881348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5908746696449881348'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/ubuntu-fr-no-details-charaktere-schritt_06.html' title='Ubuntu für No-Details-Charaktere: Schritt 8 (DVDs)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2112147843075925719</id><published>2009-01-05T13:25:00.002+01:00</published><updated>2009-01-05T13:35:13.846+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 7 (Applets)</title><content type='html'>Heute wollte ich dann mal gucken, ob &lt;a href="http://www.clipboard2web.com/"&gt;Clipboard2Web&lt;/a&gt; nach meinem &lt;a href="http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_30.html"&gt;Redeployment&lt;/a&gt; auch noch korrekt funktioniert. Dabei habe ich festgestellt, dass im Firefox das Applet nicht funktioniert. Immerhin weiß ich jetzt, dass die Fehlermeldung in Clipboard2Web korrekt angezeigt wird, wenn der Browser keine Applets kann :-)&lt;br /&gt;&lt;br /&gt;Aber warum will Firefox nicht? In den Optionen sind Applets aktiviert und eine aktuelle VM habe ich inzwischen ja auch installiert. Recherche im Internet führt mich auf Seiten, die mir Tipps geben, die ich viel zu technisch finde; so nach dem Motto: "Besorge Dir das JDK von SUN und mache ein Debian-Package daraus und benutze dazu Unmengen Kommandozeilentools, die Du noch nie gesehen hast und die teilweise noch gar nicht auf Deinem System installiert sind."&lt;br /&gt;&lt;br /&gt;Gibt es das Problem vielleicht nur mit meinem Applet? Ich suche nach anderen Applets im Internet und probiere mal das von &lt;a href="http://de.selfhtml.org/html/multimedia/anzeige/applet.htm"&gt;Self-Html&lt;/a&gt; aus. Das funktioniert auch nicht. Aber jetzt weist Firefox mich darauf hin, dass ihm ein Plugin fehlt und ich das jetzt installieren könnte. Also installiere ich das Plugin (IcedTea) und schon funktionieren auch die Applets.&lt;br /&gt;&lt;br /&gt;Ich muss mir mal angucken, wie Self-Html das Applet eingebunden hat. Da muss ja etwas anders sein als bei Clipboard2Web. Schließlich hat mir Firefox bei meinem Applet keinen hilfreichen Hinweis gegeben.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2112147843075925719?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2112147843075925719/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2112147843075925719&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2112147843075925719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2112147843075925719'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/ubuntu-fr-no-details-charaktere-schritt_05.html' title='Ubuntu für No-Details-Charaktere: Schritt 7 (Applets)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-9207417516260795231</id><published>2009-01-03T23:02:00.002+01:00</published><updated>2009-01-03T23:08:26.285+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 6 (Zwischenstand)</title><content type='html'>Heute habe ich mal wieder Windows gestartet und dabei auf die Uhr geguckt.&lt;br /&gt;&lt;br /&gt;Aktueller Zustand meines Notebooks: Bis zum Login-Screen benötigt Ubuntu 1 Minute und Windows Vista 1 Minute und 30 Sekunden. Da sieht Windows gar nicht so schlecht aus. Aber nach dem Login passiert ja noch etwas, bevor man arbeitsfähig wird. Und da heißt es Hasta la Vista, Windows. Ubuntu braucht nach dem Login noch 30 Sekunden, bis ich arbeitsfähig bin. Windows Vista braucht 8 Minuten und danach rattert immer noch die Festplatte im Hintergrund.&lt;br /&gt;&lt;br /&gt;In Summe dauert das Booten mit Ubuntu also 1:30 Minuten und Windows Vista 9:30 Minuten, also über das 6-fache.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-9207417516260795231?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/9207417516260795231/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=9207417516260795231&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/9207417516260795231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/9207417516260795231'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2009/01/ubuntu-fr-no-details-charaktere-schritt.html' title='Ubuntu für No-Details-Charaktere: Schritt 6 (Zwischenstand)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6465614966850087322</id><published>2008-12-30T13:36:00.008+01:00</published><updated>2009-01-02T11:23:46.096+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 5 (Entwicklung)</title><content type='html'>&lt;a href="http://mor.ph/"&gt;mor.ph&lt;/a&gt; ruft. Dort habe ich&lt;a href="http://www.clipboard2web.com/"&gt; Clipboard2Web&lt;/a&gt; in einem kostenlosen Paket gehostet. Als Gegenleistung verlangt der Hoster, dass ich meine Anwendung mind. monatlich aktualisiere. Ansonsten wird die Anwendung stillgelegt.&lt;br /&gt;Wenn noch 14 Tage übrig sind, bekommt man eine E-Mail, dass man seine Anwendung mal wieder neu deployen sollte. Jetzt ist es soweit.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Downloads&lt;/span&gt;&lt;br /&gt;Dazu muss ich Java und Grails unter Ubuntu installieren. Java lässt sich über die in Ubuntu eingebauten Nachlade-Mechanismen elegant und einfach installieren. Ich muss mir nicht mal Gedanken darüber machen, wohin das Zeug installiert werden soll. Ubuntu kennt den jeweils passenden Ort.&lt;br /&gt;&lt;br /&gt;Grails muss ich manuell herunterladen. Glückerlicherweise kann ich das direkt als Debian-Package tun und mit dem Package-Installer auch auf Knopfdruck installieren.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JAVA_HOME&lt;/span&gt;&lt;br /&gt;Java ist danach auch sofort einsatzfähig, bei Grails muss ich noch selbst Hand anlegen. Grails beschwert sich nämlich darüber, dass JAVA_HOME nicht gesetzt ist. Das macht der Java-Installer offensichtlich nicht selbst. Ist auch klar, weil es sehr viele Möglichkeiten gibt, wo man JAVA_HOME definieren kann. Ich bin da auch kein Experte und definiere es erstmal in /etc/environment. Das scheint das passende Ort für globales Zeug zu sein.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Grails&lt;/span&gt;&lt;br /&gt;Danach lässt sich Grails aus der Kommandozeuge starten. Wenn ich allerdings etwas Produktives mit Grails machen will, funktioniert es nicht. Genaueres Hinsehen verrät, dass Grails als Versionsnummer &lt;span style="font-style: italic;"&gt;null&lt;/span&gt; angibt. Das ist natürlich nicht OK. Kurze Recherche im Internet ergibt, dass das von mir verwendete Debian-Package korrupt ist. Es ist eine korrigierte Version &lt;a href="http://code.google.com/p/ant-deb-task/downloads/detail?name=grails_1.0.4-2_all.deb&amp;amp;can=2&amp;amp;q="&gt;hier&lt;/a&gt;, die aus mir unerfindlichen Gründen nicht über die Grails-Download-Page erreichbar ist.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;grails upgrade&lt;/span&gt;&lt;br /&gt;Allerdinge habe ich die Version 1.0.4 installiert und meine Anwendung habe ich mit Versionb 1.0.3, gebaut. Also beschwert Grails sich, dass die Versionen nicht zusammenpassen. Aber mit &lt;span style="font-style: italic;"&gt;grails upgrade&lt;/span&gt; ist das Problem schnell behoben. Schnell noch bestätigen, dass Grails einige Dateien ersetzen darf - business as usual. Denkste! Grails hat mein &lt;span style="font-style: italic;"&gt;build.xml&lt;/span&gt; überschrieben mit der völlig sinnfreien Vorlage. Argh! Naja, nicht so wild. Mein Original-Build-File habe ich ja in meinem Subversion-Repository. Also muss ich noch schnell meinen Lieblings-Subversion-Client installieren: Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eclipse und dann nochmal&lt;/span&gt;&lt;br /&gt;Ecllipse kann ich über die Download-Features von Ubuntu elegant installieren. Als ich auf mein SVN-Repository zugreifen möchte, stelle ich fest, dass von Eclipse leider nicht die aktuellste Version installiert wurde. Also lade ich die manuell von &lt;span style="font-style: italic;"&gt;eclipse.org&lt;/span&gt; herunter. Durch die vorherige automatischen Installation weiß ich jetzt immerhin, wohin ich Eclipse installieren sollte. Also lösche ich die alte Installation von Hand (&lt;span style="font-style: italic;"&gt;rm -r&lt;/span&gt;), wechsle ins neue Eclipse-Verzeichnis und starte &lt;span style="font-style: italic;"&gt;eclipse&lt;/span&gt;. Und belohnt werde ich mit einer Fehlermeldung, dass die Installation nicht korrekt ist. Die jetzt folgende Odysee durch das Internet erspare ich dem Leser lieber. Das Ergebnis wird dadurch nicht weniger peinlich für mich. Die Original-Eclipse-Installation hat in einem bin-Verzeichnis ein Shell-Script namens &lt;span style="font-style: italic;"&gt;eclipse&lt;/span&gt; angelegt und das aktuelle Verzeichnis befindet sich unter Linux per Default nicht im Path. Also habe ich weiterhin das alte Shell-Skript aufgerufen. Nach Löschen des Shell-Skripts und Aufruf durch &lt;span style="font-style: italic;"&gt;./eclipse&lt;/span&gt; startet Eclipse schließlich.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Java-VM&lt;/span&gt;&lt;br /&gt;Beim Start-Bildschirm warnt Eclipse mich, dass &lt;span style="font-style: italic;"&gt;GCJ&lt;/span&gt; als Java-VM konfiguriert ist und Eclipse auf dieser VM nicht getestet wurde. Keine Ahnung, was &lt;span style="font-style: italic;"&gt;GCJ&lt;/span&gt; ist, aber es wird schon klappen. Leider nicht sehr weit. Sobald ich versuche, das Update-Center in Eclipse zu öffnen, schmiert Eclipse ohne weiteres Feedback ab. &lt;span style="font-style: italic;"&gt;java&lt;/span&gt; in der Shell zeigt, dass &lt;span style="font-style: italic;"&gt;GCJ&lt;/span&gt; ein bei Ubuntu mitgeliefertes GNU-Java ist. Ich hatte Java 6 von SUN ja bereits installiert. Also schnell noch das passende bin-Verzeichnis in etc/environment zum PATH hinzugefügt und schon läuft auch das Update-Center wieder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Subversive&lt;/span&gt;&lt;br /&gt;Beim Versuch, Subversive als Subversion-Client in Eclipse zu installieren, fällt mir wieder ein, dass Eclipse mein Lieblings-CVS-Client ist. Daraus gleich zu folgern, dass es auch mein Lieblings-SVN-Client ist, war vielleicht etwas voreilig. Jetzt fällt mir wieder ein, wie grauenvoll die Installation von Subversive ist. Ich gehe auf die Installation-Webseite zu dem Subversive-Plugin. Dort steht Schritt für Schritt, was man tun muss. Leider sehr umständlich. So steht dort z.B. nicht, wie due URL für die Update-Site steht. Stattdessen steht dort die URL eine Webseite, auf der die URL für die Update-Site steht. Also muss man erst auf diese Seite und die URL dort suchen. Umständlich. Und wenn man dann das Plugin installiert hat, läuft es nicht, weil andere Plugins fehlen (Connectors, Integrators, ???). Und die finden sich nochmal auf einer anderen Seite. Viel komplizierter geht es wohl nicht. Am Ende bekomme ich das Zeug doch noch zum Laufen - ich habe einfach pauschal alles installiert, was Subversion im Namen hatte (außer das, was explizit Windows im Namen hat). Endlich kann ich mein altes Build-File aus dem Subversion-Repository restaurieren.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Grails in Eclipse&lt;/span&gt;&lt;br /&gt;Jetzt öffne ich ein Grails-Projekt, das ich unter Windows erstellt habe. GRAILS_HOME zeigt auf einen Ort auf der Windows-Partition. Das muss ich in Eclipse umbiegen. Kein Problem, vor allem weil Grails so nett ist, mir beim Starten zu sagen, wo es installiert ist - das hat Java nicht von sich aus getan. Das musste ich erst auf der Platte suchen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deploy&lt;/span&gt;&lt;br /&gt;Und jetzt kann ich aus Eclipse über das Build-File meine Anwendung neu deployen. Hurra, geschafft.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fazit&lt;/span&gt;&lt;br /&gt;Ich war davon ausgegangen, dass ich mit Ubuntu eher im Bereich Multimedia/Office Probleme bekomme als im Bereich Entwicklung. Aber das war weit gefehlt. Die meisten und schwierigsten Probleme hatte ich im Bereich Entwicklung. Aber sie waren auch noch zu meistern.&lt;br /&gt;Ich werde mir aber mal ernsthaft überlegen, ob ich wirklich Subversion verwenden möchte. Gefühlt hatte ich mit CVS weniger Probleme (nicht nur, was den Client angeht). Oder ich gucke mir gleich mal was Innovativeres an, wie z.B. &lt;a href="http://bazaar-vcs.org/"&gt;Bazaar&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6465614966850087322?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6465614966850087322/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6465614966850087322&amp;isPopup=true' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6465614966850087322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6465614966850087322'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_30.html' title='Ubuntu für No-Details-Charaktere: Schritt 5 (Entwicklung)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7159510907563394525</id><published>2008-12-28T21:16:00.002+01:00</published><updated>2008-12-28T21:29:10.376+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 4 (multimedial)</title><content type='html'>Heute wird es multimedial.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fotos&lt;/span&gt;&lt;br /&gt;Zuerst möchte ich meine Fotos auch unter Ubuntu sehen und bearbeiten. Unter Windows habe ich Picasa2 benutzt. Das ist gut und das gibt es auch für Linux. Allerdings bringt Ubuntu bereits F-Spot Fotoverwaltung mit. Das sieht auf den ersten Blick gut genug aus für mich. Ich kann einfach die bisherigen Foto-Ordner importieren. Einfache Bildbearbeitungsfunktionen sind in F-Spot integriert, für alles kompliziertere wird Gimp gestartet. Ich versuche mal mit F-Spot mein Glück. Mal sehen, wie es sich in der Zukunft bewährt,&lt;br /&gt;&lt;br /&gt;Importieren der Fotos von der Kamera ist auf jeden Fall genauso einfach wie unter Windows. Kamera mit dem USB-Kabel mit dem Rechner verbinden und schon kann ich die Bilder auf Tastendruck importieren.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Musik&lt;/span&gt;&lt;br /&gt;Bei Musik ist es das gleiche Spiel. iTunes gibt es auch für Linux. Bei Ubuntu ist Rythmbox dabei. Auch hier kann ich einfach die existierenden Ordner mit Musik importieren. Das Programm sieht iTunes sehr ähnlich. Ich gebe auch Rythmbox eine Chance. Außer Musik abspielen mache ich fast nix. Also sollte es ausreichen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Flackernde Videos&lt;/span&gt;&lt;br /&gt;Videos sind etwas komplizierter. Der Ubuntu-Player Totem flackert bei der Videowiedergabe unerträglich. Kurze Suche im Internet ergibt: Die Kombination aus ATI-Grafikchip, Totem-Videoplayer und den coolen Grafikeffekten von  compiz führt zu dem beschriebenen Flackern. Ich könnte die Grafikeffekte von compiz ausschalten. Wie &lt;a href="http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_27.html"&gt;ich bereits beschrieben&lt;/a&gt; habe, kommt das aber auf keinen Fall in Frage. Also ein neuer Videoplayer. mPlayer hat das Problem nicht, wenn man X11 als Ausgabegerät auswählt. Leider wird das Video dann immer in Originalgröße gezeigt und das ist i.d.R. zu klein. Skalieren lässt sich das Bild nicht. Gerüchteweise soll eine gepatchte Version des mPlayers das Problem lösen. Ich und gepatcht? Lieber nicht. Aber der VLC-Player soll es richten. Tut er auch, wenn man als Ausgabegerät X11 anwählt. Sieht soweit auch OK aus.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fazit für heute&lt;/span&gt;&lt;br /&gt;Bis auf den Stolperstein mit dem Video-Flackern also alles ganz easy im Bereich Multimedia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7159510907563394525?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7159510907563394525/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7159510907563394525&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7159510907563394525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7159510907563394525'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_28.html' title='Ubuntu für No-Details-Charaktere: Schritt 4 (multimedial)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-155009578776168043</id><published>2008-12-27T22:27:00.002+01:00</published><updated>2008-12-27T22:35:44.835+01:00</updated><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 3 (notwendiger Unsinn :-)</title><content type='html'>Nachdem Ubuntu in Schritt 2 meines Selbstversuchs seinen Job als Bürocomputer sehr gut gemeistert hat, lasse ich jetzt mal den Nerd in mir raus. Andreas hat mir auf seinem Notebook coole Gimmicks gezeigt. Die will ich auch.&lt;br /&gt;Die Komponenten dazu (compiz) sind bereits auf Ubuntu mit installiert. Anscheinend fehlt aber das grafische Konfigurationsprogramm. Das hat man mit dem Paketmanager schnell nachgeladen und installiert. Danach kann man unzählige Effekte konfigurieren.&lt;br /&gt;Ich entscheide mich dafür, dass neue Fenster hineingebeamt werden. Schließe ich ein Fenster, wird das verbrannt und die Fenster schwingen beim Verschieben hin und her. Außerdem kleben sie am Bildschirmrand, wenn man sie dort ablegt. Nicht zuletzt kann ich jetzt die virtuellen Desktops / Workspaces auf einen Zylinder legen und dreidimensional zwischen ihnen umschalten.&lt;br /&gt;Das hat mind. Mac-Niveau, vielleicht sogar noch besser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-155009578776168043?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/155009578776168043/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=155009578776168043&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/155009578776168043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/155009578776168043'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_27.html' title='Ubuntu für No-Details-Charaktere: Schritt 3 (notwendiger Unsinn :-)'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1266988337735659875</id><published>2008-12-22T10:56:00.015+01:00</published><updated>2008-12-22T17:15:20.592+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 2</title><content type='html'>Heute habe ich meinen ersten echten Arbeitstag unter Ubuntu verbracht. Ich habe erstmal mit dem nackt installierten System begonnen und will die benötigten Programme immer erst installieren, wenn ich sie benötige.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;E-Mails&lt;/span&gt;&lt;br /&gt;Zuerst beginne ich mit der Bearbeitung meiner E-Mails. Das läuft wie zu erwarten ohne Probleme. Google-Mail für Privatkram und der Webmail-Client unter Firefox funktioniert natürlich auch unter Linux - meiner Einbildung nach etwas schneller als unter Windows.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spesenabrechnung: Excel und Drucken&lt;/span&gt;&lt;br /&gt;Dann kommt die Spesenabrechnung. Spesenabrechnung läuft bei uns über Excel. Ich kann von Ubuntu aus einfach auf alle Dokumente zugreifen, die ich auf der Windows-NTFS-Partition liegen habe. Beim Finden des Ordners mit den bereits existierenden Spesen-Excel-Dateien hilft mir der "File Browser". Die dort eingebaute Suchfunktion kommt mir schneller und einfacher vor als das, was Vista so zu bieten hat. Die entsprechenden Excel-Sheets lassen sich inkl. Macros problemlos mit Open-Office öffnen und bearbeiten.&lt;br /&gt;Aber jetzt muss ich die Spesenabrechnung ausdrucken. Wie installiert man unter Linux Druckertreiber und woher bekommt man die? Also beginne ich mit der Suche im Internet. Nebenbei stecke ich schon mal das USB-Druckerkabel ins Notebook. Und noch bevor ich mir ersthaft die Ergebnisse meiner Google-Suche ansehen kann, meldet das System, dass der Treiber für meinen Canon IP4300 installiert wurde und ich jetzt drucken kann. Und das kann ich tatsächlich. Respekt. Unter Windows musste ich die Treiber immer manuell installieren.&lt;br /&gt;Äh, allerdings fehlt unten und oben etwas auf dem Ausdruck. Anscheinend wird beim Drucken nicht berücksichtigt, dass der Drucker nicht das ganze Blatt vollständig bedrucken kann. Aber auch das ist schnell beseitigt. In Open-Office entsprechende Ränder definiert und gut. Zwischendurch ist das Papier im Drucker leer und ich bekomme auf dem Rechner keinen Hinweis, wie ich es unter Windows gewohnt war. Ist das jetzt besser oder schlechter? Keine Ahnung. Der Drucker steht direkt neben meinem Rechner. Ich sehe auch so, dass kein Papier mehr drin ist.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Schulungsorganisation: PDF-Viewer&lt;/span&gt;&lt;br /&gt;Jetzt muss ich eine Schulung organisieren. Der Trainer hat die Agenda per PDF geschickt. Muss ich jetzt einen Acrobat Reader installieren? Nö! Es gibt einen "Dokumentenbetrachter". Der zeigt das Dokument einwandfrei an. Nur startet das Ding sehr schnell und braucht nicht die Startzeiten eines halben Betriebssystems wie der Acrobat Reader. Der Rest an dieser Aufgabe ist E-Mail und Wiki - also wieder Firefox als Betriebssystem im Betriebssystem im Einsatz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Angebot: FTP und Word&lt;/span&gt;&lt;br /&gt;Jetzt muss ich ein Angebot erstellen. Dazu hole ich mir ein ähnliches Angebot von unserem Fileserver. Dazu brauche ich Secure-FTP. Hm, im Ubuntu-Menü kann ich nichts finden. Muss ich jetzt was im Internet suchen? Ich tippe einfach mal in den "File Browser" in die Adresszeile die URL mit &lt;span style="font-style: italic;"&gt;sftp&lt;/span&gt; voran. Und schon bin ich drin. Alles ist nahtlos in den "File Browser" integriert. Ich kann die Dokumente sogar direkt mit Doppelclick vom Server aus öffnen und bearbeiten, ohne dass ich die Dateien nach dem Bearbeiten wieder manuell auf den Server schieben muss. Fast schon ein wenig unheimlich...&lt;br /&gt;Das Angebot ist in Word geschrieben. Wieder erledigt Open-Office den Job einwandfrei. Natürlich schicke ich dem Kunden das Angebot nicht als Word-Dokument. Er bekommt ein PDF. Dazu muss ich nicht den Umweg über Free-PDF gehen, dass sich unter Windows als Drucker tarnt. Ich kann direkt aus Open-Office das PDF-Dokument erstellen. Das geht schneller und einfacher als mit FreePDF unter Windows.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Konferenz-Präsentation: Power-Point&lt;/span&gt;&lt;br /&gt;Jetzt muss ich noch meinen Folien für die OOP 2009 den letzten Schliff geben und die Notizen ausdrucken. Doppelclick auf die Power-Point-Präsentation öffnet mal wieder Open-Office. Auf einigen Folien scheint mir der eine oder andere Text um ein paar Pixel verschoben zu sein. Das schadet aber nicht weiter. Ansonsten werden alle Folien korrekt angezeigt und auch die Hyperlinks zwischen einzelnen Folien sind noch intakt. Also drucke ich schnell die Notizen und beende auch diesen Arbeitsschritt ohne große Zwischenfälle.&lt;br /&gt;&lt;br /&gt;Inzwischen habe ich ziemlich viele Fenster geöffnet. Die virtuellen Desktops schaffen aber schnell wieder Übersicht.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aufwandsschätzung: Word und diesmal FTP mit Umlauten&lt;/span&gt;&lt;br /&gt;Als nächstes soll ich mir ein Fachkonzept ansehen und eine Hausnummer für den Realisierungsaufwand nennen. Die Dokumente hat ein Kollege auf unseren Fileserver geladen. Mit dem "File Browser" komme ich da ja ohne Probleme dran. Naja fast. Einige Dateinamen enthalten Umlaute. Die werden bei mir nicht korrekt dargestellt und die Dateien lassen sich mit diesem Namen auch nicht vom Server auf meinen Rechner kopieren. Ich kann mir für den Moment damit behelfen, dass ich die Dateien zuerst mit dem "File Browser" auf dem Server umbenenne und dann kopiere. Das Problem mit den Umlauten hatte ich schon mal bei einem Kollegen gesehen, der einen Mac verwendet. Das legt den Verdacht nahe, dass nicht Ubuntu das Problem ist, sondern die Windows-Rechner die Dateien eigenartig anlegen. Diese These wird auch dadurch gestützt, dass der Server ebenfalls ein Linux-Rechner ist. Und Linux-Rechner untereinander sollten sich ja verstehen. Ich frage mal bei den Admins nach.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abschluss für heute&lt;/span&gt;&lt;br /&gt;Und zu guter letzt habe ich dann diesen Blogeintrag geschrieben - mit Firefox unter Ubuntu. Natürlich auch kein Problem.&lt;br /&gt;&lt;br /&gt;Fazit: Mein erster kompletter Arbeitstag unter Ubuntu war erfolgreich. Natürlich kann man das alles (virtuelle Desktiops, in den Explorer integriertes FTP, schnellen PDF-Viewer etc.) auch unter Windows haben, aber man muss Unmengen Zeug installieren und konfigurieren. Und persönlich habe ich das Gefühl, dass dieses ganze Installieren von Hilfstools mitverantwortlich dafür ist, dass bei mir jede Windows-Installation nach 1,5 bis 2 Jahren lähmend langsam wird. Aber natürlich kann ich jetzt noch nicht behaupten, dass sowas unter Ubuntu nicht passiert - nach nur einem Tag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1266988337735659875?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1266988337735659875/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1266988337735659875&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1266988337735659875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1266988337735659875'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt_22.html' title='Ubuntu für No-Details-Charaktere: Schritt 2'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8843044664373671805</id><published>2008-12-21T22:11:00.003+01:00</published><updated>2008-12-21T22:20:25.331+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Ubuntu für No-Details-Charaktere: Schritt 1</title><content type='html'>Ich liebäugele schon lange mit Linux, habe mich da aber noch nicht so richtig rangetraut. Ich bin eher das Typ für das große Ganze und scheue mich vor den Details - keine 10 Pferde würden mich dazu kriegen, einen Kernel zu compilieren.&lt;br /&gt;&lt;br /&gt;Vor ca. einem Jahr hatte ich einen erfolglosen Versuch auf einem etwas älteren   Notebook - ich konnte keine WLAN-Verbindung herstellen.&lt;br /&gt;&lt;br /&gt;Jetzt hat mich ein Kollege erneut angefixt. Und ein anderer Kollege hat mich herausgefordert, weil er meinte, meine Detailignoranz wäre mit Linux inkomaptibel.&lt;br /&gt;Also starte ich einen zweiten Versuch. Installiert habe ich Ubuntu von Windows aus mit &lt;a href="http://wubi.sourceforge.net/"&gt;Wubi&lt;/a&gt;. Super einfach. Da muss man eigentlich nur Username und Passwort für den ersten Ubuntu-Account wählen und nach der automatischen Installation ist man direkt arbeitsfähig: Partition wird automatisch eingerichtet, man kann von Ubuntu auf sein Windows-Laufwerk zugreifen, Firefox, Open-Office etc. sind gleich installiert und das WLAN wird automatisch erkannt und man muss nur noch den Key für die Verschlüsselung eingeben - einfacher als unter Windows Vista. Und Ubuntu startet schneller als Vista. Bisher bin ich ganz angetan.&lt;br /&gt;&lt;br /&gt;Jetzt werde ich versuchen, schrittweise immer mehr Anteile meiner Arbeit am Rechner unter Ubuntu zu erledigen. Mal sehen, wie weit ich komme. Ich werde weiter berichten.&lt;br /&gt;&lt;br /&gt;Mein Rechner ist übrigens ein Lenovo Thinkpad T60.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8843044664373671805?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8843044664373671805/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8843044664373671805&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8843044664373671805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8843044664373671805'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/ubuntu-fr-no-details-charaktere-schritt.html' title='Ubuntu für No-Details-Charaktere: Schritt 1'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7124953262439469413</id><published>2008-12-07T21:19:00.002+01:00</published><updated>2008-12-07T21:25:18.407+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Rezension zu: Refactorings in großen Softwareprojekten</title><content type='html'>&lt;a href="http://www.cincomsmalltalk.com/userblogs/ralph/blogView?showComments=true&amp;amp;printTitle=Emergent_design,_and_refactoring_in_large_projects&amp;amp;entry=3405976049"&gt;Ralph Johnson hat die englische Übersetzung des Refactoring-Buches von Martin und mir gelesen und findet es gut&lt;/a&gt;. Da fühle ich mich jetzt ja schon ein wenig geadelt...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/512A2RD1DBL._SL500_AA240_.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 240px;" src="http://ecx.images-amazon.com/images/I/512A2RD1DBL._SL500_AA240_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/51TKQJ4WQ3L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 240px;" src="http://ecx.images-amazon.com/images/I/51TKQJ4WQ3L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/Users/roock/AppData/Local/Temp/moz-screenshot-2.jpg" alt="" /&gt;&lt;img src="file:///C:/Users/roock/AppData/Local/Temp/moz-screenshot-3.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7124953262439469413?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7124953262439469413/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7124953262439469413&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7124953262439469413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7124953262439469413'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/rezension-zu-refactorings-in-groen.html' title='Rezension zu: Refactorings in großen Softwareprojekten'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6494324741344497124</id><published>2008-12-04T14:14:00.000+01:00</published><updated>2008-12-04T14:14:31.598+01:00</updated><title type='text'>Ab in den Hyperraum</title><content type='html'>&lt;div style="MARGIN: 0px auto 10px; TEXT-ALIGN: center"&gt;&lt;a href="http://4.bp.blogspot.com/_-ZMvVpIHl0s/STfXtkXs48I/AAAAAAAAAWY/6sVoRUPm-9o/s1600-h/IMG_1488.jpg"&gt;&lt;img alt="" src="http://4.bp.blogspot.com/_-ZMvVpIHl0s/STfXtkXs48I/AAAAAAAAAWY/6sVoRUPm-9o/s320/IMG_1488.jpg" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;IBM hat in mein Notebook anscheinend viel fortschrittlichere Technologie eingebaut, als ich bisher dachte. Vor ein paar Tagen veränderte sich der Bildschirminhalt wie oben dargestellt. In der Mitte ist das Bild noch scharf an den Rändern wird es zunehmend unschärfer. Und wer sich mit Star*-Filmen (Star-Wars, Star-Treck, Star-Gate etc.) auskennt, weiß: So sieht die Welt aus, wenn man in den Hyperraum eintritt bzw. auf Warp-Geschwindigkeit geht.&lt;br /&gt;Ich hoffe, mein Rechner hatte dort keinen Kontakt mit den Bösen (Sith, Borg, Replikanten) und hat sich am Ende noch einen Alien-Virus eingefangen.&lt;div style='clear:both; text-align:CENTER'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6494324741344497124?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6494324741344497124/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6494324741344497124&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6494324741344497124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6494324741344497124'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/ab-in-den-hyperraum.html' title='Ab in den Hyperraum'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ZMvVpIHl0s/STfXtkXs48I/AAAAAAAAAWY/6sVoRUPm-9o/s72-c/IMG_1488.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8150769655834428615</id><published>2008-12-02T13:52:00.002+01:00</published><updated>2008-12-02T16:08:30.316+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Stories schneiden</title><content type='html'>Bernd Schiffer hat in seinem &lt;a href="http://berndschiffer.blogspot.com/2008/11/horziontaler-und-vertikaler-schnitt-von.html"&gt;Blog&lt;/a&gt; ausführlich und gut beschrieben, warum und wie man Stories zerschneiden sollte, um sie klein zu kriegen.&lt;br /&gt;Dazu habe ich noch eine Ergänzung, die &lt;a href="http://www.xpday.net/Xpday2007/session/DimensionalPlanning.html"&gt;Straßenmetapher beim Dimensional Planning&lt;/a&gt;. Bei diesem Ansatz unterscheidet man die "Schönheit von Stories" und verwendet eine Straßenmetapher (Diese Art des Kleinschneidens ist in Bernds Ausführungen bereits implizit enthalten.) Stories können in vier Ausführungen realisiert werden:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Feldweg&lt;/span&gt;: minimal billige Lösung, die irgendwie funktioniert. Beispiel: Ich will eine Rechnung drucken. Dazu setze ich SQL direkt in der mySQL-Konsole ab. Die ermittelten Daten übertrage ich von Hand in MS-Word und drucke die Rechnung von dort aus.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Kopfsteinpflaster-Straße&lt;/span&gt;: sehr einfache Lösung, die schon Vereinfachung/Mehrnutzen bringt. Beispiel: Die Rechnung wird automatisch gedruckt, enthält aber nur die gesetzlich vorgeschriebenen Daten wie Kunde, Gesamtbetrag und MWSt.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Alphaltierte Straße&lt;/span&gt;: gute Standardlösung. Beispiel: Die Rechnung bekommt noch die Positionen dazu.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Autobahn&lt;/span&gt;: Top-Lösung. Beispiel: Der Kunde kann seine Rechnung personalisieren.&lt;/li&gt;&lt;/ul&gt;Diese Metapher kann man zum einen gut dazu verwenden, um mit dem Product Owner auszuhandeln, wieviel überhaupt notwendig ist. Das kann die Abschätzung des Product Backlogs vereinfachen.&lt;br /&gt;Und dann kann man diese Ausbaustufen auch zeitlich betrachten (auch innerhalb eines Sprints). Zuerst baut man den Feldweg und erweitert ihn dann in Richtung Kopfsteinpflaster-Straße etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8150769655834428615?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8150769655834428615/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8150769655834428615&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8150769655834428615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8150769655834428615'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/stories-schneiden.html' title='Stories schneiden'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7312918760353289045</id><published>2008-12-01T22:57:00.001+01:00</published><updated>2008-12-01T22:58:45.164+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Studie zu Projektmanagement</title><content type='html'>Wissenschaftliche Untersuchungen sollte man unterstützen. Es nützt uns allen, wenn wir besser verstehen, warum welche Dinge (nicht) funktionieren.&lt;br /&gt;&lt;a href="http://www.oose.de/pm_studie.htm?"&gt;Also bitte mitmachen.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7312918760353289045?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7312918760353289045/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7312918760353289045&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7312918760353289045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7312918760353289045'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/12/studie-zu-projektmanagement.html' title='Studie zu Projektmanagement'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5666055010186406415</id><published>2008-11-25T22:08:00.001+01:00</published><updated>2008-11-25T22:09:49.092+01:00</updated><title type='text'>Blog-Einträge jetzt bewertbar</title><content type='html'>Die Einträge in diesem Blog kann man jetzt bewerten - jeweils unten im Blog-Eintrag. Das ganze ist experimentell. Mal sehen, was passiert...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5666055010186406415?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5666055010186406415/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5666055010186406415&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5666055010186406415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5666055010186406415'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/blog-eintrge-jetzt-bewertbar.html' title='Blog-Einträge jetzt bewertbar'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-271715979933396270</id><published>2008-11-25T15:39:00.003+01:00</published><updated>2008-11-25T16:02:03.418+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Pull und Kanban - über die Entwicklung hinaus</title><content type='html'>Das &lt;span style="font-style: italic;"&gt;Pull&lt;/span&gt;-Prinzip stammt aus dem Lean-Production und ist ein (mehr oder weniger expliziter Aspekt) agiler Softwareentwicklung. Die Idee ist, dass man nicht Arbeit in eine Ressource (z.B. Team) hineindrückt (&lt;span style="font-style: italic;"&gt;push&lt;/span&gt;), sondern die Ressource sich selbst neue Arbeit holt (&lt;span style="font-style: italic;"&gt;pull&lt;/span&gt;), wenn sie keine mehr hat. So wird Überlastung der Ressource vermieden.&lt;br /&gt;&lt;br /&gt;In Scrum holt sich das Team im Sprint-Planning soviel Arbeit ab, wie es meint, im Sprint realisieren zu können - auch wenn der Product-Owner gerne mehr realisiert haben möchte. Er darf nicht mehr Arbeit in die Sprint drücken. Das Team wendet also Pull an.&lt;br /&gt;&lt;br /&gt;Wenn man das Pull-Prinzip weiterdenkt, muss man mind. die Prozesse nach der Entwicklung mit einbeziehen (&lt;span style="font-style: italic;"&gt;upstream processes&lt;/span&gt;). Faktisch findet in vielen Organisationen nach dem Sprint noch abschließende Qualitätssicherung und Überführung in den Betrieb statt. Dort sollte man natürlich auch nach dem Pull-Prinzip verfahren. Das Team drückt also nicht mit einer festen Live-Deadline die Ergebnisse des Sprints in die Qualitätssicherung und den Betrieb. Stattdessen holen sich Qualitätssicherung und Betrieb ihre Arbeiten, wenn ihre Auslastung es zulässt.&lt;br /&gt;&lt;br /&gt;Wie setzt man das konkret um? Ganz Basic-Lean gedacht würde sich der Product Owner an das letzte Element der Wertschöpfungskette wenden und seinen Feature-Wunsch äußern, z.B. "Ich möchte, dass ich die Kontakthistorie von Kunden einsehen kann." Diesen Auftrag würde er auf einen Zettel schreiben und an den Betrieb geben.&lt;br /&gt;&lt;br /&gt;Der Betrieb würde daraus einen (Sub-)Auftragszettel an die Qualitätssicherung formulieren: "Ich möchte eine qualitätsgesicherte Funktionalität haben, die den Anwendern erlaubt, die Kontakthistorie von Kunden einzusehen. Außerdem muss die Funktionalität geclustert auf einem Tomcat mit mySQL betrieben werden können."&lt;br /&gt;&lt;br /&gt;Die Qualitätssicherung macht daraus einen Auftragszettel an das Entwicklungsteam: "Ich möchte eine Funktionalität haben, die den Anwendern erlaubt, die Kontakthistorie von Kunden einzusehen. Außerdem muss die Funktionalität geclustert auf einem Tomcat mit mySQL betrieben werden können. Die ganze Funktionalität muss soweit möglich mit FIT akzeptanzgetestet sein und es muss Beschreibungen geben, was noch manuell zu testen ist."&lt;br /&gt;&lt;br /&gt;Dann beginnt das Entwicklungsteam, diesen Arbeitsauftrag abzuarbeiten. Wenn es fertig ist, liefert es die Systemfunktion an die Qualitätssicherung zusammen mit dem zugehörigen Auftragszettel. Die Qualitätssicherung verfährt entsprechend an den Betrieb und dieser an den Kunden.&lt;br /&gt;&lt;br /&gt;Der ganze Arbeitsfluss wird also über Auftragszettel gesteuert. Diese Auftragszettel heißen im Lean-Production &lt;span style="font-style: italic;"&gt;Kanban&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Mit den Auftragszetteln wie beschrieben in der Softwareentwicklung vorzugehen, ist i.d.R. unnötig teuer. Es wird zu viele Missverständnisse geben. Viel besser ist das persönliche Gespräch. Also wendet sich der Product Owner direkt an das Team und erläuert, was er benötigt. Was uns dann der ganze Kanban-Ausflug bringt? Bei diesem Gespräch (&lt;span style="font-style: italic;"&gt;Sprint Planning&lt;/span&gt;) müssen Qualitätssicherung und Betrieb einbezogen werden. Man faltet den Prozess mit den Auftragszetteln zusammen, um schneller zu sein. Die Beteiligten bleiben aber dieselben!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-271715979933396270?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/271715979933396270/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=271715979933396270&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/271715979933396270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/271715979933396270'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/pull-und-kanban-ber-die-entwicklung.html' title='Pull und Kanban - über die Entwicklung hinaus'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1601369597334202290</id><published>2008-11-24T11:20:00.003+01:00</published><updated>2008-11-26T09:31:56.538+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><title type='text'>Direkte Kommunikation in Konfliktsituationen</title><content type='html'>Es ist eigentlich ein alter Hut: Wenn ich ein Problem/Konflikt mit jemandem habe, versuche ich das direkt mit dem betroffenen zu klären und belästige damit nicht meinen oder seinen Vorgesetzten. Das stieht dem Vorgesetzten die Zeit und führt häufig zu noch größeren Problemen.&lt;br /&gt;Quint Studer hat es in einem &lt;a href="http://quintsblog.wordpress.com/2008/11/06/eliminating-he-said-she-said/"&gt;Blogeintrag&lt;/a&gt; sehr schön auf den Punkt gebracht: "If an employee at  my organization is upset with another employee, who do they tell? If the answer is HR, or their boss, or that person’s boss – actually, if it’s anything other than the employee they’re upset with – then your culture is at risk of being derailed."&lt;br /&gt;Wenn man dann im direkten Gespräch keine Lösung finden kann, holt man sich natürlich Hilfe - und da können Vorgesetzte dann wieder hilfreich sein.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1601369597334202290?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1601369597334202290/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1601369597334202290&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1601369597334202290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1601369597334202290'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/direkte-kommunikation-in.html' title='Direkte Kommunikation in Konfliktsituationen'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7162535427269097575</id><published>2008-11-24T10:36:00.004+01:00</published><updated>2008-11-24T10:47:32.295+01:00</updated><title type='text'>Pecha Kucha</title><content type='html'>Das Buch "ZEN oder die Kunst der Präsentation", das ich bereits in einem eigenen &lt;a href="http://stefanroock.blogspot.com/2008/11/prsentieren-mit-zen.html"&gt;Blog-Eintrag &lt;/a&gt;beworben habe, hat mich auf eine interessante Präsentationsform aufmerksam gemacht: Pecha Kucha.&lt;br /&gt;Bei Pecha Kucha besteht jede Präsentation aus genau 20 Folien und jede Folie wird genau 20 Sekunden lang angezeigt. Eine Präsentation dauert also genau 6 Minuten und 40 Sekunden.&lt;br /&gt;Mehr Informationen zu Pecha Kucha gibt es auf der zugehörigen &lt;a href="http://www.pecha-kucha.org/"&gt;Web-Site&lt;/a&gt; (oder für &lt;a href="http://pechakucha.de/"&gt;Deutschland&lt;/a&gt;).&lt;br /&gt;Wie so eine Präsentation dann konkret aussieht, kann man sich in &lt;a href="http://www.youtube.com/watch?v=wGaCLWaZLI4&amp;amp;feature=related"&gt;diesem &lt;/a&gt;oder  &lt;a href="http://www.youtube.com/watch?v=9NZOt6BkhUg"&gt;diesem You-Tube-Video ansehen&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7162535427269097575?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7162535427269097575/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7162535427269097575&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7162535427269097575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7162535427269097575'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/pecha-kucha.html' title='Pecha Kucha'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7055689673455486068</id><published>2008-11-24T10:15:00.003+01:00</published><updated>2008-11-24T10:33:42.724+01:00</updated><title type='text'>Präsentieren mit ZEN</title><content type='html'>Ich bin vor einigen Wochen durch Zufall auf das Buch "ZEN oder die Kunst der Präsentation"  von Garr Reynolds gestoßen. Bevor ich es bestellen konnte, bekam ich es auch schon geschenkt, und zwar von einem Konferenzveranstalter. Nach dem Motto: "Guck' mal, vielleicht kannst Du damit die Präsentation bei uns noch besser machen." Nette Idee. Dummerweise kam das Buch erst nach der Abgabefrist für die Folien bei mir an.&lt;br /&gt;Natürlich habe ich das Buch trotzdem gelesen - mit wachsender Begeisterung. Mir war schon länger bewusst, dass die klassische Form der Power-Point-Präsentation häufig suboptimal ist. Daher hatte ich selbst verschiedene Dinge versucht - weniger Text auf den Folien, keine Folien etc. Das schienen mir auch Schritte in die richtige Richtung zu sein. Und in genau diese Richtung geht auch das Buch: weniger Text, keine Bullet-Point-Listen, Vortragender im Vordergrund etc. Aber es deutlich über das hinaus, was ich mir da zusammenexperimentiert habe.&lt;br /&gt;&lt;br /&gt;In diesem Sinne ist es ein sehr gelungenes Buch für multimedial-unterstützet Präsentation (also i.d.R. mit Power-Point oder Keynote). Ich habe in zwei Vorträgen die beschriebenen Ansätze ausprobiert und damit sehr gute Erfahrungen gemacht.&lt;br /&gt;&lt;br /&gt;Gibt es auch einen Haken an der Sache? Klar, gleich mehrere.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Da man viel weniger Text auf den Folien hat, muss man entweder seinen Vortrag sehr gut kennen oder mit Karteikarten arbeiten. Die Folien helfen einem nicht mehr so sehr dabei, sich zu erinnern, was man sagen wollte. Aber eigentlich sollte man seinen Vortrag ja doch schon gut können, oder?&lt;/li&gt;&lt;li&gt;Man muss mehr Zeit in die Vorbereitung stecken. Ich kann einen Vortrag voll mit Bullet-Point-Listen in wenigen Minuten zusammenbasteln. Für Präsentieren mit ZEN brauche ich Stunden. Allerdings: Wenn ich die ganzen Mühen auf mich nehme, um z.B. auf einer Konferenz zu sprechen (Vortrag einreichen, An- und Abreise etc.), sollte ich dann nicht das Maximum aus der Zeit herausholen, die ich habe? Wenn das, was ich zu sagen habe, mitunter 100 Leute oder mehr interessieren soll, sollte ich das Publikum dann mit schlechten Folien quälen, um ein paar Stunden Zeit zu sparen?&lt;/li&gt;&lt;li&gt;Die Folien müssen optisch attraktiv gestaltet werden und das bedeutet für die meisten von uns, dass wir Bilder kaufen müssen. Gemessen an der Zeit für Vorbereitung, Overhead und Vortrag sind die Kosten dafür aber nicht so hoch. Im Buch gibt es Hinweise auf verschiedene Dienste, die Bilder verkaufen.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Auf dem Buch-Cover steht ein Zitat von Seth Godin: "Dieses Buch dürfen Sie keinesfalls kaufen! Denn sobald alle Menschen bessere Präsentationen gestalten, gehen meine in der Masse unter..." Ich glaube, da muss Seth Godin keine zu große Angst haben. Die meisten Leute werden wahrscheinlich durch die o.g. drei Punkte abgeschreckt. Unberechtigt, aber irgendwie auch gut für diejenigen, die sich nicht abschrecken lassen.&lt;br /&gt;&lt;br /&gt;Meine Empfehlung: Wer mit Power-Point/Keynote präsentieren will oder muss, sollte dieses Buch lesen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7055689673455486068?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7055689673455486068/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7055689673455486068&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7055689673455486068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7055689673455486068'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/prsentieren-mit-zen.html' title='Präsentieren mit ZEN'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5573551502108556087</id><published>2008-11-20T12:40:00.003+01:00</published><updated>2008-11-20T12:57:52.695+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Wann auf TDD verzichten?</title><content type='html'>Gibt es eigentlich Situationen, in denen man nicht testgetrieben arbeiten sollte? Mir fallen drei Stück ein.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ich exploriere, ob und wie etwas funktioniert (z.B. eine neue Technologie). &lt;/li&gt;&lt;li&gt;Es gibt ein definitives Datum in der nahen Zukunft, ab dem das System nicht mehr weiterentwickelt und irgendwann stillgelegt wird. &lt;/li&gt;&lt;li&gt;Wir haben eine Startup-Situation, in der wir eine Idee sehr schnell am Markt testen wollen.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zu Punkt 1: Exploration&lt;/span&gt;&lt;br /&gt;Charakteristisch ist, dass der Code ständig massiv umgebaut wird. Jedesmal Tests anpassen zu müssen, kann sehr aufwändig sein. Mitunter ist man schneller, wenn man dann ganz auf das Testen verzichtet. Man muss dann eben auch nur den Mumm haben, nach der Exploration den ganzen ungetesteten Code wegzuwerfen und vernünftig neu zu schreiben.&lt;br /&gt;Natürlich gibt es bei der Exploration auch Situationen, in denen Tests helfen. Das ist vor allem dann der Fall, wenn man ein neues API ausprobiert. Dann ist der Unit- oder FIT-Test häufig ein angenehm leichtgewichtiger Client für den Test.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zu Punkt 2: Stilllegung&lt;/span&gt;&lt;br /&gt;Wenn das System nicht mehr weiterentwickelt wird, gibt es auch keinen Grund, Aufwand in die Renovierung des Legacy-Codes zu stecken. Allerdings muss man sich auch sicher sein, dass die Stilllegung auch kommt. Viel zu häufig wird es nicht präziser als "das System läuft bestimmt nicht mehr so lange". Was von solchen Prognosen zu halten ist, wissen wir spätestens nach dem Jahr-2000-Problem: Die ursprünglichen Entwickler der Systeme haben auch gedacht, dass ihre Systeme bestimmt nicht so lange laufen. Man muss sich also wirklich, wirklich sicher sein!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zu Punkt 3: Startup&lt;/span&gt;&lt;br /&gt;Bei Startups ist charakteristisch, dass ein schneller Markteintritt essenziell ist. Wenn es gut läuft, verdient man nach dem Markteintritt soviel Geld, dass man davon das System neu und vernünftig getestet nochmal schreiben kann. Wenn man also schneller an dem Markt kommt, wenn man die Tests weglässt, ist das ein valides Argument, auf TDD zu verzichten.&lt;br /&gt;Natürlich gibt es irgendwann eine kritische Masse, ab der man bei der Entwicklung mit Tests schneller ist als ohne. Aber wo liegt diese Grenze? Ich hätte sie aus dem Bauch heraus bei 20-50 Personentagen Programmieraufwand verortet.&lt;br /&gt;Also prüfen wir mal diese Hypothese. Ich habe &lt;a href="http://www.clipboard2web.com"&gt;Clipboard2Web&lt;/a&gt; vor diesem Hintergrund ohne Tests programmiert. Und bis zum ersten Release hat sich das nach meiner Einschätzung auch gelohnt. Jetzt ist aber der Zeitpunkt gekommen, ab dem ich mit TDD schneller vorankomme. Wieviel Aufwand habe ich bis zu diesem Punkt investiert? 12 Personen&lt;span style="font-weight: bold;"&gt;stunden&lt;/span&gt;! Ergo: Vergesst das mit dem Weglassen der Tests in Startup-Situationen. Es lohnt sich nicht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5573551502108556087?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5573551502108556087/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5573551502108556087&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5573551502108556087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5573551502108556087'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/wann-auf-tdd-verzichten.html' title='Wann auf TDD verzichten?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6484686590987331115</id><published>2008-11-13T16:36:00.003+01:00</published><updated>2008-11-13T16:39:57.910+01:00</updated><title type='text'>stilversprechend.de</title><content type='html'>Was kommt eigentlich dabei heraus, wenn der eigene Bruder erst Gemanistik studiert und dann in selben IT-Unternehmen arbeitet, wie man selbst? &lt;a href="http://www.stilversprechend.de"&gt;stilversprechend.de&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.stilversprechend.de/"&gt;stilversprechend.de&lt;/a&gt; ist ein Internetservice, der die Lesbarkeit von Texten nach verschiedenen Kriterien bewertet. Am Besten mal reingucken und verschiedene Texte ausprobieren. Vielleicht erscheinen die Bewertungskriterien zunächst etwas "platt". Wenn man aber mal ein paar Texte prüfen lässt, stellt man schnell fest: Texte, die man schwierig, langweilig oder sinnlos findet, bekommen tatsächlich schlechte Werte und Texte, die man gut verstehen kann, bekommen meist gute Werte.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6484686590987331115?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6484686590987331115/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6484686590987331115&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6484686590987331115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6484686590987331115'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/stilversprechendde.html' title='stilversprechend.de'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8130152914320933803</id><published>2008-11-11T16:29:00.002+01:00</published><updated>2008-11-11T16:33:08.459+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Stehen, stehen, immer nur stehen?</title><content type='html'>&lt;a href="http://www.evolvingexcellence.com/blog/2008/11/lessons-from-japan---stand-for-action.html"&gt;Hier&lt;/a&gt; ist ein interessanter Blog-Eintrag, in dem beschrieben wird, dass die japanischen Lean-Unternehmen auf das Stehen stehen (was für eine formvollendete Formulierung :-)&lt;br /&gt;Die dort genannten Gründe für das Stehen (bessere Ergonomie, herumlaufen ist wichtig etc.) gelten alle auch für die Softwareentwicklung. Unsinn? Nein! Mein Kumpel Henning hat seit seinem Bandscheibenvorfall einen Tisch, der sich auf Stehhöhe hochfahren lässt. Und daran haben wir auch schon Pair-Programming gemacht und es war auf keinen Fall unangenehmer als dies sitzend zu tun.&lt;br /&gt;Irgendwie haben wir die Idee aber nicht weitergetrieben. Ich habe aber mehr und mehr das Gefühl, dass wir das nochmal tun sollten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8130152914320933803?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8130152914320933803/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8130152914320933803&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8130152914320933803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8130152914320933803'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/stehen-stehen-immer-nur-stehen.html' title='Stehen, stehen, immer nur stehen?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8103492146238131335</id><published>2008-11-11T13:12:00.002+01:00</published><updated>2008-11-11T13:15:25.159+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Artikelserie Perspektivenwechsel in Java-Magazin und auf JAXenter</title><content type='html'>Es gibt eine Artikelserie namens "Perspektivenwechsel" im Java-Magazin, in der ich hin und wieder auch mitschreibe. In der Artikelserie werden unterschiedlichste Themen aufgegriffen, manchmal vielleicht auch etwas provokativ. Mit etwas Verzögerung erscheinen die &lt;a href="http://it-republik.de/jaxenter/artikel/Perspektivenwechsel-1996.html"&gt;Artikel auch online auf JAXenter&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8103492146238131335?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8103492146238131335/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8103492146238131335&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8103492146238131335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8103492146238131335'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/artikelserie-perspektivenwechsel-in.html' title='Artikelserie Perspektivenwechsel in Java-Magazin und auf JAXenter'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2888415381086130387</id><published>2008-11-10T23:23:00.002+01:00</published><updated>2008-11-10T23:24:09.014+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><title type='text'>Toyoto Product System Details</title><content type='html'>Viele kennen die Prinzipien des TPS (Toyota Production System): &lt;a href="http://www.evolvingexcellence.com/blog/2008/10/jke-day-1-toyota-kyushu.html"&gt;Hier&lt;/a&gt; gibt es noch weitere sehr interessante Details dazu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2888415381086130387?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2888415381086130387/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2888415381086130387&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2888415381086130387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2888415381086130387'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/toyoto-product-system-details.html' title='Toyoto Product System Details'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4217514671688548156</id><published>2008-11-10T15:45:00.002+01:00</published><updated>2008-11-10T15:47:21.703+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>One Piece Flow</title><content type='html'>Wir wünschen für die agile Softwareentwicklung One-Piece-Flow. Idealerweise soll immer nur eine Story oder ein MMF in Arbeit sein. Dass One-Piece-Flow dem klassischen Modell (Batchen von Aktivitäten) überlegen ist, zeigt &lt;a href="http://www.team-kompetenz.de/index.php/2008/04/05/one-piece-flow-simulation/"&gt;dieses Video&lt;/a&gt; sehr schön.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4217514671688548156?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4217514671688548156/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4217514671688548156&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4217514671688548156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4217514671688548156'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/one-piece-flow.html' title='One Piece Flow'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8155572927682356724</id><published>2008-11-10T15:26:00.003+01:00</published><updated>2008-11-10T15:28:31.730+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Kundenorientierung und Kommunikation extrem</title><content type='html'>&lt;a href="http://www.evolvingexcellence.com/blog/2008/10/jke-day-2-saishunken-cosmetics---customer-care-trumps-a-factory.html"&gt;absolut lesenswerter Artikel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Und jeder der denkt "bei uns geht sowas nicht", könnte mal dazu denken: "Was muss ich tun, damit sowas bei uns geht?".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8155572927682356724?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8155572927682356724/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8155572927682356724&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8155572927682356724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8155572927682356724'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/kundenorientierung-und-kommunikation.html' title='Kundenorientierung und Kommunikation extrem'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1667083368943434151</id><published>2008-11-08T13:15:00.003+01:00</published><updated>2008-11-08T13:27:04.519+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>XP and Frameworks</title><content type='html'>At the XP2000 conference I had a talk about eXtreme Programming and frameworks. Some people archive things for a really long time. One of them reread my article and asked me a few days ago if I did further research on it. I didn't really do research but I collected some experiences which lead me to some simple conclusions (which didn't changed too between 2000 and now):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Use before reuse&lt;/span&gt;. First you have to use some code successfully and than you can think about generalizing it for reuse. That means that you have to invest effort to refactor application code to framework code. A lot of teams try to avoid this "rework" but in most cases the effect is that the framework becomes bloated and hard to use.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Running application&lt;/span&gt;: You always have to have a running application on top of your framework that proves that the framework is useful. This application may be a demo application but that would restrict the "prove". A real application is much better.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Supporting framework team&lt;/span&gt;: This is the really hard one. When your framework grows larger and supports more than one application team you normally need an own framework team. That is easy part, here is the hard part: The framework team has to have a perspective that the application teams are their &lt;span style="font-style: italic;"&gt;customers&lt;/span&gt; and that they have to listen to the application teams and support them. Most frameworks teams I met had another attitude. They thought that they understand much better how to implement applications than the application developers know and that the application developers are dumb and foolish to a certain degree. That results in the attempt to prescribe how to develop with the framework. And that doesn't work, especially not if you try to support agile teams that should be self organized and empowered.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1667083368943434151?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1667083368943434151/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1667083368943434151&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1667083368943434151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1667083368943434151'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/xp-and-frameworks.html' title='XP and Frameworks'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3114980631939590611</id><published>2008-11-07T15:10:00.001+01:00</published><updated>2008-11-07T15:11:58.161+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Technical Debt</title><content type='html'>&lt;span style="font-family: arial;"&gt;Martin Fowler hat einen &lt;a href="http://martinfowler.com/bliki/EstimatedInterest.html"&gt;Vorschlag&lt;/a&gt; gemacht, wie man Technical Debt "messen" kann. Das ist sicher ein guter Anfang.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3114980631939590611?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3114980631939590611/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3114980631939590611&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3114980631939590611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3114980631939590611'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/technical-debt.html' title='Technical Debt'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8857577750852457375</id><published>2008-11-07T15:07:00.003+01:00</published><updated>2008-11-07T15:10:24.807+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Color Modeling</title><content type='html'>Color Modeling ist die Modellierungstechnik, die Feature-Driven-Development (FDD) vorschlägt - aber nicht verpflichtend macht. Aber auch außerhalb von FDD kann Color Modeling sehr nützlich sein. Ich habe es (in adaptierter Form) in Scrum/XP-Projekten eingesetzt.&lt;br /&gt;Insgesamt finde ich, dass die Technik zu wenig bekannt ist und unterschätzt wird. Daher freut es mich, dass jetzt eine &lt;a href="http://www.hostfrontier.com/index.php/200811029/agile-methodology/domain-modelling-using-color-uml.html"&gt;gute Erläuterung zu Color Modeling mit ein paar Erfahrungswerten &lt;/a&gt;aufgetaucht ist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8857577750852457375?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8857577750852457375/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8857577750852457375&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8857577750852457375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8857577750852457375'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/color-modeling.html' title='Color Modeling'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7677441041474442573</id><published>2008-11-07T13:42:00.001+01:00</published><updated>2008-11-07T13:43:51.258+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>TDD-Einsichten</title><content type='html'>Wer kann glaubwürdiger den Nutzen von TDD vertreten als jemand, der TDD ursprünglich für Unsinn hielt?&lt;br /&gt;&lt;br /&gt;Siehe hier: &lt;a href="http://blog.ontheheap.com/2008/10/30/wrong-about-tdd/"&gt;http://blog.ontheheap.com/2008/10/30/wrong-about-tdd/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7677441041474442573?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7677441041474442573/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7677441041474442573&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7677441041474442573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7677441041474442573'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/tdd-einsichten.html' title='TDD-Einsichten'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-756837418264091921</id><published>2008-11-05T18:02:00.002+01:00</published><updated>2008-11-05T18:09:07.173+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>W-JAX: Hochperformante Webanwendungen</title><content type='html'>Heute habe ich auf der W-JAX einen interessanten Vortrag von &lt;a href="http://www.objektpark.de/"&gt;Peter Roßbach&lt;/a&gt; gehört. Es ging um Tipps und Tricks, wie man Webanwendungen schneller machen kann. Besondere interessant fand ich, dass man sehr viele Dinge ohne Programmierung, einfach durch Konfiguration (z.B. in Apache) regeln kann - Caching, Zippen etc.&lt;br /&gt;Die meisten Dinge kann man sofort umsetzen und sie versuchen keinen oder nur wenig Zusatzaufwand. Ein paar Beispiele sind:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bilder sollten nicht im Browser skaliert werden, sondern in der benötigten Größe vom Server geliefert werden.&lt;/li&gt;&lt;li&gt;GET-Requests (ohne Parameter) können häufig gecacht werden und damit kann man leicht mal 50% Bandbreite sparen.&lt;/li&gt;&lt;li&gt;Man sollte immer erst die CSS-Dateien in seine HTML-Seiten einbinden und dann die Java-Script-Dateien. Sonst wird mitunter doppelt gerendert.&lt;/li&gt;&lt;li&gt;Man sollte Links ohne Ziel vermeiden (z.B. Favicons, die es nicht gibt). Diese führen intern zu 404 und 404 kann nicht gecacht werden.&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-756837418264091921?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/756837418264091921/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=756837418264091921&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/756837418264091921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/756837418264091921'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/11/w-jax-hochperformante-webanwendungen.html' title='W-JAX: Hochperformante Webanwendungen'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-144265335555749577</id><published>2008-10-29T11:19:00.002+01:00</published><updated>2008-10-29T11:22:11.156+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>CookieSwap</title><content type='html'>Heute hat man ja schnell mehrere Accounts für Web-Sites wie GMail am Hals (z.B. einen für private E-Mail und einen für einen Firmen-Account von Picasa-Web). Da die Login-Infos in Cookies gespeichert werden, bedeutet einloggen in Firmen-Picasa-Web leider automatisches ausloggen aus privatem GMail.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/de/firefox/addon/3255"&gt;CookieSwap&lt;/a&gt; ist ein Firefox-Addon, mit dem man mehrere Cookie-Profile verwalten und schnell zwischen diesen umschalten kann. Das ist noch nicht perfekt, weil man immer noch nicht mehrere Accounts gleichzeitig aufhaben kann, aber es ist eine Verbesserung.&lt;br /&gt;&lt;br /&gt;Und wenn man selbstgeschriebene Web-Anwendungen mit mehreren Accounts testen will, ist es sowieso nützlich.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-144265335555749577?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/144265335555749577/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=144265335555749577&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/144265335555749577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/144265335555749577'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/10/cookieswap.html' title='CookieSwap'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1499590459618225585</id><published>2008-10-17T23:39:00.002+02:00</published><updated>2008-10-17T23:45:38.592+02:00</updated><title type='text'>Clipboard2Web mit Zuschneiden</title><content type='html'>Ich habe eine neue Version von &lt;a href="http://www.clipboard2web.com"&gt;Clipboard2Web&lt;/a&gt; live gestellt. Die größte Änderung ist die Zuschneiden-Funktion, mit der man das Bild auf den gewünschten Inhalt zuschneiden kann.&lt;br /&gt;Darüber hinaus hat &lt;a href="http://berndschiffer.blogspot.com/"&gt;Bernd&lt;/a&gt; mich darauf aufmerksam gemacht, dass JPG meist nicht das beste Format ist und PNG meist besser ist. &lt;a href="http://lbrandy.com/blog/2008/10/my-first-and-last-webcomic/"&gt;Hier&lt;/a&gt; gibt es auch noch einen passenden Webcomic zum Thema.&lt;br /&gt;Und nicht zuletzt löscht Clipboard2Web jetzt bei jedem Start die zuletzt gespeicherten Bildern. So läuft die Platte nicht so schnell voll.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1499590459618225585?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1499590459618225585/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1499590459618225585&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1499590459618225585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1499590459618225585'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/10/clipboard2web-mit-zuschneiden.html' title='Clipboard2Web mit Zuschneiden'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-706831676874019800</id><published>2008-10-13T14:24:00.003+02:00</published><updated>2008-10-13T14:31:44.489+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Clipboard2Web-Service ist online</title><content type='html'>Ich muss relativ häufig Abbildungen oder Bilder in die eine oder andere Web-Anwendung bringen - z.B. in Blogger oder Google-Docs. Das Verfahren dazu ist sehr umständlich. Häufig kopiere ich das Bild ins Clipboard, öffne dann Paint, paste das Bil in Paint, speichere das Bild auf der Festplatte, wechsele in die Webanwendung, öffne den Upload-Dialog, suche die Bilddatei auf der Platte und starte dann den Upload.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clipboard2web.com"&gt;Clipboard2Web&lt;/a&gt; ist eine Internet-Anwendung, die das vereinfacht. Einfach Bild aus dem Clipboard nach Clipboard2Web pasten und schon steht im Gegenzug der Pfad zum Bild im Clipboard. Das muss man jetzt nur noch in den Upload-Dialog der gewünschten Webanwendung pasten und fertig.&lt;br /&gt;&lt;br /&gt;Clipboard2Web enthält ein signiertes Applet, so dass man beim ersten Start der Anwendung das Zertifikat akzeptieren muss.&lt;br /&gt;&lt;br /&gt;Technologisch ist Clipboard2Web in erster Linie ein signiertes Applet, eingebunden in eine sehr kleine Grails-Anwendung.&lt;br /&gt;&lt;br /&gt;Ich freue mich jederzeit über Feedback zu Clipboard2Web.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-706831676874019800?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/706831676874019800/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=706831676874019800&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/706831676874019800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/706831676874019800'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/10/clipboard2web-service-ist-online.html' title='Clipboard2Web-Service ist online'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7106308685521835075</id><published>2008-10-05T20:44:00.002+02:00</published><updated>2008-10-05T21:18:32.421+02:00</updated><title type='text'>Scrum und XP</title><content type='html'>Es ist schon etwas her, dass &lt;a href="http://blog.coldewey.com/agile/2008/07/11/scrum-gathering-in-munchen/"&gt;Jens Coldewey&lt;/a&gt; und &lt;a href="http://berndschiffer.blogspot.com/2008/07/3-deutschsprachiges-scrum-meeting.html"&gt;Bernd Schiffer&lt;/a&gt; von ihren Eindrücken des dritten deutschsprachigen Scrum-Meetings berichtet haben. Beide hatten das Gefühl, dass es zwischen Scrummern und XPlern nicht immer nur harmonisch zugeht.&lt;br /&gt;&lt;br /&gt;Grund genug, einmal in mich zu gehen und zu gucken, wie ich zu der Frage "Scrum oder XP" stehe. Zunächst ist klar, dass ich mit XP "groß" geworden bin. Lange Zeit habe ich Scrum nur am Rande wahrgenommen - "ist in XP sowieso alles mit drin". Im Rahmen meiner beruflichen Tätigkeiten hat Scrum dann aber einen immer größeren Anteil eingenommen. Und das liegt nicht nur daran, dass Scrum heute deutlich weiter verbreitet ist als XP und daher stärker nachgefragt wird. &lt;br /&gt;&lt;br /&gt;Ich schätze an Scrum:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;die Einfachheit und Stringenz: Scrum kann man leichter lehren und einführen als XP&lt;/li&gt;&lt;br /&gt;&lt;li&gt;den expliziten Fokus auf Eigenverantwortlichkeit des Teams (klar, das ist in XP auch so gemeint, aber nicht so explizit herausgearbeitet)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;die Scrum-Master-Rolle, um die Selbstorganisation des Teams zu unterstützen&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Trotzdem nutze ich persönlich sehr gerne XP. Schließlich kümmert sich Scrum "nur" um das Management der Entwicklung und nicht um die Entwicklung selbst. Um dauerhaft mit agiler Vorgehensweise erfolgreich zu sein, brauche ich passende Entwicklungstechniken. XP bietet passende Techniken wie TDD, Refactoring und Pair-Programming - auch wenn das nicht die einzigen Möglichkeiten sind, agil erfolgreich zu sein. Viele Scrum-Coaches setzen auch genau die XP-Techniken ein, wenn der Scrum-Managementrahmen erstmal erfolgreich eingeführt ist.&lt;br /&gt;&lt;br /&gt;Also kann man doch gleich nur XP verwenden und Scrum ignorieren? Nein! XP ist verhältnismäßig umfangreich. Kein Team kann XP vollständig von heute auf morgen einführen. Also muss man die XP-Techniken schrittweise einführen. Und da neigen viele Teams dazu, die leicht einzuführenden Techniken vorzuziehen und das sind häufig die Programmiertechniken. Aber was nützt mir TDD und Refactoring, wenn das Projekt weiterhin nach Wasserfall abgewickelt wird? Vielleicht einiges, aber das Projekt ist nicht agil und schon gar nicht XP. Viele Teams haben aber diesen Eindruck. Sie machen ein bisschen TDD, Refactoring und Pair-Programming und halten das für agiles Vorgehen. &lt;a href="http://inside-scrum.blogspot.com/2008/09/erfolgreich-dank-scrum-oder-doch-nicht.html"&gt;Hier&lt;/a&gt; findet sich ein entsprechender Projektbericht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7106308685521835075?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7106308685521835075/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7106308685521835075&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7106308685521835075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7106308685521835075'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/10/scrum-und-xp.html' title='Scrum und XP'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7727838914995385875</id><published>2008-09-23T21:05:00.001+02:00</published><updated>2008-09-23T21:07:30.372+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Ivar Jacobson über die Zukunft der Softwareentwicklung</title><content type='html'>&lt;a href="http://www.builderau.com.au/video/soa/The-future-of-software-development-practices/0,2000064338,22459996p,00.htm"&gt;The future of software development practices&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7727838914995385875?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7727838914995385875/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7727838914995385875&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7727838914995385875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7727838914995385875'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/09/ivar-jacobson-ber-die-zukunft-der.html' title='Ivar Jacobson über die Zukunft der Softwareentwicklung'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-171532227322778610</id><published>2008-09-09T14:31:00.001+02:00</published><updated>2008-09-09T14:32:38.136+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Hossa: Acrobat Reader</title><content type='html'>Ich komme gerade an meinen Rechner zurück und unten rechts blinkt ein kleines Popup, in dem steht: "Acrobat Reader wurde durch den Datenausführungsverhinderer geschlossen. [..]"&lt;br /&gt;&lt;br /&gt;Da musste ich eine Weile drüber nachdenken, was das bedeuten soll. Und ganz sicher bin ich mir immer noch nicht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-171532227322778610?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/171532227322778610/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=171532227322778610&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/171532227322778610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/171532227322778610'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/09/hossa-acrobat-reader.html' title='Hossa: Acrobat Reader'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2418487771349350879</id><published>2008-09-08T10:12:00.002+02:00</published><updated>2008-09-08T10:24:17.200+02:00</updated><title type='text'>WerKannWann mit Uhrzeiten</title><content type='html'>&lt;a href="http://www.it-agile.de"&gt;it-agile&lt;/a&gt; hat ein neues Release von &lt;a href="http://www.werkannwann.de"&gt;WerKannWann&lt;/a&gt; veröffentlicht. Mit WerKannWann kann man Terminumfragen über das Internet durchführen und Termine auch dann abstimmen, wenn nicht alle Beteiligten an eine gemeinsame Infrastruktur wie MS-Outlook angeschlossen sind.&lt;br /&gt;WerKannWann ist nicht die erste Anwendung dieser Art. Von der Konkurrenz unterscheidet sich WerKannWann aus meiner Sicht durch:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Uhrzeiten werden direkt zu jedem Termin hinterlegt und nicht im Block, wenn man alle möglichen Termine beisammen hat. Das macht die Arbeit flüssiger. Schließlich beginne ich das Eintragen der Termine normalerweise während ich in meinen Kalender gucke. Wenn ich erst alle Termine auswähle und dann die Uhrzeiten, muss ich für die Uhrzeiten wieder im Kalender zurück und dort die Tage suchen, die ich eingegeben habe.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Man muss die Uhrzeiten nicht umständlich eintippen, sondern kann sie mit coolen Slidern definieren.&lt;/li&gt;&lt;li&gt;Der Service ist nicht werbefinanziert und sendet daher möglicherweise intime Infos aus der Terminumfrage nicht an Google und blendet auch keine Werbung ein. Bei einem der Konkurrenten kann es schon mal passieren, dass man mit einem Kunden einen Termin für eine Scrum-Schulung aushandeln will und die Teilnehmer an der Terminabstimmung die Scrum-Schulungen der Konkurrenz angezeigt bekommen.&lt;/li&gt;&lt;li&gt;Die Teilnehmer an der Terminumfrage können nicht nur "ja" oder "nein" anwählen, sondern auch "wenn es sein muss". Das ist nützlicher als es erscheint, weil viele Teilnehmer "nein" anwählen, wenn der Termin nicht so gut passt. Möglich wäre er aber trotzdem gewesen.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nach meinem subjektiven Empfinden liegt WerKannWann besser in der Hand als die konkurrierenden Services, die ich so kenne.&lt;/li&gt;&lt;/ol&gt;Also: Einfach mal ausprobieren. Wir freuen uns über Nutzer und über Feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2418487771349350879?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2418487771349350879/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2418487771349350879&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2418487771349350879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2418487771349350879'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/09/werkannwann-mit-uhrzeiten.html' title='WerKannWann mit Uhrzeiten'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-783482493180607798</id><published>2008-09-05T16:52:00.004+02:00</published><updated>2008-09-05T17:44:33.333+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Software-Putzer?</title><content type='html'>Nico Josuttis schreibt in seinem Blog über &lt;a href="http://www.heise.de/ix/Software-Putzmaenner-und-die-naechste-IT-Revolution--/blog/artikel/115415"&gt;Software-Putzmänner und die nächste IT-Revolution&lt;/a&gt;. Er schlägt darin vor, schlechte Softwarequalität einfach als Fakt hinzunehmen und nicht immer zu versuchen, die Qualität zu verbessern. Vielmehr ginge es darum, mit dieser schlechten Qualität umzugehen. Als eine mögliche Alternative schlägt er Software-Putzkolonnen vor, die hin und wieder kommen und dann im Code aufräumen.&lt;br /&gt;&lt;br /&gt;Dazu fallen mir gleich ein paar Sachen ein.&lt;br /&gt;&lt;br /&gt;Zuerst zum Akzeptieren schlechter Qualität: Wenn die Qualität wirklich schlecht ist, wirkt sich das mannigfaltig unangenehm aus. Selbst der Product Owner bemerkt es. Nicht nur durch die langsame Entwicklungsgeschwindigkeit sondern auch dadurch, dass er aus technischen Gründen seine Priorisierungen ändern und seine Stories anders aufschreiben muss.&lt;br /&gt;&lt;br /&gt;Und ich habe auch gerade ein aktuelles Projektbeispiel zur Hand, dass sich das Aufräumen lohnt. Beim Kunden dümpelte ein Team bei 30 Story Points je Sprint rum. Irgendwann hat das Team festgestellt, dass umfangreichere Refactorings im Bereich CSS notwendig sind, um schneller zu werden. Sie haben die Refactorings in Angriff genommen und die haben viel länger gedauert als zunächst gedacht - das ist nach meiner Erfahrung fast immer so bei größeren Refactorings. Aber sie haben es durchgestanden, obwohl es sogar soweit ging, dass nicht mehr alle Entwickler während des Sprints beschäftigt werden konnten. Nach dem Refactoring hat die Geschwindigkeit des Teams deutlich zugelegt. Heute liegt die Geschwindigkeit bei 80 Story Points je Sprint.&lt;br /&gt;Mindestens in diesem Fall hat sich das Aufräumen schnell gelohnt und es wäre finanzieller Irrsinn gewesen, das Refactoring nicht durchzuführen.&lt;br /&gt;&lt;br /&gt;Und zu den Putz-Kolonnen kann ich gleich zwei Erfahrungen beisteuern.&lt;br /&gt;Erstens: Wir hatten bei &lt;a href="http://www.it-agile.de/"&gt;it-agile&lt;/a&gt; mal so ein Dienstleistungsprodukt im Angebot. Das war ein Ladenhüter. Daher gibt es das jetzt nicht mehr als explizites Produkt bei uns. Wenn jemand sich dafür interessiert, beleben wir es aber jederzeit gerne wieder :-)&lt;br /&gt;Zweitens: Wir hatten in einem Projekt mal sowas wie eine Putz-Kolonne in ganz zarten Ansätzen. Das hat in meinen Augen nicht funktioniert. Zum einen liefern die Projekte dann noch schlechtere Qualität - die Putz-Kolonne wird es schon richten. Zum anderen musste die Putz-Kolonne ständig bei den Entwicklern nachfragen, was bestimmter Code bedeutet. Und damit wurde das Team dann doch wieder mit Putzarbeiten belastet.&lt;br /&gt;&lt;br /&gt;Langer Rede kurzer Sinn: Ich vertrete genau den konträren Ansatz. Wir als Entwickler sind für die technische Qualität des Systems verantwortlich. Wer schlechte technische Qualität abliefert, verstößt aus meiner Sicht gegen den &lt;a href="http://www.acm.org/about/se-code"&gt;Code of Ethics&lt;/a&gt; unserer Zunft und sollte sich was schämen. Niemand wird uns die Zeit und das Geld zum Aufräumen geben und die Putz-Kolonne wird auch nicht kommen. Wir als Entwickler müssen die Sache selbst in die Hand nehmen und zu unserer Verantwortung stehen!&lt;br /&gt;&lt;br /&gt;P.S.: Zum Code of Ethics: Punkt 3 lautet: "PRODUCT - &lt;span class="highlightedSearchTerm"&gt;Software&lt;/span&gt;  engineers shall ensure that their products and related modifications meet the  highest pr&lt;span class="highlightedSearchTerm"&gt;of&lt;/span&gt;essional standards possible." Das bedeutet meiner Meinung nach auch, hohe Qualität abzuliefern.&lt;br /&gt;&lt;br /&gt;P.P.S.: Wer mehr darüber erfahren möchte, wie guter Code für agile Entwicklung aussieht und wie man den schreibt: ich werde auf der OOP darüber einen Vortrag halten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-783482493180607798?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/783482493180607798/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=783482493180607798&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/783482493180607798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/783482493180607798'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/09/software-putzer.html' title='Software-Putzer?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5040262377946741528</id><published>2008-09-03T22:24:00.001+02:00</published><updated>2008-09-03T22:25:48.289+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Priorisierung von Features</title><content type='html'>mal eine neue nette &lt;a href="http://www.agilemanagement.net/Articles/Weblog/PrioritizingandPlanningfo.html"&gt;Idee zum Thema von David Anderson&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5040262377946741528?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5040262377946741528/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5040262377946741528&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5040262377946741528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5040262377946741528'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/09/priorisierung-von-features.html' title='Priorisierung von Features'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3594166165873129820</id><published>2008-08-31T14:30:00.004+02:00</published><updated>2008-09-06T10:08:50.155+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Aufgaben schätzen oder Aufgaben schneiden?</title><content type='html'>Viele agile Projekte arbeiten mit Stories, um die Anforderungen zu definieren. Die Komplexität von Stories wird mit abstrakten &lt;span style="font-style: italic;"&gt;Story Points&lt;/span&gt; geschätzt. Bei der Sprint-/Iterationsplanung findet der sogenannte &lt;span style="font-style: italic;"&gt;Task Breakdown&lt;/span&gt; statt: Die Stories werden in Aufgaben (Tasks) für die Entwickler zerlegt und diese Tasks werden dann in Personenstunden oder -tagen geschätzt (&lt;a href="http://blog.mountaingoatsoftware.com/?p=15"&gt;Commitment Driven Planning&lt;/a&gt;). Die Tasks sollten dabei möglichst klein sein. Häufig wird ein Tag als Obergrenze genannt. Dann hat man beim &lt;span style="font-style: italic;"&gt;Daily Standup&lt;/span&gt; im Durchschnitt jedes mal mind. einen Tasks als erledigt zu vermelden.&lt;br /&gt;&lt;br /&gt;Wir haben gute Erfahrungen damit gemacht, die Tasks nicht nur &lt;span style="font-style: italic;"&gt;möglichst klein&lt;/span&gt; sondern auch möglichst &lt;span style="font-style: italic;"&gt;gleich groß&lt;/span&gt; zu halten. Wenn alle Tasks gleich groß sind, muss man Aufwände nicht mehr zusammenrechnen, sondern muss nur noch Tasks zählen. Und wenn man irgendwo mal umplanen muss, ist das auch ganz einfach: Einen Task weghängen und einen neuen dafür dazu hängen. Die Vorteile sind in der Praxis deutlich spürbar.&lt;br /&gt;&lt;br /&gt;Allerdings kommt man jetzt in eine Zwickmühle. Tatsächlich sind die Tasks konkret nicht alle gleich groß, sondern nur im Durchschnitt. Das kann dazu führen, dass das Team in einem Sprint/Iteration 20 Tasks schafft und in einem anderen 22 Tasks. Für Commitment Driven Planning reicht das Durchzählen der Tasks also nicht aus. Wenn man beim Sprint-/Iterationsreview feststellt, dass man ein paar Tasks mehr oder weniger geschafft hat als geplant, sagt das erstmal wenig aus. Die Abweichung könnte durch die natürlichen Schwankungen bedingt sein.&lt;br /&gt;Das Problem ließe sich durch das Schätzen von Tasks in Stunden beheben, dann ist aber der Vorteil der gleichen Größe wieder futsch.&lt;br /&gt;&lt;br /&gt;Daher hat eins meiner Teams mit "halben" Tasks experimentiert. Die meisten Tasks hatte die Normgröße. Einige wenige Tasks waren kleiner und wurden daher mit 1/2 annotiert. Das hat aber nicht so richtig gut funktioniert. Die bereits vorher sehr guten Commitments wurden dadurch nicht besser. Dafür wurde Sprint-/Iterationsplanung umständlicher und beim Review gab es immer wieder Verwirrung um das Tracking ("Zählen wir die halben Tasks für das Tracking jetzt voll oder nur halb?"). Folgerichtig hat das Team die halben Tasks wieder abgeschafft und arbeitet jetzt wieder unter der Annahme, dass alle Tasks gleich groß sind.&lt;br /&gt;&lt;br /&gt;Interessant sind noch zwei Diskussionen, die wir geführt haben:&lt;br /&gt;1) &lt;a href="http://scrum4you.wordpress.com/2008/08/05/5-min-on-scrum-sprint-planning-1/"&gt;Boris Gloger&lt;/a&gt; hat vorgeschlagen, bei Sprint-/Iterationsplanung gar nicht mehr zu schätzen. Stattdessen fragt man das Team nach dem Task Breakdown einfach Story für Story "Würdet Ihr Euch darauf committen?" Tatsächlich reicht das vollkommen aus. Es geht darum, ein Commitment auf die Planung zu bekommen. Wie man das erreicht ist sekundär. Allerdings mochte das Team Boris' Ansatz nicht folgen. Sie meinten, sie könnten auf dieser groben Ebene nicht einschätzen, ob die Planung funktioniert.&lt;br /&gt;2) Man könnte die Tasks auf eine einheitliche Größe zwingen. Dann würde man nicht Tasks auf ToDo-Zettel schreiben, sondern auf Slot-Zettel. Ein Slot hätte eine feste Größe (z.B. 1/2 Personentag) und man müsste die Tasks so formulieren, dass sie auf diese Größe passen. Bei sehr kleinen Aufgaben müsste man mehrere Tasks auf einen Slot-Zettel schreiben. Diese Herangehensweise hat das Team kontrovers diskutiert, letztlich aber abgelehnt. Es schien den Entwicklern zu unnatürlichen Tasks zu führen.&lt;br /&gt;&lt;br /&gt;Im Ergebnis ist das Team als bei einer Sprint-/Iterationsplanung verblieben, die mit etwas unscharfen Werten hantiert - alle Tasks werden als gleich groß angesehen, obwohl sie das nicht sind. Das ist solange unproblematisch, wie das Team trotzdem ein Commitment auf die Planung abgibt und das tut es. Jetzt muss man mal beobachten, wie es sich mit der tatsächlichen Qualität der Planungen verhält.&lt;br /&gt;&lt;br /&gt;BTW: Ich persönlich mag den Ansatz von Boris und ich tendiere zu dem Slot-Zettel-Ansatz, um alle Tasks gleich groß zu bekommen. Dass ggf. mehrere Tasks auf einem Slot-Zettel stehen, halte ich für unproblematisch, weil sie so klein sind. Man wird die Aufgaben eines Slot-Zettels ohnehin nicht aufspalten und parallel abarbeiten lassen wollen.&lt;br /&gt;&lt;br /&gt;P.S.: Tasks gleicher Größe zu haben, reduziert Variabilität und reduzierte Variabilität führt laut Lean Development/Production zu einer höheren Produktivität. Siehe auch bei &lt;a href="http://www.agilemanagement.net/Articles/Weblog/AnAlternativeRecipeforSuc.html"&gt;David Anderson&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3594166165873129820?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3594166165873129820/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3594166165873129820&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3594166165873129820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3594166165873129820'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/aufgaben-schtzen-oder-aufgaben.html' title='Aufgaben schätzen oder Aufgaben schneiden?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6204639028672251084</id><published>2008-08-30T14:25:00.002+02:00</published><updated>2008-08-30T14:30:55.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Wie misst man technical debt?</title><content type='html'>Das Konzept des Technical Debt (technische Schuld) ist schon alt: Wenn man Qualität opfert, um einen bestimmten Termin zu halten, geht man eine technische Schuld ein. Diese technische Schuld bezahlt man zunächst mit einer reduzierten Entwicklungsgeschwindigkeit. Wenn man die technische Schuld dann irgendwann zurückzahlen will, kostet es i.d.R. ein Vielfaches von dem, was man ursprünglich "eingespart" hat.&lt;br /&gt;&lt;br /&gt;Soweit so gut. Leider hilft das Konzept in der Projektpraxis nicht so fürchterlich gut. Es gibt kein vernünftiges Verfahren, um Höhe und "Zinssatz" der technischen Schuld zu messen.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.think-box.co.uk/blog/2008/08/wtfs-per-minute.html"&gt;Hier gibt es jetzt mal einen Vorschlag, technische Schuld zu messen und zwar in WTFs pro Minute&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lustig? Klar!&lt;br /&gt;Ernsthaft verwendbar in der Projektpraxis: Da sollte man vielleicht mal drüber nachdenken...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6204639028672251084?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6204639028672251084/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6204639028672251084&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6204639028672251084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6204639028672251084'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/wie-misst-man-technical-debt.html' title='Wie misst man technical debt?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6405961714262769998</id><published>2008-08-25T13:13:00.001+02:00</published><updated>2008-08-25T13:13:57.910+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Einladung zu den XP-Days Germany 2008 in Hamburg</title><content type='html'>&lt;p&gt;Das Programm für die XP-Days Germany 2008 in Hamburg steht jetzt fest (siehe &lt;a target="_blank" mce_href="http://www.xpdays.de/2008/de/programm.html" href="http://www.xpdays.de/2008/de/programm.html"&gt;Programm&lt;/a&gt;). Vorträge gibt es am 27.11.08 (Donnerstag) nachmittags und am 28.11.08 (Freitag) den ganzen Tag. Wir haben ein vielfältiges Programm, dass sowohl den Interessen von Neueinsteigern wie auch alter Hasen im Bereich der agilen Methoden gerecht wird.&lt;/p&gt; &lt;p&gt;Wie der Untertitel der Konferenz bereits deutlich macht: Die XP-Days bieten allen agilen Methoden ein Forum, nicht zur eXtreme Programming. Das zeigt sich auch dieses Jahr wieder am Programm. Die meisten Vorträge bieten Wissenswertes, dass sich mit jeder agilen Methode kombinieren lässt.&lt;/p&gt; &lt;p&gt;Der Samstag richtet sich an all diejenigen, die aktiv mitdiskutieren wollen. Dazu muss man kein Experte mit jahrelanger Erfahrung sein. "Nur" das Engagement ist wichtig. Folgerichtig gibt es für den Samstag kein vorab festgelegtes Programm. Stattdessen wird eine "Unconference" im Open-Space-Stil stattfinden.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Jetzt bleibt eigentlich nur noch eines zu tun: &lt;a mce_href="http://www.conftool.com/xpdays2008/index.php?page=index" href="http://www.conftool.com/xpdays2008/index.php?page=index"&gt;Anmelden und den Frühbucherrabatt sichern!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6405961714262769998?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6405961714262769998/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6405961714262769998&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6405961714262769998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6405961714262769998'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/einladung-zu-den-xp-days-germany-2008.html' title='Einladung zu den XP-Days Germany 2008 in Hamburg'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4151609636507345512</id><published>2008-08-19T18:43:00.002+02:00</published><updated>2008-08-19T18:56:29.375+02:00</updated><title type='text'>Scrum auf der ADC</title><content type='html'>Am 15.10.2008 werde ich im Rahmen der &lt;a href="http://www.adc08.de/"&gt;ADC-Konferenz&lt;/a&gt; einen eintägigen &lt;a href="http://www.adc08.de/Workshops.aspx#SCRUM"&gt;Scrum-Workshop&lt;/a&gt; halten. Der Workshop gibt einen Überblick über Scrum mit seinem Vorgehensmodell, den Management-Techniken sowie den Rollen. Es werden besonders die Aspekte adressiert, die beim Start in die Scrum-Welt von Bedeutung sind.&lt;br /&gt;&lt;br /&gt;Der Workshop eignet sich als Grundlagenkurs für weiterführende Scrum-Schulungen, z.B. zum CSM.&lt;br /&gt;&lt;br /&gt;Das ganze findet in Frankenthal (bei Mannheim) statt. Wer bis zum 15.09.2008 bucht, spart durch den Frühbucherpreis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4151609636507345512?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4151609636507345512/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4151609636507345512&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4151609636507345512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4151609636507345512'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/scrum-auf-der-adc.html' title='Scrum auf der ADC'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7331151312972162404</id><published>2008-08-18T19:22:00.001+02:00</published><updated>2008-08-18T19:24:21.647+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Scrum-ban</title><content type='html'>Corey Ladas hat einen &lt;a href="http://leansoftwareengineering.com/ksse/scrum-ban/"&gt;interessanten und provakanten Artikel&lt;/a&gt; über Scrum und Lean/Kanban geschrieben. Auch wenn man nicht jedem Argument folgen mag, finde ich den Artikel denkanstößig.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7331151312972162404?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7331151312972162404/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7331151312972162404&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7331151312972162404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7331151312972162404'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/scrum-ban.html' title='Scrum-ban'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5334486783214084194</id><published>2008-08-13T19:34:00.003+02:00</published><updated>2008-08-13T19:52:56.329+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Sind Aufwandsschätzungen Verschwendung?</title><content type='html'>Bei InfoQ findet sich ein &lt;a href="http://www.infoq.com/news/2008/08/estimates-wasteful"&gt;interessanter Artikel&lt;/a&gt;, in dem die Frage diskutiert wird, ob Aufwandsschätzungen Verschwendung sind. Im Sinne des Lean Thinking sind Aufwandsschätzungen auf jeden Fall Verschwendung. Sie gehen schließlich nicht in die entwickelte Software ein.&lt;br /&gt;Allerdings: Leider kann man nicht jede Verschwendung sofort beseitigen. Mitunter benötigt man die Verschwendung als Zwischenergebnis oder zur Kontrolle seines Projektes. Viele agile Projekte können daher bisher nicht auf die Verwendung "Aufwandsschätzung" verzichten. Das Unternehmen allokiert beispielsweise auf klassische Weise Budgets und muss daher Projektkosten prognostizieren. Oder man hat mit unsäglichen Festpreisverträgen zu tun. Oder man weiß nicht, wie man sonst vernünftig Projektfortschritt messen - also Release Burndown Charts zeichnen - kann. In diesem Sinne wäre es gefährlich, jetzt einfach auf Aufwandsschätzungen zu verzichten.&lt;br /&gt;Allerdings zum Allerdings: Das Ziel bleibt trotzdem bestehen. Nur, weil wir im Moment nicht wissen, wie wir Verschwendung loswerden können, bedeutet es nicht, dass wir die Verschwendung für alle Zeit akzeptieren müssen. Wir müssen stattdessen kontinuierlich an dem Problem arbeiten und uns (häufig schrittweise) einer Lösung nähern.&lt;br /&gt;Ein erster Schritt könnte darin liegen, alle Stories auf dieselbe Größe zu normieren. Das wird im InfoQ-Artikel auch vorgeschlagen, ist bei FDD schon länger gängige Praxis und hat sich auch in unseren Projekten bereits bewährt. Dann muss man nicht mehr schätzen und zusammenrechnen, sondern nur noch zählen.&lt;br /&gt;Und dann kann man sich überlegen, wie man auch noch das Zählen einspart. Diese Einsparung liegt zunächst wahrscheinlich im Bereich von max. 1 Stunde / Woche je Team. Das ist nicht wirklich berauschend. Aber die Einsparung hätte erhebliche - postitive - Seiteneffekte, bzw. Voraussetzungen. Damit man nicht mehr schätzen und zählen muss, muss sich das Unternehmen wandeln weg von Kostenorientierung hin zur Nutzenorientierung. Bei nutzenorientierter Perspektive interessieren mich erstmal die Kosten nicht. Ich priorisiere - möglichst gleich große - Stories nach ihrem Geschäftswert. Wenn mein Bauchgefühl mir sagt, dass die noch übrig gebliebenen Stories weniger Geschäftswert schaffen als mein Team kontinuierlich kostet, ist das Projekt eben zuende. Fertig. So einfach könnte Softwareentwicklung sein und wenn man dem InfoQ-Artikel glauben schenken darf, ist sie das bei einigen Unternehmen auch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5334486783214084194?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5334486783214084194/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5334486783214084194&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5334486783214084194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5334486783214084194'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/sind-aufwandsschtzungen-verschwendung.html' title='Sind Aufwandsschätzungen Verschwendung?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5764600986716550426</id><published>2008-08-12T22:37:00.002+02:00</published><updated>2008-08-12T22:48:36.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Technical Debt und das geistige Taskboard</title><content type='html'>Entwickler wollen ihren eigenen Ansprüchen genauso gerecht werden wie den Ansprüchen anderer. Daher tun sich viele Scrum-Teams am Anfang schwer, sich einzugestehen, dass sie sich für den Sprint zuviel vorgenommen haben (Over Commitment). Für Product Owner ist es anfänglich ebenso schwer. Schließlich hat man auch als Product Owner seine Ziele und möglicherweise sogar bestimmte Features zu einem festen Zeitpunkt versprochen.&lt;br /&gt;Beides zusammen kann ausreichend Druck erzeugen, dass die Entwickler in den Zug einsteigen, der direkt in die Hölle fährt: Sie opfern Qualität, um den geplanten Sprintinhalt zum Sprintende zu schaffen. Sie gehen eine technische Schuld ein (Technical Debt), die ihnen später sehr schmerzhaft auf die eigenen Füße fällt - in Form einer steilen Aufwandskurve.&lt;br /&gt;Dabei ist das erste Problem aus meiner Sicht gar nicht, dass man die technische Schuld eingegangen ist. Das erste Problem ist, dass das implizit passiert. Die Entwickler machen sich beim Programmieren geistige Tasks in der Art "Hier müsste man noch mal das Refactoring XYZ durchführen.", "Hier müssten noch die Tests nachgeschrieben werden." etc.&lt;br /&gt;Diese Tasks gehören nicht in den "Hinterkopf". Diese Aufräum-Tasks gehören explizit und für alle sichtbar ins Sprint-Backlog (und damit auf das Taskboard). Damit hat man nicht nur die Merker, was man noch erledigen muss. Es wird auch sofort klar, dass man das Sprint-Commitment trotzdem NICHT erreicht hat. Man hat nur die übrig gebliebenen Tasks getauscht. Es sind keine fachlichen Features mehr offen, sondern technische Aufräumarbeiten.&lt;br /&gt;Dieser Fakt ist erstmal zu akzeptieren und in der Sprint-Retrospektive zu beleuchten. Warum konnten wir unser Commitment nicht halten und wie machen wir es nächstes Mal besser? Und dann sollte man sich auch gleich noch die Frage stellen: Warum haben wir Qualität geopfert anstatt Funktionalität zu reduzieren und ist das Opfern der Qualität wirklich der bessere Weg?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5764600986716550426?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5764600986716550426/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5764600986716550426&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5764600986716550426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5764600986716550426'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/technical-debt-und-das-geistige.html' title='Technical Debt und das geistige Taskboard'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1492010437669306815</id><published>2008-08-01T18:15:00.004+02:00</published><updated>2008-08-01T18:27:23.344+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Können Anwender/Fachexperten modellieren?</title><content type='html'>Auf diese Frage hätte ich früher mit einem klaren "Nein" geantwortet. Inzwischen mehren sich aber deutlich die Anzeichen, dass sie mit entsprechender Unterstützung vielleicht doch viel mehr können, als zumindest ich früher dachte.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In &lt;a href="http://www.featuredrivendevelopment.com"&gt;Feature-Driven-Development&lt;/a&gt; sind die Fachexperten beim &lt;a href="http://www.it-agile.de/colormodeling.html"&gt;Color Modeling&lt;/a&gt; mind. sehr stark in die Erstellung fachlicher Klassenmodelle involviert.&lt;/li&gt;&lt;li&gt;Bei InfoQ ist ein &lt;a href="http://www.infoq.com/articles/ddd-evolving-architecture"&gt;Artikel&lt;/a&gt; erschienen, der beschreibt, wie die Fachexperten selbst mit Domain Driven Design fachliche Klassenmodelle erstellt haben, die die Entwickler dann auch genau so umgesetzt haben.&lt;/li&gt;&lt;/ul&gt;Der InfoQ-Artikel hat mir auch nochmal eine Situation in Erinnerung gerufen, die wir vor 2 oder 3 Jahren in einem Projekt hatten. Wir hatten zeitliche Ereignisse an Wasserzählern modelliert (Einbau, Wechselung, Eichung etc.). Es wurde irgendwann im Projekt klar, dass wir das Modell ändern müssen. Der Code war schwer verständlich und sträubte sich gegen Änderungen.&lt;br /&gt;&lt;br /&gt;In der Diskussion über das Zielmodell haben sich zwei Fronten im Team gebildet, die sich auch nicht von selbst auflösten. (Dass die Fronten entstanden sind, halte ich heute für ein Sympton eines tieferliegenden gruppendynamischen Problems, aber das ist hier nicht das Thema.)&lt;br /&gt;Wir haben ziemlich viel Zeit in die Diskussion gesteckt, ohne zu einem Ergebnis zu kommen. Irgendwann habe ich einen Fachexperten einfach mal die beiden Modelle skizziert und gefragt, ob er etwas beitragen kann. Konnte er. Er hat gesagt, dass beide Modelle nicht so gut passen und ein drittes skizziert. Dieses Modell leuchtete dem ganzen Team schnell ein und wir haben die Änderungen durchgeführt. Tatsächlich beseitigte das Modell des Fachexperten unsere Probleme im System.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1492010437669306815?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1492010437669306815/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1492010437669306815&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1492010437669306815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1492010437669306815'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/knnen-anwenderfachexperten-modellieren.html' title='Können Anwender/Fachexperten modellieren?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7343747679956020887</id><published>2008-08-01T18:13:00.003+02:00</published><updated>2008-08-01T18:14:40.897+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>TeamSpider</title><content type='html'>Wir haben unsere kleine Webanwendung zur Selbstbewertung agiler Teams umbenannt. Sie heißt jetzt TeamSpider und ist unter &lt;a href="http://teamspider.it-agile.de"&gt;http://teamspider.it-agile.de&lt;/a&gt; erreichbar. Sonst ändert sich nichts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7343747679956020887?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7343747679956020887/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7343747679956020887&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7343747679956020887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7343747679956020887'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/08/teamspider.html' title='TeamSpider'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3155811874362561721</id><published>2008-07-30T15:05:00.003+02:00</published><updated>2008-07-30T15:24:41.572+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Taskboard: Gute geklaut...</title><content type='html'>...ist besser als schlecht selbst gemacht :-)&lt;br /&gt;Ich finde die Kanban-Ansätze von David J. Anderson interessant, beschrieben z.B. in seinem Blog-Eintrag &lt;a href="http://www.agilemanagement.net/Articles/Weblog/KanbaninAction.html"&gt;Kanban in Action&lt;/a&gt;. Ich bin nicht in allen Punkten einer Meinung mit ihm. Er stellt es z.B. als Vorteil dar, dass er keine Iterationsplanung &lt;span style="font-style: italic;"&gt;braucht&lt;/span&gt;. Ich bin mir aber nicht so sicher, ob es sich nicht vielleicht doch um einen Bug handelt, weil er keine Iterationsplanung &lt;span style="font-style: italic;"&gt;machen kann&lt;/span&gt;. Aber das ist letztlich Spekulation. Ich keine sein Setting nicht im Detail.&lt;br /&gt;&lt;br /&gt;Zwei Dinge habe ich aber bei ihm geklaut und in verschiedene &lt;a href="http://www.mountaingoatsoftware.com/task_boards"&gt;Taskboards&lt;/a&gt; übernommen:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Blockaden/Hindernisse&lt;/li&gt;&lt;li&gt;Kapazitätsbeschränkungen&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Blockaden/Hindernisse&lt;/span&gt;&lt;br /&gt;Dass man Hindernisse bei den täglichen Standup-Meetings benennt und festhält, hat sich inzwischen allgemein durchgesetzt. Häufig werden diese einfach als Liste festgehalten. Man kann jedoch zwei Typen von Hindernissen unterscheiden: &lt;span style="font-style: italic;"&gt;Hindernisse&lt;/span&gt;, die mich bei der Arbeit behindern und &lt;span style="font-style: italic;"&gt;Blockaden&lt;/span&gt;, die die Weiterarbeit an einer Aufgabe blockieren (z.B. fehlende Zulieferungen von Dritten). Aufgabenbezogene Blockaden schreiben wir daher nicht mehr in die Hindernisliste, sondern kleben eine rote Haftnotiz auf die blockierte Aufgabe. Das gibt eine schöne Visualisierung einer häufig gruseligen Situation: Das Team arbeitet gar nicht an den Aufgaben mit der höchsten Priorität, sondern an den wenigen Aufgaben, die gerade nicht blockiert sind.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Kapazitätsbeschränkungen&lt;/span&gt;&lt;br /&gt;In einem unserer Festpreisprojekte arbeitet das Team an einem großen Auftrag. Der Kunde ist sehr zufrieden mit unserer Arbeit und versorgt uns daher immer fleißig mit weiteren kleinen Aufträgen. Diese müssen wir schätzen - wir sind immer noch in der Festpreiskonstellation. Die Aufwandsschätzung liefert natürlich das Team selbst. Die Schätzungen durchzuführen, sind Aufgaben, die bei der Iterationsplanung eingeplant werden. Mitunter hat der Kunde aber soviele tolle neue Ideen, dass wir vor lauter Schätzarbeit (Vorleistung) gar nicht mehr zum Hauptauftrag kommen. Da hat es sehr geholfen, dass wir eine neue Kartenfarbe (blau) spendiert haben für solche Aufgaben ohne bezahlten Auftrag und das Taskboard in der Kapazität für blaue Karten auf "2 pro Iteration" beschränkt haben. Das sorgt dafür, dass wir unsere Zeit im Wesentlichen auf den Hauptauftrag konzentrieren können. Und bisher ist dem Kunden dadurch auch kein Nachteil entstanden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3155811874362561721?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3155811874362561721/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3155811874362561721&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3155811874362561721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3155811874362561721'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/taskboard-gute-geklaut.html' title='Taskboard: Gute geklaut...'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2419615052744562341</id><published>2008-07-27T10:14:00.003+02:00</published><updated>2008-07-27T10:37:56.237+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><title type='text'>Google-Testing-Blog: Testing Against Interfaces</title><content type='html'>Auf dem &lt;a href="http://googletesting.blogspot.com/"&gt;Google-Testing-Blog&lt;/a&gt; ist gerade ein Artikel "&lt;a href="http://googletesting.blogspot.com/2008/07/tott-testing-against-interfaces.html"&gt;Testing Against Interfaces&lt;/a&gt;" erschienen. Es geht darum, wie man verschiedene Implementation desselben Interfaces testet. Der Artikel schlägt vor, eine abstrakte Testklasse zu dem Interface zu bauen. Im &lt;span style="font-style: italic;"&gt;setUp&lt;/span&gt; dieser abstrakten Testklasse wird eine abstrakte Methode &lt;span style="font-style: italic;"&gt;createXYZ&lt;/span&gt; aufgerufen, die das zu testende Objekt liefert. Jetzt leitet man von der abstrakten Testklasse konkrete Testklasse je getesteter Klasse ab. In diesem konkreten Testklassen überschreibt man die &lt;span style="font-style: italic;"&gt;createXYZ&lt;/span&gt;-Methode und kann dann verkünden: "ich habe fertig" :-)&lt;br /&gt;&lt;br /&gt;Das klingt plausibel, ist nach meiner Erfahrung in vielen Fällen aber nicht praktikabel. Dafür sind zwei Gründe verantwortlich:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Man benötigt in Tests das getestete Objekt mitunter in unterschiedlichen Ausprägungen, und muss mitunter unterschiedliche Konstruktoren aufrufen. Dann muss man die &lt;span style="font-style: italic;"&gt;createXYZ&lt;/span&gt;-Methode parametrisieren. Das funktioniert aber nur solange gut, wie alle Implementationen des getesteten Interfaces dieselben Parameter bekommen. Ist das nicht der Fall, muss man die Signatur der &lt;span style="font-style: italic;"&gt;createXYZ&lt;/span&gt;-Methode aufblähen mit Parametern, die nur für einzelne Implementationen einen Sinn ergeben. Hinweis: Das &lt;a href="http://junit.sourceforge.net/doc/cookbook/cookbook.htm"&gt;Kochbuch zu JUnit&lt;/a&gt; benutzt z.B. unterschiedlich erzeugte Objekte im selben Test (natürlich ohne die Interface-Problematik).&lt;/li&gt;&lt;li&gt;Häufig reicht ein einzelnes Objekt als Fixture nicht aus. Es werden mehrere Objekte benötigt. Jetzt müsste die &lt;span style="font-style: italic;"&gt;createXYZ&lt;/span&gt;-Methode mehrere Objekte zurück liefern (als Liste?) oder man ruft mehrere &lt;span style="font-style: italic;"&gt;createXYZ&lt;/span&gt;-Methoden auf, oder... Alles nicht besonders elegant.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Diese Probleme waren bei uns in früheren Jahren in der Praxis so massiv, dass wir diese Konstruktion fallen gelassen haben. Stattdessen haben wir eine andere Lösung konzipiert: Wir bauen ein &lt;span style="font-style: italic;"&gt;Test-Center&lt;/span&gt; auf. Das ist eine konkrete Klasse, die mir einzelne parametrisierte Testmethoden anbietet. Diese ruft man aus den konkreten Testklassen auf. Damit eliminiert man die Redundanzen in den Tests. Natürlich sind meine Tests etwas länger, weil man die Testmethoden zur Delegation trotzdem alle hinschreiben muss, a la&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public void testXYZ() { meinTestCenter.testXYZ(meinObjekt); }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Als weiteren Vorteil bringt die Test-Center-Lösung die Abwesenheit von Vererbung. Die Kopplung zwischen den Testklassen wird also reduziert.&lt;br /&gt;&lt;br /&gt;Interessanterweise hatten wir für solche Konstruktionen umso weniger Anwendungsfälle, desto mehr wir uns von technischen Frameworks hin zu konkreten Anwendungssystemen orientiert haben.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anmerkung&lt;/span&gt;: Das Fixtures aus mehreren Objekten bestehen, bedeutet noch nicht automatisch, dass es sich um Integrationstests handelt. Es ist meiner Meinung nach erlaubt und auch notwendig, in Unit-Tests wenige eng zusammenarbeitende Objekte  als eine Fixture zu begreifen. Ansonsten neigen die Tests zur Trivialität und in statisch getypten Sprachen wie Java müsste ich überall Interfaces einziehen und in jedem Test Mocks benutzen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2419615052744562341?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2419615052744562341/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2419615052744562341&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2419615052744562341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2419615052744562341'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/google-testing-blog-testing-against.html' title='Google-Testing-Blog: Testing Against Interfaces'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6640259967385095189</id><published>2008-07-16T20:53:00.003+02:00</published><updated>2008-07-17T07:41:38.071+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Bug oder Featurewunsch?</title><content type='html'>Eine der häufigsten Konfliktlinien in der Softwareentwicklung ist die immer wiederkehrende Frage: "Ist das ein Bug oder ist das ein neuer Featurewunsch?"&lt;br /&gt;&lt;br /&gt;Diese Frage tritt regelmäßig auf, wenn der Kunde neue Systemfunktionen präsentiert bekommt und feststellt, dass er es eigentlich anders bräuchte. Im Zweifel steht der Kunde auf der Position, dass es sich um einen Bug handelt während die Entwickler im Zweifel die Auffassung vertreten, es handele sich um einen neuen Featurewunsch.&lt;br /&gt;&lt;br /&gt;Bug oder Featurewunsch? "Da regt mich ja die Frage schon auf!" (Loriot) Schließlich will diese Frage zu allererst den Schuldigen finden. Ist es ein Bug, haben die Entwickler Schuld - sie haben falsch programmiert. Ist es ein Featurewunsch, hat der Kunde Schuld - er hat falsch spezifiziert. Wir haben also ein Gegeneinander von Entwicklern und Kunde.&lt;br /&gt;&lt;br /&gt;Dass mit dieser Einstellung nur schwer gute Projekte durchgeführt werden können, dürfte einleuchten. Statt an einer gemeinsamen Lösung zu arbeiten, wird über die Schuldfrage gestritten. Also sollten wir uns nicht die Frage stellen, ob etwas ein Bug oder ein Featurewunsch ist. Stattdessen reicht es vollkommen aus, festzustellen, dass es zu einer Systemfunktion noch Nacharbeiten gibt. Diese müssen erledigt werden. Wenn der Eindruck entsteht, dass Nacharbeiten hätten vermieden werden können, dann sollte man darüber in der Retrospektive sprechen und gemeinsam nach Verbesserungsmöglichkeiten suchen. Die Schuldfrage sollte uns dabei nicht im Weg stehen.&lt;br /&gt;&lt;br /&gt;Und was ist bei Festpreisverträgen? Da muss entschieden werden, wer die Kosten für die Nacharbeiten trägt. Das bedeutet schlicht: Festpreisverträge richten Interessen von Kunden und Entwicklern entgegengesetzt aus und führen zu suboptimalen Ergebnissen. Wer wirklich gute Software schreiben (lassen) will, sollte die Finger von Festpreisverträgen lassen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6640259967385095189?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6640259967385095189/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6640259967385095189&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6640259967385095189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6640259967385095189'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/bug-oder-featurewunsch.html' title='Bug oder Featurewunsch?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1792133610439183687</id><published>2008-07-13T10:35:00.001+02:00</published><updated>2008-07-13T10:40:27.101+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Deadline der XP-Days Germany verlängert bis 27.07.2008</title><content type='html'>&lt;p&gt;Wir haben bereits ein gute Sammlung hochwertiger Session-Vorschläge für die XP-Days Germany 2008. Da der offene Review-Prozess gut funktioniert, werden wir weniger Zeit für die finale Begutachtung der Beiträge im Programm-Komitee brauchen. Daher haben wir die Deadline für Einreichungen verlängert bis zum 27.7.2008.&lt;/p&gt; &lt;p&gt;Das bedeutet auch, dass bis dahin existierende Beiträge noch überarbeitet und Reviews geschrieben werden können / sollen.&lt;/p&gt;&lt;a href="http://www.xpdays.de"&gt;http://www.xpdays.de&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1792133610439183687?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1792133610439183687/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1792133610439183687&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1792133610439183687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1792133610439183687'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/deadline-der-xp-days-germany-verlngert.html' title='Deadline der XP-Days Germany verlängert bis 27.07.2008'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-910997621070765119</id><published>2008-07-11T14:26:00.001+02:00</published><updated>2008-07-11T14:28:04.259+02:00</updated><title type='text'>Lisp auf der Java-VM</title><content type='html'>als alter Lisp-Fan lese ich sowas natürlich gerne: &lt;a href="http://www.infoq.com/articles/lisp-for-jvm"&gt;Exploring LISP on the JVM&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-910997621070765119?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/910997621070765119/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=910997621070765119&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/910997621070765119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/910997621070765119'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/lisp-auf-der-java-vm.html' title='Lisp auf der Java-VM'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7792807946294894446</id><published>2008-07-11T11:07:00.003+02:00</published><updated>2008-07-11T11:10:26.424+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><title type='text'>Testen mit C++, EXPECT und ASSERT</title><content type='html'>Im &lt;a href="http://googletesting.blogspot.com/"&gt;Google-Testing-Blog&lt;/a&gt; ist ein Artikel über das Unit-Testen mit C++ erschienen: &lt;a href="http://googletesting.blogspot.com/2008/07/tott-expect-vs-assert.html"&gt;EXPECT vs. ASSERT&lt;/a&gt;. Der Artikel ist auch deshalb großartig, weil hier die längst vergessen geglaubte Kunst des ASCII-Comics wieder auflebt. Aber auch der Einhalt ist interessant. Für C++-Entwickler scheint ein relevantes Problem adressiert zu werden. Für mich bleibt die Erkenntnis: "Ein Glück, dass ich nicht C++ programmieren muss. Diese Art von Problemen wäre nicht für mich."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7792807946294894446?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7792807946294894446/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7792807946294894446&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7792807946294894446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7792807946294894446'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/testen-mit-c-expect-und-assert.html' title='Testen mit C++, EXPECT und ASSERT'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7248155004298939319</id><published>2008-07-11T10:58:00.003+02:00</published><updated>2008-07-11T11:07:02.265+02:00</updated><title type='text'>Separation of Concerns: Application Logic vs. Creation Logic</title><content type='html'>Im &lt;a href="http://googletesting.blogspot.com/"&gt;Google-Testing-Blog&lt;/a&gt; ist mal wieder ein schöner Artikel erschienen: &lt;a href="http://googletesting.blogspot.com/2008/07/how-to-think-about-new-operator-with.html"&gt;How to Think About the "new" Operator with Respect to Unit Testing&lt;/a&gt;. Inhaltlich ist es nicht wirklich neu: Objekterzeugung mit &lt;span style="font-style: italic;"&gt;new&lt;/span&gt; in Klassen mit Logik ist gefährlich, weil das isolierte Testen kleiner Einheiten erschwert wird. Stattdessen sollte man die Objekterzeugung separieren und Dependency-Injection verwenden.&lt;br /&gt;Auch wenn diese Erkenntnis nicht neu ist, kann sie wahrscheinlich gar nicht oft genug wiederholt werden - viel zu vielen Entwicklern scheint sie fremd zu sein.&lt;br /&gt;&lt;br /&gt;Und dann schimmert durch den Artikel noch eine generelle Forderung durch: "Trenne Anwendungslogik &lt;span style="font-style: italic;"&gt;immer&lt;/span&gt; von Erzeugungslogik". Die meisten Entwickler, die sich der new-Problematik bewusst sind, lagern nicht alle Objekterzeugungen aus. Sie machen das nur an den Stellen, wo es zum Testen auch notwendig ist und das sind längst nicht alle Stellen. Die Erzeugung generell auszulagern, bedeutet etwas erhöhten Programmieraufwand (weil man z.B. Factories schreibt, obwohl man von der Flexibilität zur Zeit keinen Gebrauch macht).  Möglicherweise lohnt sich dieser Zusatzaufwand: man muss weniger überlegen, bekommt einheitlicheren Code im Team und muss die Erzeugung später nicht refaktorisieren, wenn man doch isolieren will.&lt;br /&gt;&lt;br /&gt;&lt;h3 class="post-title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7248155004298939319?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7248155004298939319/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7248155004298939319&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7248155004298939319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7248155004298939319'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/separation-of-concerns-application.html' title='Separation of Concerns: Application Logic vs. Creation Logic'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4336609046368467514</id><published>2008-07-02T08:05:00.002+02:00</published><updated>2008-07-02T08:11:01.191+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>REST für Geschäftsanwendungen</title><content type='html'>Dem &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST-Architekturstil&lt;/a&gt; wird häufig "vorgeworfen", er würde für komplexe Situationen / Geschäftsanwendungen nicht funktionieren. Tatsächlich gibt es bisher &lt;a href="http://stefanroock.blogspot.com/2007/02/rest-fr-geschftsanwendungen.html"&gt;wenig Erfahrungen mit REST in Geschäftsanwendungen&lt;/a&gt;. Es gibt aber &lt;a href="http://bitworking.org/news/201/RESTify-DayTrader"&gt;Beispiel-Geschäftsanwendung&lt;/a&gt;, die zeigt, dass REST durchaus auch für Geschäftsanwendungen funktionieren kann.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4336609046368467514?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4336609046368467514/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4336609046368467514&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4336609046368467514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4336609046368467514'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/rest-fr-geschftsanwendungen.html' title='REST für Geschäftsanwendungen'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8582415484099305119</id><published>2008-07-02T07:49:00.002+02:00</published><updated>2008-07-02T08:02:55.296+02:00</updated><title type='text'>InfoQ: Komplexität rund um Einfachheit</title><content type='html'>Gerade ist ein InfoQ-Artikel &lt;a href="http://www.infoq.com/news/2008/07/agile-simplicity-complexity"&gt;The Complexity Around Simplicity&lt;/a&gt; erschienen. In dem Artikel wird eine "Erkenntnis" genannt, der ich zustimme: '&lt;span style="font-weight: bold;"&gt;What is "simple" for one request may &lt;/span&gt;&lt;u style="font-weight: bold;"&gt;not&lt;/u&gt;&lt;span style="font-weight: bold;"&gt; be "simple" for the whole!&lt;/span&gt;'&lt;br /&gt;Aber der genannten Konsequenz stimme ich so nicht zu: 'trying to simplify one part of the system may bring undue complexities in other parts of the system. There is a need to view the system as a whole.'&lt;br /&gt;Das würde ja bedeuten, dass ich bei Projektstart doch alles wissen muss und letztlich agile Vorgehensweisen zu komplexen/schlechten Entwürfen führen müssen.&lt;br /&gt;Ich würde aus der erstgenannten Erkenntnis eine andere Konsequenz ableiten: Die einfache Lösung muss für den Kern des Systems passen. Wenn das dazu führt, dass der Rand des Systems etwas komplexer zu realisieren ist, ist das vollkommen OK.&lt;br /&gt;Konkretes Beispiel: Verteilte Transaktionen lassen sich mit EJBs verhältnismäßig einfach realisieren. Wenn ich keine verteilten Transaktionen brauche, bedeuten EJBs aber zusätzliche Komplexität. Aber woher weiß ich, dass ich keine verteilten Transaktionen brauchen werde? Ich kenne ja noch nicht alle Anforderungen. Ich kann es nicht wissen.&lt;br /&gt;Viele Teams neigen dann dazu, EJBs auf Vorrat in das System einzubauen. Leider belasten sie dann das ganze System mit der damit einhergehenden Komplexität.&lt;br /&gt;Ich gucke mir den Kern des Systems an, ob ich verteilte Transaktionen brauche. Wenn ich dort keine verteilten Transaktionen brauche, setze ich auch kein EJB ein. Wenn später dann am Systemrand verteilte Transaktionen benötigt werden, akzeptiere ich für diese paar Zeilen Code auch eine deutlich höhere Komplexität. Ich bin überzeugt davon, dass ich dadurch in der Gesamtsumme die einfachere Lösung bekomme.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8582415484099305119?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8582415484099305119/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8582415484099305119&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8582415484099305119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8582415484099305119'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/07/infoq-komplexitt-rund-um-einfachheit.html' title='InfoQ: Komplexität rund um Einfachheit'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-5455307205753161039</id><published>2008-05-31T22:33:00.003+02:00</published><updated>2008-05-31T22:38:38.695+02:00</updated><title type='text'>XP-Days Germany 2008: Call for Sessions</title><content type='html'>Der Call for Session für die XP-Days Germany 2008 ist draußen: &lt;a href="http://xpdayblog.it-agile.de/blog/?p=128"&gt;http://xpdayblog.it-agile.de/blog/?p=128&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Als diesjähriger Vorsitzender des Programm-Komitees freue ich mich über jede Menge Beiträge.&lt;br /&gt;&lt;br /&gt;Dieses Jahr werden wir zum ersten Mal ein offenes Review-Verfahren einsetzen: Jeder Interessierte kann Beiträge begutachten und sein Feedback abgeben. Dadurch werden die potenziellen Teilnehmer an den XP-Days selbst an der Programm-Gestaltung beteiligt. Außerdem laufen Einreichungs- und Reviewprozess parallel. So können Einreicher auf Basis des Feedbacks ihre Vorschläge überarbeiten, so dass insgesamt ein noch besseres Konferenzprogramm entsteht. Wer nicht selbst einreichen, aber begutachten möchte, kann das nach Registrierung im Conf-Tool jederzeit gerne tun: &lt;a href="http://www.conftool.com/xpdays2008"&gt;http://www.conftool.com/xpdays2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wer zum Verfahren oder zur Konferenz noch Fragen oder Feedback hat, kann sich gerne an mich wenden: stefan AT stefanroock DOT com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-5455307205753161039?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/5455307205753161039/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=5455307205753161039&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5455307205753161039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/5455307205753161039'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/05/xp-days-germany-2008-call-for-sessions.html' title='XP-Days Germany 2008: Call for Sessions'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4034662043802488437</id><published>2008-05-07T20:44:00.001+02:00</published><updated>2008-05-07T20:45:56.601+02:00</updated><title type='text'>Erst wenn...</title><content type='html'>Gerade habe ich diesen schönen Gedankenerguss irgendwo im Internet gefunden:&lt;br /&gt;&lt;br /&gt;"Erst wenn der letzte Programmierer eingesperrt und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4034662043802488437?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4034662043802488437/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4034662043802488437&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4034662043802488437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4034662043802488437'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/05/erst-wenn.html' title='Erst wenn...'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8076071022787214275</id><published>2008-03-26T11:26:00.003+01:00</published><updated>2008-03-26T11:29:29.515+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Übersichtsartikel zu eXtreme Programming</title><content type='html'>Ich habe in der Zeitschrift &lt;a href="http://www.dotnetpro.de/"&gt;dotnetpro&lt;/a&gt; einen &lt;a href="http://www.dotnetpro.de/articles/onlinearticle2539.aspx"&gt;Übersichtsartikel zu eXtreme Programming &lt;/a&gt;veröffentlicht (&lt;a id="ctl01_HL_Issue" href="http://www.dotnetpro.de/articles/articlearchive1721.aspx"&gt;dotnetpro 02/2008&lt;/a&gt; auf Seite 28). In der Ausgabe finden sich außerdem Artikel zu anderen agilen Methoden wie Scrum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8076071022787214275?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8076071022787214275/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8076071022787214275&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8076071022787214275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8076071022787214275'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/03/bersichtsartikel-zu-extreme-programming.html' title='Übersichtsartikel zu eXtreme Programming'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-9066891508795284402</id><published>2008-03-18T09:16:00.006+01:00</published><updated>2008-03-18T13:18:38.212+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Software-Architektur mit Dependency-Injection</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Überblick&lt;/span&gt;  &lt;p class="MsoNormal"&gt;Dieser Artikel beschreibt meine Erfahrungen mit Dependency-Injection (DI) in mehrjährigen Großprojekten. Dabei geht es vor allem um die Best-Practices für Entwurf und Architektur.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Wir haben vor allem handprogrammierte DI, Pico-Container und Java-Server-Faces als DI-Container eingesetzt. Der Artikel bezieht sich primär auf Pico-Container. Die „Erkenntnisse“ lassen sich aber auf andere DI-Container übertragen.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In einem Großprojekt haben wir ein System mit vielen Singletons schrittweise auf Pico-Container umgestellt. Wir haben einige größere Refactorings in dem Projekt durchgeführt und bei vielen war der Nutzen letztlich zweifelhaft. Der Umbau auf Pico-Container gehört aber definitiv zu den Umbauten, die sich deutlich gelohnt haben.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Zielsetzungen&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Mit DI kann man eine Reihe von Zielen erreichen:&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Entwurf      entkoppeln&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Abhängigkeiten      explizieren&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Testbarkeit      verbessern&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;Singletons und static-Attribute      eliminieren&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Entwurf entkoppeln&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;DI führt nicht automatisch zu einer Entkopplung der Systemkomponenten. Man kann sich auch mit DI eigenartige und unwartbare Abhängigkeitsgeflechte zusammenbauen. Ohne DI hingegen ist es in der Praxis fast unmöglich, entkoppelte Systeme zu bauen. In diesem Sinne ist DI eine notwendige, aber keine hinreichende Bedingung für Entkopplung. Wenn man zusätzlich zu DI noch Interfaces und testgetriebene Entwicklung einsetzt, bekommt man aber ohne größere Anstrengungen ein gut entkoppeltes System.&lt;/p&gt;  &lt;h3 style="font-weight: bold;"&gt;&lt;span style="font-size:100%;"&gt;Abhängigkeiten explizieren&lt;/span&gt;&lt;/h3&gt;  &lt;p class="MsoNormal"&gt;DI macht die Abhängigkeiten von Objekten an ihrer Schnittstelle deutlich. Dadurch ist erstmal natürlich nur ein wenig Dokumentation gewonnen. In unseren Projekten hat dieses kleine bisschen Mehr an Dokumentation aber erheblichen Einfluss darauf gehabt, wie gut man Entwürfe verstehen konnte.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h3&gt;&lt;span style="font-size:100%;"&gt;Testbarkeit verbessern&lt;/span&gt;&lt;/h3&gt;  &lt;p class="MsoNormal"&gt;Durch die Entkopplung ließen sich die einzelnen Komponenten besser testen. Hier fällt insbesondere die Harmonie von DI mit Mock-Testen&lt;span style="font-size:100%;"&gt;&lt;a style="font-weight: bold;" href="http://www.blogger.com/post-edit.g?blogID=6599870&amp;amp;postID=9066891508795284402#_ftn1" name="_ftnref1" title=""&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;&lt;!--[if !supportFootnotes]--&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;[1]&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;positiv auf. Zusammen mit testgetriebener Entwicklung entsteht ein schlagkräftiges Trio. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Nicht zuletzt laufen so entkoppelte Tests viel schneller ab als klassisch erstellte Unit-Tests (in einigen Fällen konnten wir Testlaufzeiten von mehreren Minuten auf unter 10 Sekunden reduzieren).&lt;/p&gt;  &lt;h3&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Singletons und static-Attribute eliminieren&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;  &lt;p class="MsoNormal"&gt;Setzt man DI konsequent ein, braucht man weder Singletons noch irgendeine andere Form statischer Attribute. Dadurch werden Zustandsabhängigkeiten im System reduziert, so dass sich Systemteile besser unabhängig voneinander wieder verwenden und testen lassen.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In unseren Projekten sind durch die Umstellung von Singletons auf DI eine ganze Reihe eigenartiger Phänomene beim Ausführen und beim Testen verschwunden.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Pico-Container im Code&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Pico-Container ist ein sehr leichtgewichtiger DI-Container, der programmatisch konfiguriert wird. Daher können programmatisch DI-Container erzeugt und an andere Objekte übergeben werden. Da ist eine Fußangel versteckt: Man sollte Pico-Container &lt;i style=""&gt;minimal-invasiv&lt;/i&gt; benutzen. Das bedeutet, dass möglichst wenig Code Kenntnis davon haben soll, dass Pico-Container (oder ein anderer DI-Container) eingesetzt wird. Folglich sollten die Pico-Container nur im &lt;i style=""&gt;Startup&lt;/i&gt; erzeugt werden. Weitere Klassen dürfen nicht vom Pico-Container abhängen. In der Schichtung des Systems liegt der Pico-Container also ganz oben.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Pico-Container in Tests&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;In Unittests hat Pico-Container nichts verloren. Sind die getesteten Klassen so kompliziert miteinander verflochten, dass man sie manuell nicht zusammenstecken kann, ist Refactoring angesagt – und zwar schleunigst. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Welche Klassen registriert man beim DI-Container?&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;In unseren Projekten haben sich drei Typen von Klassen etabliert, die wir typischerweise beim DI-Container registrieren.&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Fabriken      &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Services&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Objekte,      die nur einmal existieren dürfen (ehemalige Singletons)&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Wofür baut man Fabriken?&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Wenn ein Objekt andere Objekte erzeugen will, kann man diese Objekte nicht über DI hineinreichen – man weiß ja noch nicht, wie viele Objekte erzeugt werden. In solchen Fällen reicht man stattdessen Fabriken per DI in das Objekt. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Fabriken werden häufig mit static-Methoden implementiert. Wenn man die Fabriken beim DI-Container registriert, wäre das jedoch einigermaßen witzlos. Also gilt: Fabriken sollten keine static-Methoden enthalten – static-Attribute sowieso nicht.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In vielen Projekten habe ich beobachtet, dass viel zu selten Fabriken benutzt werden! Fabriken (ohne static-Methoden) helfen bei DI und erleichtern das Testen mit Mocks ungemein&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;a style="" href="http://www.blogger.com/post-edit.g?blogID=6599870&amp;amp;postID=9066891508795284402#_ftn2" name="_ftnref2" title=""&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;&lt;!--[if !supportFootnotes]--&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;[2]&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;. Im Zweifel würde ich lieber eine Fabrik zuviel spendieren.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Abschluss&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Unsere Erfahrungen mit Pico-Container haben wir in erster Linie in Rich-Clients gesammelt. Wir haben Pico-Container serverseitig nicht verwendet. Es sollte jedoch möglich sein, weil der Pico-Container sehr leichtgewichtig ist. Der Overhead für die Erzeugung bei jedem Request oder EJB-Aufruf sollte in den meisten Anwendungen zu verkraften sein. Wenn der Overhead zu groß wird, kann man den Pico-Container mind. bei Webanwendungen auch in der Session speichern. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Inzwischen kommen viele Server-Infrastrukturen aber bereits mit eigenen DI-Containern (Spring, JSF, EJB 3), so dass man serverseitig i.d.R. wahrscheinlich nicht in die Verlegenheit kommt, Pico-Container einzusetzen.&lt;/p&gt;  &lt;span style="font-size:130%;"&gt;Referenzen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;Easy Mock: &lt;a href="http://www.easymock.org/"&gt;http://www.easymock.org&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;EJB      3: &lt;a href="http://java.sun.com/products/ejb/docs.html"&gt;http://java.sun.com/products/ejb/docs.html&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;Java Server Faces: &lt;a href="http://java.sun.com/javaee/javaserverfaces"&gt;http://java.sun.com/javaee/javaserverfaces&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;Pico Container: &lt;a href="http://www.picocontainer.org/"&gt;http://www.picocontainer.org&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;Spring: &lt;a href="http://www.springframework.org/"&gt;http://www.springframework.org&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;!--[if !supportFootnotes]--&gt;&lt;br /&gt;&lt;/p&gt;  &lt;div style=""&gt;&lt;hr align="left"  width="33%" style="font-size:78%;"&gt;  &lt;!--[endif]--&gt;  &lt;div style="" id="ftn1"&gt;  &lt;p class="MsoFootnoteText"&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="" href="http://www.blogger.com/post-edit.g?blogID=6599870&amp;amp;postID=9066891508795284402#_ftnref1" name="_ftn1" title=""&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;&lt;!--[if !supportFootnotes]--&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;[1]&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt; z.B. mit Easy Mock&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div style="" id="ftn2"&gt;  &lt;p class="MsoFootnoteText"&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="" href="http://www.blogger.com/post-edit.g?blogID=6599870&amp;amp;postID=9066891508795284402#_ftnref2" name="_ftn2" title=""&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;&lt;!--[if !supportFootnotes]--&gt;&lt;span class="MsoFootnoteReference"&gt;&lt;span style=""&gt;[2]&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;Beim Testen gilt: &lt;i style=""&gt;Jedes Testproblem kann durch eine weitere Indirektion gelöst werden.&lt;/i&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-9066891508795284402?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/9066891508795284402/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=9066891508795284402&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/9066891508795284402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/9066891508795284402'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/03/software-architektur-mit-dependency.html' title='Software-Architektur mit Dependency-Injection'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1119482262270622922</id><published>2008-03-17T15:48:00.004+01:00</published><updated>2008-03-17T20:51:49.510+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Grails-Anwendung: Team-Radar ist Live</title><content type='html'>In einem &lt;a href="http://stefanroock.blogspot.com/2007/12/groovy-und-grails.html"&gt;früheren Post&lt;/a&gt; habe ich von den positiven Erfahrungen geschrieben, die &lt;a href="http://sanitz.net/sebastian/2008/03/umfragen-mit-team-radar.html"&gt;Sebastian&lt;/a&gt; und ich zusammen mit Grails gemacht haben. Jetzt ist die zugehörige Anwendung online: Das &lt;a href="http://teamradar.it-agile.de/"&gt;it-agile Team-Radar&lt;/a&gt; führt ein Mini-Assessment für die Einführung agiler Vorgehensweisen durch. Bisher unterstützt Team-Radar &lt;span style="font-style: italic;"&gt;Scrum&lt;/span&gt;. Andere agile Methoden wie &lt;span style="font-style: italic;"&gt;eXtreme Programming&lt;/span&gt; und &lt;span style="font-style: italic;"&gt;Feature Driven Development&lt;/span&gt; sind in Planung.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1119482262270622922?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1119482262270622922/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1119482262270622922&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1119482262270622922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1119482262270622922'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/03/meine-erste-grails-anwendung-team-radar.html' title='Grails-Anwendung: Team-Radar ist Live'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-437068690276047067</id><published>2008-03-03T13:39:00.005+01:00</published><updated>2008-03-03T16:33:40.549+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><title type='text'>Junit 4.4: assertThat</title><content type='html'>&lt;span style="font-weight: bold;font-size:100%;" &gt;JUnit 4.4&lt;/span&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/junit/"&gt;Junit 4.4&lt;/a&gt; ist bereits seit über einem halben Jahr verfügbar. Von den Projekten, die ich kenne, arbeiten viele aber noch mit JUnit 4.0 oder noch älter. Grund genug, einmal ein unscheinbar daher kommendes neues Feature zu betrachten.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;assertThat&lt;/span&gt;&lt;br /&gt;Zunächst gibt es eine neue assert-Methode namens &lt;span style="font-weight: bold;"&gt;assertThat&lt;/span&gt;. assertThat bekommt zwei Parameter übergeben, den tatsächlichen Wert (im Gegensatz zu assertEquals als ersten Parameter) und einen Matcher. Über die Matcher wird letztlich die zu testende Bedingung ausgedrückt.&lt;br /&gt;&lt;br /&gt;Aus&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;assertEquals(10, list.size());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;wird&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import static org.hamcrest.core.Is.is;&lt;br /&gt;...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;assertThat&lt;/span&gt;(list.size(), &lt;span style="font-weight: bold;"&gt;is&lt;/span&gt;(10));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Diese Art der Notation geht in Richtung &lt;a href="http://martinfowler.com/bliki/FluentInterface.html"&gt;Fluent-Interface&lt;/a&gt; und ist aus meiner Sicht etwas besser lesbar als die klassische Notation.&lt;br /&gt;&lt;br /&gt;Zusätzlich zu &lt;span style="font-weight: bold;"&gt;is()&lt;/span&gt; sind weitere Matcher verfügbar, so dass man im Wesentlichen mit &lt;span style="font-style: italic;"&gt;assertThat &lt;/span&gt;auskommen sollte und die meisten anderen assert-Methoden nicht mehr braucht.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Ausdrucksstärker mit Hancrest&lt;/span&gt;&lt;br /&gt;Die &lt;span style="font-style: italic;"&gt;assertThat&lt;/span&gt;-Notation geht auf &lt;a href="http://code.google.com/p/hamcrest"&gt;Hamcrest&lt;/a&gt; zurück. In JUnit 4.4 ist ein Teil davon enthalten - warum man da so halbe Sachen gemacht hat, erschließt sich mir nicht. Wenn man &lt;span style="font-style: italic;"&gt;assertThat &lt;/span&gt;verwenden möchte, empfiehlt es sich aus meiner Sicht, Hamcrest komplett mit einzubinden. Dann hat man mächtige Matcher zur Verfügung, die die Tests nicht nur lesbarer, sondern auch kürzer gestalten. Möchte ich z.B. den Inhalt einer Liste testen, ist das mit Hamcrest ein Einzeiler:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import static org.hamcrest.Matchers.*;)&lt;br /&gt;...&lt;br /&gt;assertThat(list, &lt;span style="font-weight: bold;"&gt;hasItems&lt;/span&gt;("a", "b", "c"));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Bessere Fehlermeldungen&lt;/span&gt;&lt;br /&gt;Nicht zuletzt generiert Hancrest bei fehlschlagenden Tests Fehlermeldungen, die häufig aussagekräftiger sind als bei JUnit-Classic. Bei JUnit-Classic war man außerhalb von &lt;span style="font-style: italic;"&gt;assertEquals&lt;/span&gt; auf &lt;span style="font-style: italic;"&gt;assertTrue&lt;/span&gt; oder &lt;span style="font-style: italic;"&gt;assertFalse&lt;/span&gt; angewiesen und hat dann nur die Meldung bekommen, dass der Test fehlgeschlagen war. Die Gründe dafür konnte man in der Meldung aber nicht erkennen. Hamcrest hingegen generiert aus dem kompletten Matcher eine aussagekräftige Fehlermeldung:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;assertThat(foo, anyOf(is(1), is(3)));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;prüft, dass das &lt;span style="font-style: italic;"&gt;foo&lt;/span&gt; den Wert 1 oder 3 hat (man möge mir das schwache Beispiel verzeihen). Wenn das nicht der Fall ist, erhalten wir in JUnit eine aussagekräftige Fehlermeldung:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;java.lang.AssertionError:&lt;br /&gt;Expected: (is &lt;1&gt; or is &lt;3&gt;)&lt;br /&gt;    got: &lt;2&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fazit&lt;/span&gt;&lt;br /&gt;Das &lt;span style="font-style: italic;"&gt;assertThat&lt;/span&gt;-Feature kommt etwas unscheinbar daher. Ich finde, dass dem Feature mehr Ehre gebührt und dass es in der Praxis einen größeren positiven Effekt hat, als man zunächst meinen möchte.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-437068690276047067?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/437068690276047067/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=437068690276047067&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/437068690276047067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/437068690276047067'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/03/junit-44-assertthat.html' title='Junit 4.4: assertThat'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2330611138865282031</id><published>2008-02-02T20:06:00.000+01:00</published><updated>2008-02-02T20:13:28.766+01:00</updated><title type='text'>Wer erinnert sich noch: Real Programmers Don't Use PASCAL</title><content type='html'>Diese Woche war ich mit zwei Kollegen Essen. Ein Wort gab das andere und wir hatten viel Spaß. Aber als ich sagte "Ha, ha, ha. Und dann damals dieser Artikel 'Real Programmers Don't Use PASCAL'. Ein echter Hammer." sah ich in irritierte zwei Augenpaare. Und ich erkannte: "Die sind jung. Du bist alt - jedenfalls gemessen in IT-Jahren.".&lt;br /&gt;&lt;br /&gt;Also hier für alle alten Säcke nochmal der Link auf den Artikel (damals kursierten schlechte Fotokopien davon, heute gibt es das Internet). Auf dass wir in sentimentalen "das waren noch Zeiten"-Gefühlen versinken...&lt;br /&gt;&lt;br /&gt;Und vielleicht finden den Artikel ja auch die Jüngeren amüsant.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.ee.ryerson.ca/%7Eelf/hack/realmen.html"&gt;Real Programmers Don't Use PASCAL&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2330611138865282031?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2330611138865282031/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2330611138865282031&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2330611138865282031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2330611138865282031'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/02/wer-erinnert-sich-noch-real-programmers.html' title='Wer erinnert sich noch: Real Programmers Don&apos;t Use PASCAL'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3122655069030827715</id><published>2008-01-23T15:08:00.000+01:00</published><updated>2008-01-23T15:15:26.101+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Zertifizierung durch Community</title><content type='html'>Das Thema Zertifizierung ist in der agilen Community umstritten. Scrum setzt stark auf Zertifizierungen, FDD etwas, XP gar nicht.&lt;br /&gt;Auf der einen Seite wird argumentiert, dass Zertifikate dem Kunden eine Auskunft über bestimmte Minimalkriterien geben. Auf der anderen Seite steht, dass das Minimum möglicherweise nur aussagt, dass man eine bestimmte Zeit in einer Schulung abgesessen hat und das für den Kunden zu wenig aussagekräftig ist.&lt;br /&gt;Daher haben sich viele auf den Standpunkt gestellt, Zertifikate bringen nur dann etwas, wenn man zu ihrer Erlangung auch Fähigkeiten nachweisen muss.&lt;br /&gt;Es gibt jetzt eine neue Web-Site namens &lt;a href="http://wevouchfor.org"&gt;&lt;span style="font-style: italic;"&gt;You Vouch For&lt;/span&gt;&lt;/a&gt;, die diesen Ansatz auf Community-Basis  verfolgt. Man trägt sich dort ein und kann andere Leute "zertifizieren", also bescheinigen, dass sie bestimmte Dinge können.&lt;br /&gt;Mir fallen sofort dutzende Gründe ein, warum das Vorhaben nicht funktionieren könnte. Ich finde es aber ausreichend interessant, dass man der Geschichte eine Chance geben sollte. Ich habe mich also gleich mal registriert...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3122655069030827715?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3122655069030827715/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3122655069030827715&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3122655069030827715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3122655069030827715'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/01/zertifizierung-durch-community.html' title='Zertifizierung durch Community'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7604717718931631390</id><published>2008-01-04T14:03:00.000+01:00</published><updated>2008-01-04T14:10:02.866+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Verteilte Meetings mit Card-Meeting</title><content type='html'>Es gibt eine Internetanwendung namens &lt;a href="http://www.cardmeeting.com"&gt;Card-Meeting&lt;/a&gt;, mit der man kooperativ Karteikarten unterschiedlicher Farben beschreiben und anordnen kann. Ich habe das Tool im Dezember für eine verteilte Retrospektive verwendet, zusammen mit Skype. Es lief stabil und hat genau die wenigen Funktionen, die man braucht.&lt;br /&gt;&lt;br /&gt;Drollige Geschichte am Rande: Einer der Teilnehmer wollte von zu Hause aus an der Retrospektive teilnehmen und hatte sich seinen Rechner zerschossen. Also ist er zu seiner Schwester und hat deren alten PC verwendet. Der Rechner war anscheinend etwas zu alt für Skype. Auf jeden Fall ist Nico immer wieder aus dem Chat geflogen. Das haben wir aber zuerst gar nicht bemerkt, weil wir Skype im Hintergrund hatten und Card-Meeting im Vordergrund.&lt;br /&gt;Nico hat dann einfach eine rote Karte in Card-Meeting geschrieben "Nico wieder zu Skype einnladen" und hat damit in Card-Meeting rumgewedelt, so dass wir auf das Problem aufmerksam wurden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7604717718931631390?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7604717718931631390/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7604717718931631390&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7604717718931631390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7604717718931631390'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2008/01/verteilte-meetings-mit-card-meeting.html' title='Verteilte Meetings mit Card-Meeting'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4891744619626433476</id><published>2007-12-21T17:48:00.000+01:00</published><updated>2007-12-21T17:56:40.069+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>mein erstes Grails-Projekt</title><content type='html'>Eigentlich bin ich eher skeptisch, was neue Technologien angeht. Zu häufig wird viel zu viel versprochen und der Gesamtnutzen bleibt zweifelhaft. Viele Technologien lösen auch schlicht Probleme, die ich gar nicht habe.&lt;br /&gt;Bei Groovy und Grails verhält es sich anders. Ich hatte jetzt das Glück, dass ich zum Jahresausklang ein kleines Grails-Projekt machen konnte. Ich hatte Grails bereits vorher ein wenig ausprobiert und hatte daher eine Idee, was mich erwartete. Und diese Erwartungen wurden noch übertroffen.&lt;br /&gt;Wir haben in sehr kurzer Zeit eine kleine aber komplette Internetanwendung mit lächerlich wenig Code geschrieben. (Sobald die Anwendung Live ist, werde ich den Link hier mal posten.)&lt;br /&gt;Besonders beeindruckt hat mich die Klarheit des Programmiermodells. Struts, JSF und Spring Web-MVC haben bei mir immer das Gefühl hinterlassen, dass intern Dinge passieren, die ich nicht ganz verstehe. Dieses Gefühl habe ich mit Grails nicht.&lt;br /&gt;Weiterhin ist interessant, dass wir - obwohl es für alle das erste Grails-Projekt war - jedes Problem in weniger als 2 Stunden lösen konnten. Bei anderen Java-Technologien hatten wir immer wieder Fälle, wo wir uns Tage oder gar Wochen die Zähne ausgebissen haben; teilweise konnten wir die Probleme gar nicht lösen und mussten dann mit Work-Arounds arbeiten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4891744619626433476?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4891744619626433476/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4891744619626433476&amp;isPopup=true' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4891744619626433476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4891744619626433476'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/groovy-und-grails.html' title='mein erstes Grails-Projekt'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-850487804527720327</id><published>2007-12-15T14:15:00.001+01:00</published><updated>2007-12-15T14:20:35.428+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>neues Buch zu Scrum</title><content type='html'>Roman Pichler hat im dpunkt-Verlag ein deutschsprachiges &lt;a href="http://www.dpunkt.de/buecher/2682.html"&gt;Scrum&lt;/a&gt;-Buch veröffentlicht. Es ist angenehm dünn (gut 180 Seiten) und sehr pragmatisch und handlungsleitend. Es bietet insbesondere dem Einsteiger in agile Softwareentwicklung genau die Handreichungen, die benötigt werden. Der erfahrene Agilist kann dem Buch sicher noch die eine oder andere neue Idee oder Technik entnehmen und erhält einen guten Überblick über den aktuellen Stand von Scrum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-850487804527720327?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/850487804527720327/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=850487804527720327&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/850487804527720327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/850487804527720327'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/neues-buch-zu-scrum.html' title='neues Buch zu Scrum'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3941466047304559447</id><published>2007-12-15T13:31:00.000+01:00</published><updated>2007-12-15T13:39:17.196+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Korrektur zur DAO-Aussage im Hibernate-Buch</title><content type='html'>In dem &lt;a href="http://www.dpunkt.de/buecher/2663.html"&gt;Hibernate-Buch von Arno, Robert, Sebastian und mir&lt;/a&gt; gibt es eine Falschaussage, die ich zu verantworten habe. In Abschnitt 8.2 steht, dass man mit Hibernate keine DAOs mehr braucht.&lt;br /&gt;&lt;br /&gt;Das stimmt, wenn man DAOs nur zur Kapselung der DB bzw. von JDBC verwenden möchte. Denn das leistet Hibernate sehr gut. Dennoch sollte man seine Anwendung ohne Datenbank testen wollen, also Mocks einsetzen. Und dazu braucht man dann doch wieder sowas wie DAOs.&lt;br /&gt;In unseren Projekten setzen wir da auf das Repository-Muster von &lt;a href="http://domaindrivendesign.org/"&gt;Domain Driven Design&lt;/a&gt; (Eric Evans), was technisch den DAOs sehr ähnlich ist.&lt;br /&gt;&lt;br /&gt;Sorry für die Falschaussage und Danke an &lt;a href="http://jandiandme.blogspot.com/"&gt;Eberhard Wolff&lt;/a&gt;, dass er mich darauf aufmerksam gemacht hat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3941466047304559447?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3941466047304559447/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3941466047304559447&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3941466047304559447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3941466047304559447'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/korrektur-zur-dao-aussage-im-hibernate.html' title='Korrektur zur DAO-Aussage im Hibernate-Buch'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4741470481316179839</id><published>2007-12-15T13:17:00.000+01:00</published><updated>2007-12-15T13:21:40.852+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Screencast zum Vortrag "Einfachheit in Softwareprojekten"</title><content type='html'>Auf den XP-Days habe ich einen Vortrag mit dem Titel "Einfachheit in Softwareprojekten" gehalten. Den habe ich als Screencast aufgezeichnet und dabei leider das Mikro so übersteuert, dass der Ton unbrauchbar ist.&lt;br /&gt;Glücklicherweise hat Jens Himmelreich den Ton separat aufgezeichnet und mir zur Verfügung gestellt. Nach ziemlich viel Arbeit habe ich es dann auch geschafft, Bild und Ton so zu mischen, dass sie synchron laufen.&lt;br /&gt;Das Gesamtkunstwerk kann man sich &lt;a href="http://www.it-agile.de/einfachheitsvortrag.html"&gt;hier ansehen&lt;/a&gt; (oder einfach nur den Ton oder die Folien als PDF runterladen).&lt;br /&gt;&lt;br /&gt;Nochmal vielen vielen Dank an Jens Himmelreich. Ohne seine Ton-Aufnahme wäre das alles nichts geworden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4741470481316179839?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4741470481316179839/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4741470481316179839&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4741470481316179839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4741470481316179839'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/screencast-zum-vortrag-einfachheit-in.html' title='Screencast zum Vortrag &quot;Einfachheit in Softwareprojekten&quot;'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-434815107054073162</id><published>2007-12-15T13:06:00.000+01:00</published><updated>2007-12-15T13:07:09.423+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>die zweite Internet-Blase?</title><content type='html'>lustiges Video mit Musik dazu: http://valleywag.com/tech/online-video/here-comes-another-takedown-332666.php?autoplay=true&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-434815107054073162?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/434815107054073162/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=434815107054073162&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/434815107054073162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/434815107054073162'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/die-zweite-internet-blase.html' title='die zweite Internet-Blase?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3243882223496250961</id><published>2007-12-08T19:33:00.001+01:00</published><updated>2007-12-08T19:46:22.343+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Lohnt sich Dependency-Injection</title><content type='html'>Auf InfoQ ist gerade eine &lt;a href="http://www.infoq.com/news/2007/12/does-di-pay-off"&gt;Zusammenfassung einer Diskussion&lt;/a&gt; erschienen, in der es um die Frage geht, ob sich Dependency-Injection auszahlt. Die einen sagen, dass DI nur dazu gut ist, damit man entkoppelt mit Mocks testen kann. Stattdessen könne man aber auch bessere Mock-Frameworks benutzen, die DI nicht erzwingen. Die anderen sagen, dass Testen DI erzwingt und dass daher DI automatisch gut ist.&lt;br /&gt;&lt;br /&gt;Ich finde, die Diskussion geht etwas am eigentlichen Kern vorbei. DI ist erstmal nur eine Technik, genauso wie Mock-Testen. Keines von beiden ist generell gut oder schlecht. Genauso wie Entkopplung nicht automatisch gut ist. Man muss auch die richtigen Teile entkoppeln.&lt;br /&gt;&lt;br /&gt;Meiner Meinung nach ist das &lt;a href="http://www.objectmentor.com/resources/articles/dip.pdf"&gt;Dependency-Inversion-Principle&lt;/a&gt; (DIP) das übergeordnete Konzept. DIP sagt, dass ein High-Level-Konzept nicht von Low-Level-Implementationen abhängen sollen. Demnach darf z.B. die Fachlogikschicht nicht von der Datenbankschicht abhängen. Begründung: Low-Level-Implementationen ändern sich häufiger als High-Level-Konzepte und die Änderungen finden nicht nur hinter dem API der Low-Level-Implementation statt, sondern schlagen häufig bis in die Klienten durch. Hängen die High-Level-Konzepte von den Low-Level-Implementationen ab, müssen sie unnötig häufig geändert werden.&lt;br /&gt;&lt;br /&gt;Das bedeutet: &lt;span style="font-style: italic;"&gt;DIP ist generell gut&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;DI und Mocks erlauben mir, DIP umzusetzen. Daher sind DIP und Mocks mind. dann gut, wenn sie für DIP eingesetzt werden.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Interessanterweise korreliert DIP mit vielen Aspekten aus &lt;a href="http://www.amazon.de/Moderne-Software-Architektur-Umsichtig-planen-Quasar/dp/3898642925/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1197139561&amp;amp;sr=8-1"&gt;Quasar&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3243882223496250961?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3243882223496250961/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3243882223496250961&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3243882223496250961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3243882223496250961'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/lohnt-sich-dependency-injection.html' title='Lohnt sich Dependency-Injection'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7140131444114274147</id><published>2007-12-08T18:05:00.000+01:00</published><updated>2007-12-08T18:20:43.253+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='People'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Warum einfach, wenn es auch kompliziert geht?</title><content type='html'>Ich habe auf den &lt;a href="http://www.xpdays.de/2007/de/index.html"&gt;XP-Days&lt;/a&gt; in Karlsruhe einen Vortrag über Einfachheit in Softwareprojekten gehalten, den ich hoffentlich bald als Screencast online stellen kann.&lt;br /&gt;In dem Vortrag ich von einem Experiment berichtet, dass von Bavelas an der Stanford-Universität durchgeführt wurde. Man hat Propanden mit Bildern von Gewebezellen konfrontiert. Sie sollten ohne medizinische Vorkenntnisse diagnostizieren, ob die Zellen gesund oder krank sind. Sie bekamen als Feedback dann jeweils, ob sie richtig oder falsch gelegen haben. Aus dem Feedback entwickelten sie ein Modell darüber, woran man krankhafte Gewebezellen erkennt.&lt;br /&gt;Allerdings hat man nur der einen Gruppe korrektes Feedback gegeben. Die andere Gruppe hat zufälliges Feedback erhalten.&lt;br /&gt;Schließlich hat man Paare mit jeweils einem Vertreter jeder Gruppe gebildet, die dann gemeinsam Gewebezellen diagnostizieren sollten. Und dabei setzte sich meistens die Person durch, der man das zufällige Feedback gegeben hatte.&lt;br /&gt;Begründung: Diese Person hat sich auf Basis des zufälligen Feedbacks ein sehr kompliziertes (aber falsches) Modell darüber gemacht, woran man krankhafte Zellen erkennt. Die Person mit dem korrekten und einfachen Modell war begeistert von der Detailtiefe des komplizierten Modells ("da habe ich selbst wohl etwas übersehen") und ist daher der meist falschen Einschätzung seines Partners gefolgt.&lt;br /&gt;Und dieses Phänomen findet sich auch ständig in der Softwareprojekten. Es ist so verführerisch den komplizierten Architekturen, Technologien und Vorgehensmodellen zu folgen. Ich glaube jedoch, dass das meistens der falsche Weg ist: &lt;span style="font-style: italic;"&gt;Komplizierte Lösungen sind auch dann falsch, wenn sie richtig sind.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Eine genauere Beschreibung des Experimentes findet sich in &lt;a href="http://www.amazon.de/wirklich-Wirklichkeit-Wahn-T%C3%A4uschung-Verstehen/dp/3492243193/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1197134174&amp;amp;sr=8-1"&gt;"Wie wirklich ist die Wirklichkeit?"&lt;/a&gt; von Paul Watzlawick im Kapitel ("Warum einfach, wenn es auch kompliziert geht?"). Der Text findet sich unter der gleichen Überschrift auch &lt;a href="http://www.nibis.de/nli1/bbs/archiv/rahmenrichtlinien/made.pdf"&gt;Online &lt;/a&gt;auf Seite 20ff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7140131444114274147?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7140131444114274147/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7140131444114274147&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7140131444114274147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7140131444114274147'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/12/warum-einfach-wenn-es-auch-kompliziert.html' title='Warum einfach, wenn es auch kompliziert geht?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8934425274859103973</id><published>2007-11-26T18:31:00.000+01:00</published><updated>2007-11-26T18:33:47.300+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Interview mit Weinberg</title><content type='html'>Auf citerus.se gibt es ein &lt;a href="http://www.citerus.se/kunskap/pnehm/pnehmartiklar/interviewwithjerryweinberg.5.484cc23b1165f30e75680002483.html"&gt;Interview mit Gerald Weinberg&lt;/a&gt;, in dem er sich auch zu agilen Methoden äußert.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8934425274859103973?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8934425274859103973/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8934425274859103973&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8934425274859103973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8934425274859103973'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/interview-mit-weinberg.html' title='Interview mit Weinberg'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6564602175844921399</id><published>2007-11-25T13:57:00.001+01:00</published><updated>2007-11-25T14:00:11.544+01:00</updated><title type='text'>Wie viele Blogs?</title><content type='html'>Ich unterscheide bisher meinen privaten und meinen IT-Blog. Ich mache das, weil ich seinerzeit das Gefühl hatte, das wäre nützlich für die Leserschaft.&lt;br /&gt;Auf mehrfachen Wunsch eines einzelnen Herren überdenke ich diese Entscheidung gerade. Feedback dazu nehme ich gerne entgegen. Wollt Ihr lieber einen Gesamtblog lesen oder lieber getrennt nach privat und IT?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6564602175844921399?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6564602175844921399/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6564602175844921399&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6564602175844921399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6564602175844921399'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/wie-viele-blogs.html' title='Wie viele Blogs?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2012749082513628904</id><published>2007-11-25T13:53:00.000+01:00</published><updated>2007-11-25T13:56:04.210+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Audio gesucht zu "Einfachheit in Softwareprojekten"</title><content type='html'>Ich habe auf den XP-Days einen Vortrag zum Thema "Einfachheit in Softwareprojekten" gehalten. Den habe ich als Screencast aufgenommen (also Folien und Ton). Leider ist die Tonspur übersteuert, so dass man fast gar nichts mehr versteht.&lt;br /&gt;Mind. ein Teilnehmer hat den Ton auch aufgenommen. An den wendet sich dieser Post. Wenn Du das hier liest und der Ton einigermaßen brauchbar ist, schicke mir bitte, bitte, bitte den Ton an stefan AT stefanroock DOT de&lt;br /&gt;&lt;br /&gt;Und wenn jemand einen Tipp hat, wie man eine übersteuerte Tonspur reparieren kann, immer her damit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2012749082513628904?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2012749082513628904/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2012749082513628904&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2012749082513628904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2012749082513628904'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/audio-gesucht-zu-einfachheit-in.html' title='Audio gesucht zu &quot;Einfachheit in Softwareprojekten&quot;'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7391118325318603308</id><published>2007-11-25T13:34:00.000+01:00</published><updated>2007-11-25T13:53:14.320+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Termine, Termine, Termine</title><content type='html'>Ich bin in meiner Beratertätigkeit oft an verschiedenen Orten und habe dort viele Termine. Für die Terminverwaltung habe ich auch dann noch einen Papier-Organizer verwendet, als alle anderen bereits PDAs hatten. Letztlich konnte ich meinen Papier-Organizer doch nicht mehr aufrecht erhalten: Meine Chefs wollten, dass meine Termine für sie und meine Kollegen sichtbar sind. Das kann ich auch gut nachvollziehen. Wenn neue Anfragen reinkommen, möchte man gerne schnell abschätzen können, ob noch irgendwo "Luft" ist und wenn man gesucht wird, ist es auch ganz nützlich zu seheh, wo man steckt. Nicht zuletzt hat sich der zentrale elektronische Terminkalender sehr bewährt, um Termine für Meetings zu finden.&lt;br /&gt;Ich habe dann eine Weile versucht, den zentralen elektronischen Terminkalender manuell mit meiner Papier-Version zu synchronisieren. Erfolglos.&lt;br /&gt;Also habe ich mir auch einen PDA zugelegt, einen Palm. Als zentralen Terminkalender hatten wir seinerzeit Netscape Calendar im Einsatz. Die Synchronisation zwischen beiden hat wirklich hervorragend geklappt. Und auch der Netscape-Calendar war einfach zu benutzen.&lt;br /&gt;Der Netscape-Calendar wurde irgendwann aber nicht mehr weiterentwickelt, PDA und Telefon wurden eins (nämlich Nokia 9300i) und ich habe durch Arbeitgeberwechsel serverseitig mit Microsoft Exchange/Outlook zu kämpfen.&lt;br /&gt;Seitdem ist das Synchronisieren eine Katastrophe. Denn zuerst muss ich mal das Handy mit meinem Notebook verbinden. Und dann muss sich die ganze Geschichte noch mit dem Exchange-Server verbinden. Und das funktioniert bei mir leider nicht stabil. Jedes mal, wenn ich mich am Synchronisieren versuche, dauert es mind. ein paar Stunden, manchmal sogar Tage, bis ich es hinbekommen habe: Handy und Notebook wollen sich nicht mehr erkennen. Die Anmeldung am lokalen Outlook funktioniert nicht. Und dann ist der Exchange-Server nicht erreichbar. Und natürlich bekomme ich bei keinem der Probleme eine aussagelräftige Fehlermeldung.&lt;br /&gt;Das führt natürlich dazu, dass ich mich vor dem Synchronisieren drücke und es nächstes mal noch viel länger dauert.&lt;br /&gt;Auf der Suche nach einem Ausweg bin ich auf &lt;a href="http://www.google.com/calendar"&gt;Google-Calendar&lt;/a&gt; und &lt;a href="http://www.goosync.com"&gt;GooSync&lt;/a&gt; gestoßen. Google-Calendar ist wunderbar einfach zu benutzen (fairerweise muss ich sagen: der Outllok-Kalender ist so schlecht auch nicht, wenn man mal den richtigen der mehreren möglichen Kalender zu fassen hat). &lt;a href="http://www.goosync.com/"&gt;GooSync&lt;/a&gt; sorgt für die Synchronisation zwischen Handy und Google-Calendar. Es gibt eine kostenfreie Standardversion und eine Premium-Version, die ich mit 20 Pfund / Jahr durchaus erschwinglich finde. Die Installation ist sehr einfach (man bekommt einfach eine SMS auf's Handy geschickt und wenn man die speichert, ist alles installiert). Und meine ersten Synchronisationsversuche lassen sich auch ganz gut an.&lt;br /&gt;Jetzt muss nur noch der Outlook-Kalender weg und ich wäre wieder in dem Terminparadies, aus dem ich vor ca. 5 Jahren vertrieben wurde: Sync starten und alles flutscht.&lt;br /&gt;&lt;br /&gt;P.S.: Es gibt auch Software, die Outlook mit dem Google-Calendar synchronisiert. Die behebt mein Problem aber nicht wirklich. Die Anmeldung an Outlook und am Exchange-Server bringt immer noch Probleme ohne Ende.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7391118325318603308?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7391118325318603308/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7391118325318603308&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7391118325318603308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7391118325318603308'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/termine-termine-termine.html' title='Termine, Termine, Termine'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1111881836740443191</id><published>2007-11-20T20:06:00.000+01:00</published><updated>2007-11-20T20:08:28.044+01:00</updated><title type='text'>Dynamic Languages Shootout auf der OOP</title><content type='html'>&lt;a href="http://www.sigs-datacom.de/sd/kongresse/oop_2008/index.php?cat=dls_competition"&gt;http://www.sigs-datacom.de/sd/kongresse/oop_2008/index.php?cat=dls_competition&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1111881836740443191?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1111881836740443191/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1111881836740443191&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1111881836740443191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1111881836740443191'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/dynamic-languages-shootout-auf-der-oop.html' title='Dynamic Languages Shootout auf der OOP'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2736640579324948099</id><published>2007-11-09T13:03:00.000+01:00</published><updated>2007-11-09T13:05:58.605+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>13949712720901ForOSX</title><content type='html'>Ich benutze bisher kein Apple,  wünsche mir das aber mit jedem Tag der Windows-Benutzung ein wenig mehr. Ein echter Killer wäre es aber, wenn es Java nicht mehr auf dem Apple gibt. Daher nehme ich mit dieswem Blog-Post an einer interessanten Art der Abstimmung für Java auf Apple teil. Anschließend wird wohl gezählt, wie Google den Betreff im Web findet.&lt;br /&gt;&lt;a href="http://blogs.sun.com/bblfish/entry/vote_for_java6_on_leopard"&gt;Details.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2736640579324948099?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2736640579324948099/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2736640579324948099&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2736640579324948099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2736640579324948099'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/13949712720901forosx.html' title='13949712720901ForOSX'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4930190537137570413</id><published>2007-11-07T16:20:00.000+01:00</published><updated>2007-11-07T16:27:27.182+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>W-JAX: REST-Vortrag</title><content type='html'>Gestern habe ich auf der W-JAX einen sehr interessanten Vortrag zu REST gehört von &lt;a href="http://www.innoq.com/blog/st/"&gt;Stefan Tilkov&lt;/a&gt;. Der Vortragende hat lange Zeit mit Web-Services gearbeitet und propagiert heute REST.&lt;br /&gt;Inzwischen gibt es den &lt;a href="http://jcp.org/en/jsr/detail?id=311"&gt;JSR-311 namens JAX-RS&lt;/a&gt; für ein standardisiertes API für REST, an dem Stefan Tilkov auch mitarbeitet. Der ist noch im Early-Draft-Stadium. Es sieht aber schon ganz nett aus.&lt;br /&gt;Beim Vortrag habe ich denn auch ein Tool kennengelernt, dass wir bei unserem REST-Projekt auch benötigt hätten: &lt;span style="font-style:italic;"&gt;curl&lt;/span&gt;. Mit dem Ding kann man HTTP über die Kommandozeile machen. Im Gegensatz um Browser kann man manuell den Header, die Methode (GET, POST, PUT, DELETE etc.) festlegt und auch den Body.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4930190537137570413?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4930190537137570413/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4930190537137570413&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4930190537137570413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4930190537137570413'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/11/w-jax-rest-vortrag.html' title='W-JAX: REST-Vortrag'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-4469236347732906505</id><published>2007-10-30T21:55:00.000+01:00</published><updated>2007-10-30T21:56:44.730+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>XML...</title><content type='html'>http://c2.com/~ward/ascent.jpg&lt;br /&gt;&lt;br /&gt;(Danke an Sebastian für den Link)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-4469236347732906505?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/4469236347732906505/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=4469236347732906505&amp;isPopup=true' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4469236347732906505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/4469236347732906505'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/10/xml.html' title='XML...'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-2957805947748043652</id><published>2007-10-07T13:15:00.000+02:00</published><updated>2008-12-11T16:44:49.707+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>W-JAX 2007</title><content type='html'>Nicht nur die XP-Days stehen vor der Tür, sondern auch die &lt;a href="http://jax.de/"&gt;W-JAX&lt;/a&gt;. &lt;a href="http://www.it-agile.de"&gt;Meine Firma&lt;/a&gt; ist wieder mit Stand eine Vorträgen vertreten.&lt;br /&gt;&lt;br /&gt;Gleich am Anfang des &lt;a href="http://jax.de/konferenzen/wjax07/sessions.php?language=de&amp;tid=661"&gt;Agile Day&lt;/a&gt; halte ich zusammen mit meinem Kollegen &lt;a href="http://www.henningwolf.de/"&gt;Henning Wolf&lt;/a&gt; einen Vortrag über &lt;a href="http://jax.de/konferenzen/wjax07/sessions.php?language=de&amp;tid=661#session-1"&gt;Festpreisverträge in agilen Projekten&lt;/a&gt;. Dieses Thema treibt uns ständig um. Auf der einen Seite ist klar, dass klassische Festpreiskonstellationen schlecht zu agilen Vorgehensweisen passen, weil sie unter anderem das Lernen "verbieten". Allerdings sind die Alternativen rar. Stattdessen Aufwandsprojekte vorzuschlagen, ist zu sehr aus der Perspektive der Entwickler argumentiert. Aber der Wurm muss dem Fisch schmecken und nicht dem Angler. Und das tut er bei Aufwandsprojekten in der Regel nicht. Denn der Auftraggeber verliert ein gutes Stück der Kontrolle über die Kosten-Nutzen-Relation seines Projektes. In dem Vortrag wird es also sehr stark um das gehen, was sich zwischen Festpreis und Aufwand abspielen kann.&lt;br /&gt;&lt;br /&gt;Ich organisiere außerdem die &lt;a href="http://jax.de/konferenzen/wjax07/sessions.php?language=de&amp;tid=661#session-6"&gt;Lightning Talks&lt;/a&gt; auf dem &lt;a href="http://jax.de/konferenzen/wjax07/sessions.php?language=de&amp;tid=661"&gt;Agile Day&lt;/a&gt;. Im Gegensatz zu den Lightning Talks auf den XP-Days stehen auf der W-JAX die reinen Anfängerthemen nicht im Vordergrund. &lt;br /&gt;&lt;br /&gt;Und wie bei den XP-Days gibt es es auch bei der W-JAX ein Speaker-Logo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ZMvVpIHl0s/RwjAM4U4mdI/AAAAAAAAAEc/k5gh45LlmOo/s1600-h/Wjax_Speakerbutton.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_-ZMvVpIHl0s/RwjAM4U4mdI/AAAAAAAAAEc/k5gh45LlmOo/s400/Wjax_Speakerbutton.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5118552304017512914" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-2957805947748043652?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/2957805947748043652/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=2957805947748043652&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2957805947748043652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/2957805947748043652'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/10/w-jax-2007.html' title='W-JAX 2007'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ZMvVpIHl0s/RwjAM4U4mdI/AAAAAAAAAEc/k5gh45LlmOo/s72-c/Wjax_Speakerbutton.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7667939593561079773</id><published>2007-10-07T13:00:00.000+02:00</published><updated>2007-10-07T13:14:31.609+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>XP-Days 2007</title><content type='html'>Die &lt;a href="http://www.xpday.de/2007/de/index.html"&gt;XP-Days 2007&lt;/a&gt; stehen vor der Tür und zwar am 22. und 23. November in Karlsruhe. Das &lt;a href="http://www.xpday.de/2007/de/programm.html"&gt;Programm&lt;/a&gt; bietet ein breites Themenspektrum. &lt;br /&gt;&lt;br /&gt;Für Einsteiger in die agile Softwareentwicklung liefern die &lt;a href="http://www.xpday.de/2007/sessions/Lightning-Talks.html"&gt;Lightning Talks&lt;/a&gt; am 22.11.07 einen guten Überblick. Neben den Inhalten ist die Präsentationsstruktur sehr interessant: viele kurze Vorträge, die jeweils eine Aussage genau auf den Punkt bringen.&lt;br /&gt;&lt;br /&gt;Am 23.11.07 werde ich dann etwas zu einem meiner Lieblingsthemen sagen: &lt;a href="http://www.xpday.de/2007/sessions/Einfachheit.html"&gt;Einfachheit in Softwareprojekten&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Aber eigentlich schreibe ich diesen Blog-Eintrag nur, damit ich Gelegenheit habe, das coole XP-Days-Speaker-Logo zu verwenden, das mein Kollege &lt;a href="http://berndschiffer.blogspot.com/"&gt;Bernd Schiffer&lt;/a&gt; erstellt hat.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://johanneslink.net/downloads/xpdays-speaker-button.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand" src="http://johanneslink.net/downloads/xpdays-speaker-button.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7667939593561079773?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7667939593561079773/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7667939593561079773&amp;isPopup=true' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7667939593561079773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7667939593561079773'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/10/xp-days-2007.html' title='XP-Days 2007'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1472824771292797548</id><published>2007-10-06T15:11:00.000+02:00</published><updated>2007-10-06T15:37:03.623+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><category scheme='http://www.blogger.com/atom/ns#' term='Testen'/><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Klassen und Methoden im Wandel</title><content type='html'>Als ich studierte gab es genau eine Art, Klassen und Methoden zu benennen: Klassen wurden mit Substantiven benannt, die direkt dem ungesetzten Konzept bzw. ihrer Verantwortlichleit entsprechen sollten, z.B. Auftrag. Bei den Methoden wurde streng zwischen Funktionen und Prozeduren unterschieden. Funktionen liefern Werte und lassen den Objektzustand schön in Ruhe, während Prozeduren den Objektzustand ändern und keinen Rückgabewert haben. Ob etwas Funktion oder Prozedur ist, sollte nicht nur an der Signatur deutlich werden, sondern auch im Namen. Prozeduren werden immer in Befehlsform geschrieben (z.B. berechneSumme) während Funktionen eine Substantivform bekommen (ggf. mit einem 'get' als Präfix, z.B. 'getNummer'). Diese ganze Konzeption wurde z.B. von &lt;a href="http://de.wikipedia.org/wiki/Bertrand_Meyer"&gt;Bertrand Meyer&lt;/a&gt; vertreten und auch &lt;a href="http://www.amazon.de/Object-oriented-Software-Construction-Prentice-Hall-International/dp/0136291554/ref=sr_1_1/302-4350002-9780061?ie=UTF8&amp;s=books-intl-de&amp;qid=1191676598&amp;sr=1-1"&gt;gut begründet&lt;/a&gt;:&lt;br /&gt;Wenn man eine Klasse sucht, kann man sie leicht anhand ihres Namens finden. Und wenn man dann das API der Klasse liest, ist gleich klar, was die Methoden tun. Insbesondere ist klar, ob eine Methode nur einen Wert liefert oder ob sie gefährlich den Objektzustand manipuliert. &lt;br /&gt;&lt;br /&gt;In den letzten Jahren hat sich an verschiedenen Stellen ein deutlich anderer Programmierstil entwickelt. Der primäre Fokus hat sich gewandelt. Es geht nicht mehr primär darum, dass man das API einer Klasse leicht lesen und verstehen kann. Stattdessen soll der Klientencode möglichst gut lesbar sein.&lt;br /&gt;&lt;br /&gt;Bei der Benennung von Unit-Tests findet sich eine zarte Andeutung in diese Richtung. Statt AuftragTest.testSummenberechnung findet man heute immer häufiger AuftragTest.berechnetSummeDerPositionen. Die zweite Variante lässt sich als Spezifikation lesen "Auftrag berechnet Summe der Positionen".&lt;br /&gt;&lt;br /&gt;Noch deutlicher wird es, wenn man sich &lt;a href="http://en.wikipedia.org/wiki/Behavior_driven_development"&gt;Behaviour Driven Development (BDD)&lt;/a&gt; ansieht.&lt;br /&gt;&lt;br /&gt;Schließlich nutzen die &lt;a href="http://martinfowler.com/bliki/FluentInterface.html"&gt;Fluent Interfaces&lt;/a&gt; dieses Konzept auch außerhalb des Testens bzw. Spezifizierens für Produktivcode.&lt;br /&gt;&lt;br /&gt;Aus &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;TimeInterval meetingTime = new TimeInterval(fiveOClock, sixOClock);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;wird&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;TimeInterval meetingTime = fiveOClock.until(sixOClock);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Für viele Entwickler, die schon länger im Java- oder C++-Geschäft sind, sind diese fließenden Interfaces sehr gewöhnungsbedürftig. Allerdings wird eine Klasse viel häufiger eingesetzt als gelesen. Also scheint es nicht gerade abwegig, mehr Gewicht auf die Benutzbarkeit als die API-lesbarkeit zu legen.&lt;br /&gt;&lt;br /&gt;Trotzdem wird man absehbar wohl nicht alle Klassen mit einem Fluent Interfaces versehen. Dazu ist der Aufwand zu groß. Aber bei den Klassen, die sehr häufig benutzt werden, sind Fluent Interfaces sicher eine Überlegung Wert.&lt;br /&gt;&lt;br /&gt;Nachtrag: Ein Beispiel für ein Fluent Interface findet sich z.B. in Hibernate, wenn man eine Criteria zusammenbaut.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1472824771292797548?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1472824771292797548/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1472824771292797548&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1472824771292797548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1472824771292797548'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/10/klassen-und-methoden-im-wandel.html' title='Klassen und Methoden im Wandel'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-8761660201445617940</id><published>2007-09-30T15:19:00.001+02:00</published><updated>2007-09-30T15:22:15.608+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Ideenfluss</title><content type='html'>Bei der Veranstaltung zum Lean-Management in der Nordakademie ist mir nochwas aufgefallen: Ideen nehmen manchmal merkwürdige Wege. Wir Softwareentwickler haben mit der ganzen agilen Softwareentwicklung die Prinzipien von Lean Production, Lean Product Development und Lean Management aus dem produzierenden Gewerbe (vor allem: Toyota) genommen und auf IT übertragen.&lt;br /&gt;Jetzt kommt anderes produzierendes Gewerbe an und sagt: "Die ITler sind ja immer ganz vorne mit dabei. Die machen Scrum. Wie können wir das bloß auf unsere Probleme übertragen?"&lt;br /&gt;Dabei müssten sie doch nur gucken, was Toyota macht. Das sollte sich sich deutlich einfacher übertragen lassen. Aber vielleicht ist das zu langweilig?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-8761660201445617940?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/8761660201445617940/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=8761660201445617940&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8761660201445617940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/8761660201445617940'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/09/ideenfluss.html' title='Ideenfluss'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-6597725592246929999</id><published>2007-09-30T13:34:00.000+02:00</published><updated>2007-09-30T14:01:04.945+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Agil: Wann was bewerten?</title><content type='html'>Vor kurzem habe ich zusammen mit meinem Kollegen &lt;a href="http://www.henningwolf.de/"&gt;Henning Wolf&lt;/a&gt; einen Workshop bei der Nordakademie zum Thema Lean Management und Scrum mitgestaltet. Für uns war es eine besondere Erfahrung, weil unter den Teilnehmern so gut wie niemand war, der Software entwickelt. Ca. die Hälfte der Teilnehmer beauftragt die Entwicklung oder Einführung von Software, die andere Hälfte entwickelt physikalische Dinge wie Züge, Tablettenpressmaschinen oder Gabelstapler - individuell oder in Serie.&lt;br /&gt;In diesem Sinne hatten wir interessante Diskussionen, die sich vor allem um die Frage drehte, wie man mit den Scrum-Sprints umgehen soll: Bei der Entwicklung eines Zuges hat man erst sehr spät den Zug und kann den nicht bereits am Anfang dem Kunden zeigen. Außerdem stand die Frage im Raum, wie man vom klassischen Vorgehen schrittweise in Richtung Scrum kommt. Dabei hat sich herauskristallisiert, dass es drei zusammenhängende Aspekte gibt, die man gemeinsam in Richtung Scrum entwickeln muss: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Was wird präsentiert?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wem wird es präsentiert?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wann wird es präsentiert?&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Klassisch hat man einen Projektplan mit Meilensteinen. Bezogen auf die o.g. Fragen gilt für das klassische Projektvorgehen:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Was wird präsentiert? Immer unterschiedlich, je nach Meilenstein. Mal eine Konzeption, mal ein physikalisches Teil.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wem wird es präsentiert? Manchmal dem Kunden. Häufig gibt es aber gar keinen richtigen Kunden für das, was das präsentiert wird. Es sind nur interne Dokumente.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wann wird es präsentiert? In unregelmäßigen Abständen, jeweils wenn ein Artefakt fertig ist. Wenn es zum geplanten Zeitpunkt nicht fertig ist, wird der Termin häufig verschoben.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Scrum hingegen fordert:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Was wird präsentiert? Das, was der Kunde später auch bekommt, wofür er bezahlt.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wem wird es präsentiert? Dem Kunden. Wenn es ein Serienprodukt für viele (vielleicht anonyme) Kunden ist, übernimmt ein Kundenvertreter (Produktverantwortlicher) die Kundenrolle.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wann wird präsentiert? In der Regel alle 2 bis 4 Wochen, aber auf jeden Fall in regelmäßigen Abständen (Timeboxing).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Wie kommt man jetzt von Meilensteinen zu Scrum? Der erste Schritt ist einfach: Man macht Punkt drei genauso wie Scrum es fordert: Man definiert einen festen Rythmus, in dem man den Projektfortschritt bewertet und ggf. die Pläne anpasst. Seine Meilensteine kann man erstmal parallel dazu bestehen lassen. Es ist jedoch das Ziel, die Meilensteine komplett zu ersetzen.&lt;br /&gt;Und jetzt muss man sich für die Punkte eins und zwei schrittweise an Scrum annähern. Derjenige, dem präsentiert wird, muss dem Kunden immer ähnlicher werden und das, was präsentiert wird, muss dem immer ähnlicher werden, wofür der Kunde bezahlt.&lt;br /&gt;Das wird im ersten Schritt häufig bedeuten, dass man intern einen Kundenvertreter benennt, der den Kunden vertritt - selbst dann, wenn es einen echten Kunden gibt. Wenn sich mit dem Kundenvertreter das Vorgehen intern eingespielt hat, lädt man den Kunden zu den Präsentationen mit ein. Und schließlich kommt der interne Kundenvertreter nicht mehr. im gleichen Zuge wie der interne Kundenvertreter durch den echten Kunden ersetzt wird, muss sich das Artefakt ändern, das präsentiert wird. Schließlich muss der Kunde auch bewerten können, was er präsentiert bekommt. Und hier ist es natürlich auch bei der Entwicklung physikalischer Dinge so, dass man sie in Einzelkomponenten zerlegen kann. Und diese Einzelkomponenten werden weitgehend unabhängig voneinander entwickelt und getestet. Einige Einzelkomponenten können also auch bereits lange vor Ende des Projektes präsentiert werden. Und dort wo es nicht geht, muss man Dinge finden, die der Kunde versteht: Prototypen, Konzepte und Präsentationen in der Sprache des Kunden etc.&lt;br /&gt;&lt;br /&gt;Fazit 1: So anders ist die Entwicklung physikalischer Dinge auch wieder nicht.&lt;br /&gt;Fazit 2: Das skizzierte Vorgehen funktioniert genauso gut für Softwareprojekte, die den Sprung ins kalte Scrum-Wasser scheuen und sich lieber schrittweise vorarbeiten wollen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-6597725592246929999?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/6597725592246929999/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=6597725592246929999&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6597725592246929999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/6597725592246929999'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/09/agil-wann-was-bewerten.html' title='Agil: Wann was bewerten?'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1738033680944759282</id><published>2007-09-21T21:35:00.000+02:00</published><updated>2007-09-21T21:39:44.425+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologie'/><title type='text'>Power-Point  bei Google</title><content type='html'>Neben einem Word- und einem Excel-Ersatz gibt es bei Google Docs jetzt auch ein Programm für Präsentationen. Von Power-Point-Ersatz kann bisher aber leider nicht die Rede sein. Man kann lediglich ein paar Texte und Listen anordnen. Das ging mit dem Word-Ersatz eigentlich auch schon ganz gut. Es fehlen die Möglichkeiten für Grafiken.&lt;br /&gt;&lt;br /&gt;Von den Features her ist &lt;a href="http://show.zoho.com/jsp/zoho_login.jsp?serviceurl=%2FHome.do"&gt;Zoho Show&lt;/a&gt; da deutlich weiter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1738033680944759282?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1738033680944759282/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1738033680944759282&amp;isPopup=true' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1738033680944759282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1738033680944759282'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/09/power-point-bei-google.html' title='Power-Point  bei Google'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-7787307220358839836</id><published>2007-07-16T22:03:00.001+02:00</published><updated>2007-07-16T22:07:51.527+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Video-Podcast zu Hibernate</title><content type='html'>Bernd Oesterreich hat &lt;a href="http://www.beeger.net/"&gt;Robert&lt;/a&gt; und mich zum &lt;a href="http://www.amazon.de/Hibernate-Persistenz-Java-Systemen-mit-Hibernate/dp/3898643719/ref=pd_bbs_sr_4/303-1587671-7191440?ie=UTF8&amp;s=books&amp;qid=1184616272&amp;sr=8-4"&gt;Hibernate-Buch&lt;/a&gt; &lt;a href="http://oose.podspot.de/post/buch-hibernate/"&gt;interviewt&lt;/a&gt;. Aufgrund terminlicher Probleme fehlen &lt;a href="http://www.haase-consulting.com/"&gt;Arno&lt;/a&gt; und &lt;a href="http://www.sanitz.net/sebastian/index.html"&gt;Sebastian&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-7787307220358839836?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/7787307220358839836/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=7787307220358839836&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7787307220358839836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/7787307220358839836'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/07/video-podcast-zu-hibernate.html' title='Video-Podcast zu Hibernate'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-3313704097659200585</id><published>2007-07-16T21:44:00.000+02:00</published><updated>2007-07-16T21:47:14.076+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>Agile Werbefilme</title><content type='html'>Zur Zeit läuft unter dem Titel &lt;a href="http://www.agileadvert.org/"&gt;Agile Advert&lt;/a&gt; ein Wettbewerb, um den besten agilen Werbfilm (Bewertung läuft über You-Tube).&lt;br /&gt;Da sind schon ein paar interessante Filmchen dabei - der Lego-Film zum Build-Prozess ist übrigens von &lt;a href="http://www.it-agile.de"&gt;uns&lt;/a&gt; (namentlich von meinem Kollegen Andreas).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-3313704097659200585?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/3313704097659200585/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=3313704097659200585&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3313704097659200585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/3313704097659200585'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/07/agile-werbefilme.html' title='Agile Werbefilme'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6599870.post-1113649229326845854</id><published>2007-07-16T21:39:00.000+02:00</published><updated>2007-07-16T21:42:21.992+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilität'/><title type='text'>XP-Day: Call for Sessions</title><content type='html'>Der Call-For-Sessions für den &lt;a href="http://www.xpdays.de/2007/de/index.html"&gt;XP-Day 2007&lt;/a&gt; im November in Karlsruhe wurde verlängert. Neue Deadline ist der 22.07.2007. Seine Vorschläge kann man bequem hier &lt;a href="http://www.xpdays.de/2007/de/cfs.html"&gt;elektronisch&lt;/a&gt; einreichen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6599870-1113649229326845854?l=stefanroock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stefanroock.blogspot.com/feeds/1113649229326845854/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6599870&amp;postID=1113649229326845854&amp;isPopup=true' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1113649229326845854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6599870/posts/default/1113649229326845854'/><link rel='alternate' type='text/html' href='http://stefanroock.blogspot.com/2007/07/xp-day-call-for-sessions.html' title='XP-Day: Call for Sessions'/><author><name>Stefan Roock</name><uri>http://www.blogger.com/profile/00840921392422933600</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_-ZMvVpIHl0s/SNjV5EcXHlI/AAAAAAAAATo/m5rCqiqzWs4/S220/DSC_0059klein_StefanRoock.jpg'/></author><thr:total>0</thr:total></entry></feed>
