<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: CodingDojo in TDD &#8211; Die einfachste L&#246;sung siegt</title>
	<atom:link href="http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/</link>
	<description>This Blog is about Microsoft Dynamics NAV (f.k.a Navision incl. C/SIDE and C/AL), C#, F# and .NET in general.</description>
	<lastBuildDate>Tue, 31 Jan 2012 17:13:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Stefan Liesers Blog &#187; Blog Archive &#187; Gedanken zu Dojos</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109644</link>
		<dc:creator>Stefan Liesers Blog &#187; Blog Archive &#187; Gedanken zu Dojos</dc:creator>
		<pubDate>Sat, 26 Jun 2010 14:36:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109644</guid>
		<description>[...] in den Blogs von Steffen und Ilker bereits &#252;ber verschiedene Aspekte von Dojos diskutiert wurde habe ich den Eindruck, dass [...]</description>
		<content:encoded><![CDATA[<p>[...] in den Blogs von Steffen und Ilker bereits &#252;ber verschiedene Aspekte von Dojos diskutiert wurde habe ich den Eindruck, dass [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilker Cetinkaya</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109628</link>
		<dc:creator>Ilker Cetinkaya</dc:creator>
		<pubDate>Fri, 25 Jun 2010 16:22:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109628</guid>
		<description>Hallo,

zu dem Thema des Blogposts, also &quot;TDD: Die einfachste L&#246;sung siegt&quot;, habe ich schon Stellung bezogen. Ich will es nur nur ein wenig umformulieren. TDD lebt von der von Steffen erw&#228;hnten &quot;Minimalplanung&quot; - also das planen des Tests. Um genau zu sein ist das TDD, denn der Charakter von TDD ist schnelles Feedbacking und z.T. heftige Refaktorisierung. Ich kenne es so und ich praktiziere es so. Und ich bin damit ziemlich erfolgreich, wenn ich es mal so sagen darf.

Doch es gibt hier in den Kommentaren noch ein anderes Thema. Das Thema ist &quot;Sinn und Zweeck und Ziel und Vorgehensweise&quot; beim Coding Dojo. Hier prallen anscheinend Welten aufeinander.

Ralf, wenn Du das Coding Dojo in der erlebten Form nicht &quot;gut&quot; oder zielf&#252;hrend findest, dann steht es Dir frei, Dich davon fernzuhalten. Wenn Du aus den Coding Dojo&#039;s nichts lernst, dann ist das schade und sch&#246;n gleicherma&#223;en. Schade, weil ein Coding Dojo ja zum &#220;ben und Lernen gedacht ist. Sch&#246;n, weil Du damit anscheinend schon alle Lernprozesse, die ich (und andere) im Dojo durchgehen, schon hinter Dich gelassen zu haben scheinst.

Ich repektiere Dein Know-How und Dein Engagement, und ich bin mir ziemlich sicher, dass Du Dir dessen auch bewu&#223;t bist. Doch ist es f&#252;r mich auch unabstreitbar, dass ich Deinem Verhalten bei besagtem Dojo und den Statements hier im Blog nicht nur gutes Abgewinnen kann.

So bitte ich Dich, Dich bei der n&#228;chsten Teilnahme an  (meiner bzw. unserer) Coding Dojo&#039;s, Dich ehrlich und aktiv einzubringen, so da&#223; alle Teilnehmer nicht nur von Deinem Know-How profitieren k&#246;nnen, sondern auch die Beweggr&#252;nde und Prinzipien verstehen lernen. 

Und Ralf, Wenn Du einmal &quot;nur&quot; zuschauen m&#246;chtest ist das Ok. Zuzuschauen und danach das Gesehene zu kritisieren ist auch noch Ok. Aber diese Kritik in einer Art und Weise durchzuf&#252;hren, die f&#252;r mein Empfinden nicht wertsch&#228;tzend, konstruktiv und respektvoll genug geschieht - das ist f&#252;r mich nicht Ok.

Soviel zum &quot;wie&quot; Deines Beitrages. Jetzt noch zum &quot;was&quot;.

Anscheinend ist es mir (oder uns) nicht gelungen, Dir die Wert- und Zielvorstellungen des Coding Dojo&#039;s, wie wir es machen und m&#246;gen, &#252;berzeugend darzulegen. Denn schlie&#223;lich monierst Du immer wieder die &quot;Ziellosigkeit&quot;, Du betrachtest dabei &quot;strukturierte und zielgerichtete&quot; Ergebnisorientierung, Du stellst die Gruppenintelligenz in Frage, Du verlangst nach Denkern und Lenkern.

Ich will hier nicht in einem riesigen – so oder so schon deplatzierten – Kommentar auf meinen Standpunkt n&#228;her eingehen, sondern Dich am Ende meines Kommentars auf den Link zu meinem „Lernen &amp; Lehren“-Artikel  hinweisen.

Weiterhin m&#246;chte ich Dir noch folgendes zu Deinen Kritikpunkten sagen: Es mag sein, dass es f&#252;r Dich Plauderei, Unterhaltung, oder naiver, mittelalterlicher, kindlicher Experimentierdrang ist. Ok. F&#252;r mich ist es eine wunderbare und wertvolle M&#246;glichkeit, mich mit anderen auszutauschen. Es ist geradezu erfrischend und macht Spa&#223;, anderen TDD n&#228;her zu bringen und auch neue Dinge zu lernen. 

Es gab z.B. beim M&#252;nchener Coding Dojo locker 5-10 Teilnehmer, die in ihrem Leben noch nie TDD oder &quot;Test-First&quot; gemacht haben. Sie haben in diesen 2 Stunden Tests geschrieben, bevor sie programmiert haben. Sie haben &#252;ber die Tests nachgedacht, bevor sie weitergemacht haben. Ein wunderbarer Erfolg, wie ich finde.

Also, Ralf, meine aufrichtige Bitte: Versuche uns und unsere Motivation zu verstehen - oder lass&#039; es bleiben. Trage ehrlich, aktiv und konstruktiv bei - oder lass&#039; es bleiben. Hab&#039; mit uns auch ein wenig Spa&#223; und Freude - oder lass&#039; es bleiben. Komm mit in unsere Coding Dojo&#039;s - oder lass&#039; es bleiben.

Ich habe im letzten Coding Dojo sehr viel gelernt und habe auch gesehen, wie andere gelernt haben. Ich bin weiter motiviert, mit anderen in lockerer Atmosph&#228;re ein Code Kata per TDD zu l&#246;sen und Diskussionen zu f&#252;hren. Ich lasse weiter Fehler zu und hole auch die &quot;naiven&quot; gerne mit ins Boot. Das alles mache ich, weil es mir Spa&#223; macht, weil es mir viel bringt und weil ich sehe, dass andere es genauso empfinden. Ich hoffe, Du bist auch mal wieder dabei. Willkommen bist Du - und jeder andere - auf jeden Fall. Doch nur unter der Bedingung, dass man aufrichtig am Coding Dojo aktiv, respektvoll, optimistisch, zwanglos und gleichgestellt teilnehmen m&#246;chte.

Steffen, mein Kommentar ist denke ich deplatziert. Es tut mir leid, dass ich Das Abschweifen des Themas hier mit dem Kommentar weiterf&#252;hre, aber ich denke, es ist gut, wenn man den Kontext meines Beitrages beibeh&#228;lt und gleichzeitig auf das „Abdriften des Themas“ mit einem Artikelverweis reagiert. Danke.

Damit zum Abschlu&#223; auch der Link zu meinem Artikel, der wesentlich mehr auf meine Vorstellungen, Ziele und Verfahren eines Coding Dojo eingeht: „&lt;a href=&quot;http://www.gmbsg.com/lerne-lehre-ilker-net-coding-dojo-latifa-stil/&quot; rel=&quot;nofollow&quot;&gt;Lerne &amp; Lehre: Ilker’s .NET Coding Dojo&lt;/a&gt;“.</description>
		<content:encoded><![CDATA[<p>Hallo,</p>
<p>zu dem Thema des Blogposts, also &#8220;TDD: Die einfachste L&#246;sung siegt&#8221;, habe ich schon Stellung bezogen. Ich will es nur nur ein wenig umformulieren. TDD lebt von der von Steffen erw&#228;hnten &#8220;Minimalplanung&#8221; &#8211; also das planen des Tests. Um genau zu sein ist das TDD, denn der Charakter von TDD ist schnelles Feedbacking und z.T. heftige Refaktorisierung. Ich kenne es so und ich praktiziere es so. Und ich bin damit ziemlich erfolgreich, wenn ich es mal so sagen darf.</p>
<p>Doch es gibt hier in den Kommentaren noch ein anderes Thema. Das Thema ist &#8220;Sinn und Zweeck und Ziel und Vorgehensweise&#8221; beim Coding Dojo. Hier prallen anscheinend Welten aufeinander.</p>
<p>Ralf, wenn Du das Coding Dojo in der erlebten Form nicht &#8220;gut&#8221; oder zielf&#252;hrend findest, dann steht es Dir frei, Dich davon fernzuhalten. Wenn Du aus den Coding Dojo&#8217;s nichts lernst, dann ist das schade und sch&#246;n gleicherma&#223;en. Schade, weil ein Coding Dojo ja zum &#220;ben und Lernen gedacht ist. Sch&#246;n, weil Du damit anscheinend schon alle Lernprozesse, die ich (und andere) im Dojo durchgehen, schon hinter Dich gelassen zu haben scheinst.</p>
<p>Ich repektiere Dein Know-How und Dein Engagement, und ich bin mir ziemlich sicher, dass Du Dir dessen auch bewu&#223;t bist. Doch ist es f&#252;r mich auch unabstreitbar, dass ich Deinem Verhalten bei besagtem Dojo und den Statements hier im Blog nicht nur gutes Abgewinnen kann.</p>
<p>So bitte ich Dich, Dich bei der n&#228;chsten Teilnahme an  (meiner bzw. unserer) Coding Dojo&#8217;s, Dich ehrlich und aktiv einzubringen, so da&#223; alle Teilnehmer nicht nur von Deinem Know-How profitieren k&#246;nnen, sondern auch die Beweggr&#252;nde und Prinzipien verstehen lernen. </p>
<p>Und Ralf, Wenn Du einmal &#8220;nur&#8221; zuschauen m&#246;chtest ist das Ok. Zuzuschauen und danach das Gesehene zu kritisieren ist auch noch Ok. Aber diese Kritik in einer Art und Weise durchzuf&#252;hren, die f&#252;r mein Empfinden nicht wertsch&#228;tzend, konstruktiv und respektvoll genug geschieht &#8211; das ist f&#252;r mich nicht Ok.</p>
<p>Soviel zum &#8220;wie&#8221; Deines Beitrages. Jetzt noch zum &#8220;was&#8221;.</p>
<p>Anscheinend ist es mir (oder uns) nicht gelungen, Dir die Wert- und Zielvorstellungen des Coding Dojo&#8217;s, wie wir es machen und m&#246;gen, &#252;berzeugend darzulegen. Denn schlie&#223;lich monierst Du immer wieder die &#8220;Ziellosigkeit&#8221;, Du betrachtest dabei &#8220;strukturierte und zielgerichtete&#8221; Ergebnisorientierung, Du stellst die Gruppenintelligenz in Frage, Du verlangst nach Denkern und Lenkern.</p>
<p>Ich will hier nicht in einem riesigen – so oder so schon deplatzierten – Kommentar auf meinen Standpunkt n&#228;her eingehen, sondern Dich am Ende meines Kommentars auf den Link zu meinem „Lernen &amp; Lehren“-Artikel  hinweisen.</p>
<p>Weiterhin m&#246;chte ich Dir noch folgendes zu Deinen Kritikpunkten sagen: Es mag sein, dass es f&#252;r Dich Plauderei, Unterhaltung, oder naiver, mittelalterlicher, kindlicher Experimentierdrang ist. Ok. F&#252;r mich ist es eine wunderbare und wertvolle M&#246;glichkeit, mich mit anderen auszutauschen. Es ist geradezu erfrischend und macht Spa&#223;, anderen TDD n&#228;her zu bringen und auch neue Dinge zu lernen. </p>
<p>Es gab z.B. beim M&#252;nchener Coding Dojo locker 5-10 Teilnehmer, die in ihrem Leben noch nie TDD oder &#8220;Test-First&#8221; gemacht haben. Sie haben in diesen 2 Stunden Tests geschrieben, bevor sie programmiert haben. Sie haben &#252;ber die Tests nachgedacht, bevor sie weitergemacht haben. Ein wunderbarer Erfolg, wie ich finde.</p>
<p>Also, Ralf, meine aufrichtige Bitte: Versuche uns und unsere Motivation zu verstehen &#8211; oder lass&#8217; es bleiben. Trage ehrlich, aktiv und konstruktiv bei &#8211; oder lass&#8217; es bleiben. Hab&#8217; mit uns auch ein wenig Spa&#223; und Freude &#8211; oder lass&#8217; es bleiben. Komm mit in unsere Coding Dojo&#8217;s &#8211; oder lass&#8217; es bleiben.</p>
<p>Ich habe im letzten Coding Dojo sehr viel gelernt und habe auch gesehen, wie andere gelernt haben. Ich bin weiter motiviert, mit anderen in lockerer Atmosph&#228;re ein Code Kata per TDD zu l&#246;sen und Diskussionen zu f&#252;hren. Ich lasse weiter Fehler zu und hole auch die &#8220;naiven&#8221; gerne mit ins Boot. Das alles mache ich, weil es mir Spa&#223; macht, weil es mir viel bringt und weil ich sehe, dass andere es genauso empfinden. Ich hoffe, Du bist auch mal wieder dabei. Willkommen bist Du &#8211; und jeder andere &#8211; auf jeden Fall. Doch nur unter der Bedingung, dass man aufrichtig am Coding Dojo aktiv, respektvoll, optimistisch, zwanglos und gleichgestellt teilnehmen m&#246;chte.</p>
<p>Steffen, mein Kommentar ist denke ich deplatziert. Es tut mir leid, dass ich Das Abschweifen des Themas hier mit dem Kommentar weiterf&#252;hre, aber ich denke, es ist gut, wenn man den Kontext meines Beitrages beibeh&#228;lt und gleichzeitig auf das „Abdriften des Themas“ mit einem Artikelverweis reagiert. Danke.</p>
<p>Damit zum Abschlu&#223; auch der Link zu meinem Artikel, der wesentlich mehr auf meine Vorstellungen, Ziele und Verfahren eines Coding Dojo eingeht: „<a href="http://www.gmbsg.com/lerne-lehre-ilker-net-coding-dojo-latifa-stil/" rel="nofollow">Lerne &amp; Lehre: Ilker’s .NET Coding Dojo</a>“.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralf Westphal</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109601</link>
		<dc:creator>Ralf Westphal</dc:creator>
		<pubDate>Thu, 24 Jun 2010 12:28:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109601</guid>
		<description>@Steffen: Wir haben wahrscheinlich einfach ganz andere Zielsetzungen f&#252;r ein Dojo im Kopf. Deines ist eine Plauderei &#252;ber Code. Meines ist gezieltes Lernen und Verfeinern von Praktiken und Prozessen.

Die gef&#228;llt nun sicher &quot;Plauderei&quot; nicht. Ich w&#228;hle den Begriff aber bewusst. Denn auch wenn bei dir Tests zuerst geschrieben werden, sehe ich ansonsten keinen Rahmen. Du sagst nicht, dass TDD gelernt werden soll. Du sagst nicht, dass irgendwas anderes gelernt werden soll. Dir geht es nur darum, dass irgendwie die Aufgabe angegangen wird. (Fertigstellung kann dein Ziel auch nicht sein, denn wie die Dojo-Praxis zeigt, ist das ohne Systematik nicht m&#246;glich.)

&quot;Wir gehen eine Aufgabe, die alle h&#246;chstens grob verstanden haben, einfach mal mit einem Test an.&quot;

So w&#252;rde ich deine Haltung zusammenfassen.

Die ist legitim. Kein Problem. Wer mag, kann es selbstverst&#228;ndlich gern so tun.

Wie gesagt: Daf&#252;r gehe ich nun aber nicht mehr zum Coding Dojo. Erwachsene Menschen k&#246;nnen n&#228;mlich schneller lernen. Und TDD ist nicht die einzige Technik, um Software mit hoher innerer Qualit&#228;t zu entwickeln.

Ich versuche aber nochmal eine Analogie, um zu zeigen, wo ich den Unterschied zw. deinem und meinem Ansatz sehe: Alle kennen Brainstorming, nehme ich mal an. Menschen kommen zusammen, um etwas Neues zu produzieren (einen L&#246;sungsansatz f&#252;r ein Problem oder eine Marketingidee usw.).

Lange hat man geglaubt, Brainstorming sei einfach so der Hit. Es reiche, dachte man, Menschen zusammen zu bringen und ihnen nur die Barrieren f&#252;rs Denken zu nehmen. &quot;Lasst den Gedanken freien Lauf. Zensiert nichts. Raus damit!&quot;

So kommt auch durchaus etwas heraus. Wer bisher in reglementierten Gruppen versucht hat, Neues zu produzieren, wird dann auch begeistert sein.

Doch die Forschung hat gezeigt, dass solches Brainstorming  nicht die Effektivit&#228;t erreicht, die erreichbar w&#228;re.

Besser ist es n&#228;mlich zum Beispiel, wenn sich jeder Teilnehmer vorher (!) schon Gedanken macht. Dann kommt man zusammen und muss nicht unter dem de facto Druck eines Meetings Einf&#228;lle produzieren. Und dann kann man zu Einf&#228;llen schon Position beziehen.

Das bedeutet nicht, dass man vorher sich selbst zensieren soll. So wird vielmehr ein gewisser Filter eingebaut, der Rauschen ausblendet und so das Brainstorming-Meeting fokussiert.

Zur&#252;ck zum Dojo: Ein Dojo wie jetzt grad in Muc &#228;hnelt f&#252;r mich dem naiven Brainstorming. Es wird gehofft, dass eine Gruppe, die einfach so zusammenkommt einfach so auch produktiv ist. Die Praxis zeigt, dass das nicht stimmt. So einfach ist es nicht. Allemal nicht mit Leuten, die keine Dojo-Erfahrung haben.

Deshalb (und aus anderen Gr&#252;nden) bin ich der Meinung, dass sich eine solche Dojo-Gruppe d&#252;mmer stellt, als sie sein m&#252;sste. Nachdenken w&#252;rde helfen.

Noch ein Wort zur TDD-Praxis: Nat&#252;rlich zeigt ein API seine Wert erst, wenn man ihn im Code benutzt. Aber ich bin an einem Flipchart viel schneller beim Spielen mit API-Alternativen als in Testcode. Deshalb halte ich es f&#252;r ein gro&#223;es Missverst&#228;ndnis, Testcode einzuklimpern, ohne vorher dr&#252;ber nachzudenken.

Code in der IDE will nicht mehr ver&#228;ndert werden. Er ist sehr starr. Das hat auch das letzte Dojo gezeigt. Ohwei, wie hat sich die Gruppe schwer getan, einen Test von 6 Zeilen einfach zu l&#246;schen. Da hat man lieber minutenlang rumdiskutiert, um ein Argument zu finden, ihn zu behalten.

Bottom line: Ich bleibe dabei: Nachdenken hilft. Vor dem Codieren.

-Ralf</description>
		<content:encoded><![CDATA[<p>@Steffen: Wir haben wahrscheinlich einfach ganz andere Zielsetzungen f&#252;r ein Dojo im Kopf. Deines ist eine Plauderei &#252;ber Code. Meines ist gezieltes Lernen und Verfeinern von Praktiken und Prozessen.</p>
<p>Die gef&#228;llt nun sicher &#8220;Plauderei&#8221; nicht. Ich w&#228;hle den Begriff aber bewusst. Denn auch wenn bei dir Tests zuerst geschrieben werden, sehe ich ansonsten keinen Rahmen. Du sagst nicht, dass TDD gelernt werden soll. Du sagst nicht, dass irgendwas anderes gelernt werden soll. Dir geht es nur darum, dass irgendwie die Aufgabe angegangen wird. (Fertigstellung kann dein Ziel auch nicht sein, denn wie die Dojo-Praxis zeigt, ist das ohne Systematik nicht m&#246;glich.)</p>
<p>&#8220;Wir gehen eine Aufgabe, die alle h&#246;chstens grob verstanden haben, einfach mal mit einem Test an.&#8221;</p>
<p>So w&#252;rde ich deine Haltung zusammenfassen.</p>
<p>Die ist legitim. Kein Problem. Wer mag, kann es selbstverst&#228;ndlich gern so tun.</p>
<p>Wie gesagt: Daf&#252;r gehe ich nun aber nicht mehr zum Coding Dojo. Erwachsene Menschen k&#246;nnen n&#228;mlich schneller lernen. Und TDD ist nicht die einzige Technik, um Software mit hoher innerer Qualit&#228;t zu entwickeln.</p>
<p>Ich versuche aber nochmal eine Analogie, um zu zeigen, wo ich den Unterschied zw. deinem und meinem Ansatz sehe: Alle kennen Brainstorming, nehme ich mal an. Menschen kommen zusammen, um etwas Neues zu produzieren (einen L&#246;sungsansatz f&#252;r ein Problem oder eine Marketingidee usw.).</p>
<p>Lange hat man geglaubt, Brainstorming sei einfach so der Hit. Es reiche, dachte man, Menschen zusammen zu bringen und ihnen nur die Barrieren f&#252;rs Denken zu nehmen. &#8220;Lasst den Gedanken freien Lauf. Zensiert nichts. Raus damit!&#8221;</p>
<p>So kommt auch durchaus etwas heraus. Wer bisher in reglementierten Gruppen versucht hat, Neues zu produzieren, wird dann auch begeistert sein.</p>
<p>Doch die Forschung hat gezeigt, dass solches Brainstorming  nicht die Effektivit&#228;t erreicht, die erreichbar w&#228;re.</p>
<p>Besser ist es n&#228;mlich zum Beispiel, wenn sich jeder Teilnehmer vorher (!) schon Gedanken macht. Dann kommt man zusammen und muss nicht unter dem de facto Druck eines Meetings Einf&#228;lle produzieren. Und dann kann man zu Einf&#228;llen schon Position beziehen.</p>
<p>Das bedeutet nicht, dass man vorher sich selbst zensieren soll. So wird vielmehr ein gewisser Filter eingebaut, der Rauschen ausblendet und so das Brainstorming-Meeting fokussiert.</p>
<p>Zur&#252;ck zum Dojo: Ein Dojo wie jetzt grad in Muc &#228;hnelt f&#252;r mich dem naiven Brainstorming. Es wird gehofft, dass eine Gruppe, die einfach so zusammenkommt einfach so auch produktiv ist. Die Praxis zeigt, dass das nicht stimmt. So einfach ist es nicht. Allemal nicht mit Leuten, die keine Dojo-Erfahrung haben.</p>
<p>Deshalb (und aus anderen Gr&#252;nden) bin ich der Meinung, dass sich eine solche Dojo-Gruppe d&#252;mmer stellt, als sie sein m&#252;sste. Nachdenken w&#252;rde helfen.</p>
<p>Noch ein Wort zur TDD-Praxis: Nat&#252;rlich zeigt ein API seine Wert erst, wenn man ihn im Code benutzt. Aber ich bin an einem Flipchart viel schneller beim Spielen mit API-Alternativen als in Testcode. Deshalb halte ich es f&#252;r ein gro&#223;es Missverst&#228;ndnis, Testcode einzuklimpern, ohne vorher dr&#252;ber nachzudenken.</p>
<p>Code in der IDE will nicht mehr ver&#228;ndert werden. Er ist sehr starr. Das hat auch das letzte Dojo gezeigt. Ohwei, wie hat sich die Gruppe schwer getan, einen Test von 6 Zeilen einfach zu l&#246;schen. Da hat man lieber minutenlang rumdiskutiert, um ein Argument zu finden, ihn zu behalten.</p>
<p>Bottom line: Ich bleibe dabei: Nachdenken hilft. Vor dem Codieren.</p>
<p>-Ralf</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christina Hirth</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109598</link>
		<dc:creator>Christina Hirth</dc:creator>
		<pubDate>Thu, 24 Jun 2010 07:28:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109598</guid>
		<description>Hallo,

ich m&#246;chte nur noch einen Aspekt erw&#228;hnen oder etwas umformulieren: jedes Dojo lebt aus dem gemeinsamen Streben der Gruppe danach, ein Problem zu l&#246;sen. Das passiert nach den zusammen festgelegten Regeln, die die Gruppe demokratisch also nicht zwangsl&#228;ufig einstimmig festlegt. Das sch&#246;ne dabei war bisher immer, dass das jedem klar war und jeder akzeptiert hat.
 
Also gibt es f&#252;r mich nur eine einzige Voraussetzung, um ein tolles Dojo hinzukriegen: jeder muss sich als Teil der Gruppe f&#252;hlen und mitmachen wollen.

Sch&#246;ne Gr&#252;&#223;e,
Christina</description>
		<content:encoded><![CDATA[<p>Hallo,</p>
<p>ich m&#246;chte nur noch einen Aspekt erw&#228;hnen oder etwas umformulieren: jedes Dojo lebt aus dem gemeinsamen Streben der Gruppe danach, ein Problem zu l&#246;sen. Das passiert nach den zusammen festgelegten Regeln, die die Gruppe demokratisch also nicht zwangsl&#228;ufig einstimmig festlegt. Das sch&#246;ne dabei war bisher immer, dass das jedem klar war und jeder akzeptiert hat.</p>
<p>Also gibt es f&#252;r mich nur eine einzige Voraussetzung, um ein tolles Dojo hinzukriegen: jeder muss sich als Teil der Gruppe f&#252;hlen und mitmachen wollen.</p>
<p>Sch&#246;ne Gr&#252;&#223;e,<br />
Christina</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steffen Forkmann</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109582</link>
		<dc:creator>Steffen Forkmann</dc:creator>
		<pubDate>Wed, 23 Jun 2010 11:27:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109582</guid>
		<description>Hi Ralf,

ich wei&#223; echt nicht worauf du hinaus willst. 

&quot;Minimalplanung&quot; ist doch beim TDD gerade gefragt, aber eben keine globale. 

Roy Osherove schreibt zur ber&#252;hmten &quot;&lt;a href=&quot;http://osherove.com/tdd-kata-1/&quot; rel=&quot;nofollow&quot;&gt;String Calculator&lt;/a&gt;&quot; Kata: 
&lt;cite&gt;&quot;Try not to read ahead. do one task at a time. the trick is to learn to work incrementally.&quot;&lt;cite&gt;

Man simuliert hier auch den typischen Fall, dass die Anforderungen am Anfang eben nicht klar sind sondern erst st&#252;ckweise hinzu kommen.

Die Kl&#228;rung des API&#039;s kommt doch auch durch den Test. Ich schreibe einen Test und schaue mir an, ob mir das Interface als Benutzer des API gefallen w&#252;rde. Wenn ja dann dr&#252;cke ich ein paar mal auf Alt+Enter und lasse den Resharper so alle noch nicht vorhandenen Klassen und Methoden erzeugen und habe meinen ersten roten Test.

Es ist doch so auch viel leichter mit so vielen Leuten im Raum &#252;ber das gew&#252;nschte Interface zu reden. Alle schauen sich den noch nicht kompilieren Code an und k&#246;nnen meckern und verbessern. Jeder spricht &#252;ber das selbe und benutzt wie Ilker so sch&#246;n sagt die selbe Sprache - den Code.

Gr&#252;&#223;e Steffen</description>
		<content:encoded><![CDATA[<p>Hi Ralf,</p>
<p>ich wei&#223; echt nicht worauf du hinaus willst. </p>
<p>&#8220;Minimalplanung&#8221; ist doch beim TDD gerade gefragt, aber eben keine globale. </p>
<p>Roy Osherove schreibt zur ber&#252;hmten &#8220;<a href="http://osherove.com/tdd-kata-1/" rel="nofollow">String Calculator</a>&#8221; Kata:<br />
<cite>&#8220;Try not to read ahead. do one task at a time. the trick is to learn to work incrementally.&#8221;</cite><cite></p>
<p>Man simuliert hier auch den typischen Fall, dass die Anforderungen am Anfang eben nicht klar sind sondern erst st&#252;ckweise hinzu kommen.</p>
<p>Die Kl&#228;rung des API&#8217;s kommt doch auch durch den Test. Ich schreibe einen Test und schaue mir an, ob mir das Interface als Benutzer des API gefallen w&#252;rde. Wenn ja dann dr&#252;cke ich ein paar mal auf Alt+Enter und lasse den Resharper so alle noch nicht vorhandenen Klassen und Methoden erzeugen und habe meinen ersten roten Test.</p>
<p>Es ist doch so auch viel leichter mit so vielen Leuten im Raum &#252;ber das gew&#252;nschte Interface zu reden. Alle schauen sich den noch nicht kompilieren Code an und k&#246;nnen meckern und verbessern. Jeder spricht &#252;ber das selbe und benutzt wie Ilker so sch&#246;n sagt die selbe Sprache &#8211; den Code.</p>
<p>Gr&#252;&#223;e Steffen</cite></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralf Westphal</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109580</link>
		<dc:creator>Ralf Westphal</dc:creator>
		<pubDate>Wed, 23 Jun 2010 10:04:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109580</guid>
		<description>Ich nehme mal Ilkers Faden aus. Mit seiner Analogie des Experiments stimme ich &#252;berein. Softwareentwicklung hat etwas von Forschung. Dazu geh&#246;rt das Experiment. Wunderbar. Mit dem Experiment haben wir den Sprung aus dem Mittelalter geschafft. Erfahrung z&#228;hlt. Wiederholbarkeit z&#228;hlt eines Erfolges z&#228;hlt.

Aber wenn ich dann lese...

&quot;TDD und BDD leben von Empirie, die eine durchdachte experimentelle Aufstellung erfordert.&quot;

und an das Coding Dojo beim Powerday gestern abend denke... dann frage ich mich, wo die &quot;durchdachte Aufstellung&quot; war. Denn durchdacht ist doch - sorry to say - eben kaum etwas worden. Da liegt meine Kritik.

Man mag mich als Theoretiker bezeichnen, aber ich bleibe dabei: gestern abend h&#228;tten 10 Minuten Nachdenken den Misserfolg verhindern k&#246;nnen. Die Gruppe als Ganzes (als Kollektiv, als soziales System) war d&#252;mmer als jeder Einzelne. Denn aus den Kommentaren Einzelner war abzulesen, dass sie das Problem viel strukturierter durchdacht hatten, als der Code es zeigte.

Experiment (Forschung) ohne Nachdenken, ist nicht besser als Nachdenken ohne Experiment. Mir hat also die schlichte Balance gefehlt.

Balance muss es geben zwischen Anforderungen verstehen und L&#246;sungen erarbeiten. Die Balance war gestern durchaus vorhanden.

Balance muss es aber auch geben zwischen Entwerfen und Implementieren. Die hat gefehlt. Nach der Anforderungsanalyse stand keine Kl&#228;rung des simplen API (der Signatur des sp&#228;teren SUT). Nach der Anforderungsanalyse stand keine Erkl&#228;rung, was f&#252;r die pr&#228;ferierte Vorgehensweise (TDD) n&#246;tig ist. (Das VS Projekt war schon quasi fertig.)

Und nach der Anforderungsanalyse standen nicht mal 5 Minuten Nachdenken dar&#252;ber, wie eine L&#246;sung &#252;berhaupt aussehen k&#246;nnte. So ganz grob. So ungef&#228;hr. So ganz grunds&#228;tzlich.

Null. Nichts. Nada. Kein Nachdenken. Kein Innehalten.

Und das - mit Verlaub - hat nichts mehr mit Forschung/Experiment zu tun. Und ich kann darin auch keinen Vorteil f&#252;r ein Entwickeln in der Gruppe sehen. Das ist schlicht Dummheit. Kollektive Dummheit. Das Kollektiv hat seinen Vorteil, aus vielen Intelligenten zu bestehen, nicht genutzt.

Wenn es dann zu Erlebnissen gruppendynamischer Natur kommt, ist das ja nett. Wir haben auch Spa&#223; gehabt. Sch&#246;n. Aber daf&#252;r kann ich zum Fu&#223;ball gehen oder auch zu einem philosophischen Salon. Wir haben jedoch ein Coding Dojo durchf&#252;hren wollen. Da denke ich, dass die Erfahrungen im Zusammenhang mit Softwareentwicklung stehen sollten.

F&#252;r mich die Bottom Line: Ein Coding Dojo ohne Innehalten und Minimalplanung der L&#246;sung kommt f&#252;r mich nicht mehr in Frage. Sonst ist die Balance (s.o.) nicht eingehalten.

-Ralf</description>
		<content:encoded><![CDATA[<p>Ich nehme mal Ilkers Faden aus. Mit seiner Analogie des Experiments stimme ich &#252;berein. Softwareentwicklung hat etwas von Forschung. Dazu geh&#246;rt das Experiment. Wunderbar. Mit dem Experiment haben wir den Sprung aus dem Mittelalter geschafft. Erfahrung z&#228;hlt. Wiederholbarkeit z&#228;hlt eines Erfolges z&#228;hlt.</p>
<p>Aber wenn ich dann lese&#8230;</p>
<p>&#8220;TDD und BDD leben von Empirie, die eine durchdachte experimentelle Aufstellung erfordert.&#8221;</p>
<p>und an das Coding Dojo beim Powerday gestern abend denke&#8230; dann frage ich mich, wo die &#8220;durchdachte Aufstellung&#8221; war. Denn durchdacht ist doch &#8211; sorry to say &#8211; eben kaum etwas worden. Da liegt meine Kritik.</p>
<p>Man mag mich als Theoretiker bezeichnen, aber ich bleibe dabei: gestern abend h&#228;tten 10 Minuten Nachdenken den Misserfolg verhindern k&#246;nnen. Die Gruppe als Ganzes (als Kollektiv, als soziales System) war d&#252;mmer als jeder Einzelne. Denn aus den Kommentaren Einzelner war abzulesen, dass sie das Problem viel strukturierter durchdacht hatten, als der Code es zeigte.</p>
<p>Experiment (Forschung) ohne Nachdenken, ist nicht besser als Nachdenken ohne Experiment. Mir hat also die schlichte Balance gefehlt.</p>
<p>Balance muss es geben zwischen Anforderungen verstehen und L&#246;sungen erarbeiten. Die Balance war gestern durchaus vorhanden.</p>
<p>Balance muss es aber auch geben zwischen Entwerfen und Implementieren. Die hat gefehlt. Nach der Anforderungsanalyse stand keine Kl&#228;rung des simplen API (der Signatur des sp&#228;teren SUT). Nach der Anforderungsanalyse stand keine Erkl&#228;rung, was f&#252;r die pr&#228;ferierte Vorgehensweise (TDD) n&#246;tig ist. (Das VS Projekt war schon quasi fertig.)</p>
<p>Und nach der Anforderungsanalyse standen nicht mal 5 Minuten Nachdenken dar&#252;ber, wie eine L&#246;sung &#252;berhaupt aussehen k&#246;nnte. So ganz grob. So ungef&#228;hr. So ganz grunds&#228;tzlich.</p>
<p>Null. Nichts. Nada. Kein Nachdenken. Kein Innehalten.</p>
<p>Und das &#8211; mit Verlaub &#8211; hat nichts mehr mit Forschung/Experiment zu tun. Und ich kann darin auch keinen Vorteil f&#252;r ein Entwickeln in der Gruppe sehen. Das ist schlicht Dummheit. Kollektive Dummheit. Das Kollektiv hat seinen Vorteil, aus vielen Intelligenten zu bestehen, nicht genutzt.</p>
<p>Wenn es dann zu Erlebnissen gruppendynamischer Natur kommt, ist das ja nett. Wir haben auch Spa&#223; gehabt. Sch&#246;n. Aber daf&#252;r kann ich zum Fu&#223;ball gehen oder auch zu einem philosophischen Salon. Wir haben jedoch ein Coding Dojo durchf&#252;hren wollen. Da denke ich, dass die Erfahrungen im Zusammenhang mit Softwareentwicklung stehen sollten.</p>
<p>F&#252;r mich die Bottom Line: Ein Coding Dojo ohne Innehalten und Minimalplanung der L&#246;sung kommt f&#252;r mich nicht mehr in Frage. Sonst ist die Balance (s.o.) nicht eingehalten.</p>
<p>-Ralf</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilker Cetinkaya</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109579</link>
		<dc:creator>Ilker Cetinkaya</dc:creator>
		<pubDate>Wed, 23 Jun 2010 09:30:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109579</guid>
		<description>Ich habe gerade gestern noch ein CodingDojo in M&#252;nchen gehabt. Es war durchaus vergleichbar mit dem, welches wir beim .NET Open Space in Karlsruhe hatten. Es sind zwei Hauptstr&#246;me erkennbar, wie Du schon richtig getweetet hast: &lt;a href=&quot;http://twitter.com/sforkmann/status/16834230537&quot; rel=&quot;nofollow&quot;&gt;Knobler vs. Coder&lt;/a&gt;.

Ich m&#246;chte garnicht zu sehr auf meine Eindr&#252;cke gehen sondern eher auf die Aussage &quot;CodingDojo TDD : Die einfachste L&#246;sung siegt!&quot;.

Es gibt eine klare Antwort darauf: JA! Und auch auf die Gefahr hin, hier &lt;a href=&quot;http://twitter.com/AlexZeitler/status/16607229212&quot; rel=&quot;nofollow&quot;&gt;komisch angestarrt&lt;/a&gt; zu werden: JAAAAA!

Die einfachste L&#246;sung siegt beim TDD! 

Und vor allem bei einem CodingDojo! Wie Du schon richtig angemerkt hast, haben optimierte Algorithmen Ihre eigene &quot;Sch&#246;nheit&quot;, n&#228;mlich die, dass Sie nicht nur durchdacht sind, sondern auch auf einem logischen Fundament - der Mathematik - aufgebaut sind.

Jedoch ist es nun einmal so, dass wir nicht alle bei der NASA die Raketensteuerung weiterentwickeln oder bei der EADS verteilte, autonome Droiden anprogrammieren. Der Gro&#223;teil von uns besch&#228;ftigt sich im Vergleich dazu mit einfacheren Problemen, meistens im Sinne der Strukturierung &amp; Verarbeitung. Also Komposition, Aggregation, Nachrichtensteuerung und &#228;hnliches.

Daf&#252;r und f&#252;r viele andere - sogar komplexere - Problemstellungen ist es das einzig richtige und effiziente Mittel, die L&#246;sung durch empirische Herangehensweise (also test- bzw. spezifikationsgetrieben) zu erarbeiten. Ich denke, dass viele von uns noch lernen m&#252;ssen, dass &lt;a href=&quot;http://www.gmbsg.com/tdd-ist-keine-wissenschaft/&quot; rel=&quot;nofollow&quot;&gt;TDD keine Wissenschaft darstellt&lt;/a&gt;, sondern nur ein Mittel, ein Werkzeug in unserem &quot;Wissenschaftskasten&quot; ist.

Ich finde auch den Kommentar von Stefan gut, das man die L&#246;sung, die man &quot;bis dato&quot; erarbeitet hat so lange durchprogrammiert, bis man es eben merkt, dass man &quot;gegen die Wand l&#228;uft&quot;. Viele Theoretiker verabscheuen diesen Gedanken und argumentieren, dass man &quot;durch einfaches nachdenken&quot; solche Situationen vermeiden kann und schneller zum Ergebnis kommt. Sie vergleichen das mit &quot;Try-And-Error&quot; und bel&#228;cheln die &quot;einfach sinnlos Code-Rein-Hacker&quot;.

Was diese Fraktion v&#246;llig au&#223;er acht l&#228;sst ist die einfache Tatsache, dass es eben kein &quot;Try-And-Error&quot; ist und eben kein &quot;sinnloses Code schreiben&quot;. TDD und BDD leben von Empirie, die eine durchdachte experimentelle Aufstellung erfordert. Es zwingt den Entwickler mehr als jede systemanalytische Diskussion, sich mit der Funktionalit&#228;t nachhaltig gedanklich auseinanderzusetzen. 

Ein Unit-Test ist wie ein kleiner Mikrokosmos des wissenschaftlichen Experimentierens: Es fordert vom Forscher (Coder), genau nachzudenken und zu erarbeiten, wie das Experiment (Test) durchgef&#252;hrt werden muss, um die ge&#252;nschten Erkenntnisse (Funktionalit&#228;t) daraus zu gewinnen.

Manche m&#246;gen dann kritisieren, dass dabei das &quot;Big Picture&quot; vernachl&#228;ssigt wird und es &quot;keine gemeinsame Richtung&quot; oder keinen &quot;Masterplan&quot; gibt. Hierbei muss man das Mittel TDD in den richtigen Kontext stellen. Es macht sicher keinen Sinn, gr&#246;&#223;ere Organisationsstrukturen (Patterns &amp; Architekturen), Schnittstellen (Ressourcen, I/O, DB, UI) oder Datenverarbietungsprobleme nur mit TDD anzugehen. Wunderbare Beispiele daf&#252;r sind Parallelverarbeitung, oder autonome Systeme. Das selbe gilt f&#252;r den Optimierungskontext, hier nenne &quot;nur&quot; das Beispiel der Sortierung.

Das heisst aber noch lange nicht, dass man in einem &quot;kleinen&quot; Rahmen wie der &quot;Funktionseinheit&quot; (vgl. &quot;Unit Test&quot;) zu dem probaten Mittel TDD greifen sollte. Nach &lt;a href=&quot;http://de.wikipedia.org/wiki/Ockhams_Rasiermesser&quot; rel=&quot;nofollow&quot;&gt;Ochkams Rasiermesser&lt;/a&gt; ist es offensichtlich auch eine sehr treffende und zielf&#252;hrende Methodik, gestalterische Faktoren nicht nur durch die Umweltschnittstelle zu steuern, sondern die R&#252;ckkopplung &#228;u&#223;erer Einfl&#252;sse auch durch &quot;innere Kr&#228;fte&quot; zu verarbeiten.

Das alles h&#246;rt sich f&#252;r den einen oder anderen vielleicht abgehoben an - ist es aber nicht. Ich besch&#228;ftige mich mit diesem Themen schon l&#228;nger etwas intensiver und kann nur sagen: TDD/BDD hat einen wunderbaren, erfolgreichen, effektiven und oft sogar effizienten Sinn, wenn man sich darauf einl&#228;sst, die Dinge so einfach wie m&#246;glich zu sehen und sie genauso einfach anzuwenden. TDD ist kein Allheilmittel und ersetzt keine Systemanalyse, Requirements Engineering, Anwendungsarchitekturen oder Design Patterns. Aber es hilft, auf einem niedrigen Abstraktionsniveau (am Code), bindende L&#246;sungen im gefassten Kontext effektiv und nachvollziehbar zu erarbeiten.

Zur&#252;ck zum CodingDojo-Kontext. Im CodingDojo werden keine gro&#223;en Architekturen gebaut. Im CodingDojo schreibt man keine Web-Anwendung mit jQuery-UI und einer relevanzbasierten Suchengine. Im CodingDojo gibt es kleine, &#252;berschaubare Aufrgaben mit &quot;leichter&quot; Funktionalit&#228;t und einfachen Rahmenbedingungen. 

Bei solchen Dingen mit gro&#223;en analytischen Spr&#252;chen zu arbeiten ist schlichtweg mit Kanonen auf Spatzen schie&#223;en. Manch einem sollte klar gemacht werden, dass diese &quot;Ich denke auf Papier, also bin ich Architekt&quot;-Einstellung gerade bei so konkreten Problemstellungen mehr ein Indiz f&#252;r &quot;schwache&quot; Designf&#228;higkeit ist als ein Beleg f&#252;r &quot;gute&quot; Ingenieurskunst. Schliesslich kann uns soll man ja auch mit Code designen. Das ist ja eines der zentralen Botschaften des TDD/BDD.

F&#252;r das CodingDojo heisst das: Die einfachste L&#246;sung siegt im TDD! Und etwas provokativ formuliert: Stop Talking, Start Coding!</description>
		<content:encoded><![CDATA[<p>Ich habe gerade gestern noch ein CodingDojo in M&#252;nchen gehabt. Es war durchaus vergleichbar mit dem, welches wir beim .NET Open Space in Karlsruhe hatten. Es sind zwei Hauptstr&#246;me erkennbar, wie Du schon richtig getweetet hast: <a href="http://twitter.com/sforkmann/status/16834230537" rel="nofollow">Knobler vs. Coder</a>.</p>
<p>Ich m&#246;chte garnicht zu sehr auf meine Eindr&#252;cke gehen sondern eher auf die Aussage &#8220;CodingDojo TDD : Die einfachste L&#246;sung siegt!&#8221;.</p>
<p>Es gibt eine klare Antwort darauf: JA! Und auch auf die Gefahr hin, hier <a href="http://twitter.com/AlexZeitler/status/16607229212" rel="nofollow">komisch angestarrt</a> zu werden: JAAAAA!</p>
<p>Die einfachste L&#246;sung siegt beim TDD! </p>
<p>Und vor allem bei einem CodingDojo! Wie Du schon richtig angemerkt hast, haben optimierte Algorithmen Ihre eigene &#8220;Sch&#246;nheit&#8221;, n&#228;mlich die, dass Sie nicht nur durchdacht sind, sondern auch auf einem logischen Fundament &#8211; der Mathematik &#8211; aufgebaut sind.</p>
<p>Jedoch ist es nun einmal so, dass wir nicht alle bei der NASA die Raketensteuerung weiterentwickeln oder bei der EADS verteilte, autonome Droiden anprogrammieren. Der Gro&#223;teil von uns besch&#228;ftigt sich im Vergleich dazu mit einfacheren Problemen, meistens im Sinne der Strukturierung &amp; Verarbeitung. Also Komposition, Aggregation, Nachrichtensteuerung und &#228;hnliches.</p>
<p>Daf&#252;r und f&#252;r viele andere &#8211; sogar komplexere &#8211; Problemstellungen ist es das einzig richtige und effiziente Mittel, die L&#246;sung durch empirische Herangehensweise (also test- bzw. spezifikationsgetrieben) zu erarbeiten. Ich denke, dass viele von uns noch lernen m&#252;ssen, dass <a href="http://www.gmbsg.com/tdd-ist-keine-wissenschaft/" rel="nofollow">TDD keine Wissenschaft darstellt</a>, sondern nur ein Mittel, ein Werkzeug in unserem &#8220;Wissenschaftskasten&#8221; ist.</p>
<p>Ich finde auch den Kommentar von Stefan gut, das man die L&#246;sung, die man &#8220;bis dato&#8221; erarbeitet hat so lange durchprogrammiert, bis man es eben merkt, dass man &#8220;gegen die Wand l&#228;uft&#8221;. Viele Theoretiker verabscheuen diesen Gedanken und argumentieren, dass man &#8220;durch einfaches nachdenken&#8221; solche Situationen vermeiden kann und schneller zum Ergebnis kommt. Sie vergleichen das mit &#8220;Try-And-Error&#8221; und bel&#228;cheln die &#8220;einfach sinnlos Code-Rein-Hacker&#8221;.</p>
<p>Was diese Fraktion v&#246;llig au&#223;er acht l&#228;sst ist die einfache Tatsache, dass es eben kein &#8220;Try-And-Error&#8221; ist und eben kein &#8220;sinnloses Code schreiben&#8221;. TDD und BDD leben von Empirie, die eine durchdachte experimentelle Aufstellung erfordert. Es zwingt den Entwickler mehr als jede systemanalytische Diskussion, sich mit der Funktionalit&#228;t nachhaltig gedanklich auseinanderzusetzen. </p>
<p>Ein Unit-Test ist wie ein kleiner Mikrokosmos des wissenschaftlichen Experimentierens: Es fordert vom Forscher (Coder), genau nachzudenken und zu erarbeiten, wie das Experiment (Test) durchgef&#252;hrt werden muss, um die ge&#252;nschten Erkenntnisse (Funktionalit&#228;t) daraus zu gewinnen.</p>
<p>Manche m&#246;gen dann kritisieren, dass dabei das &#8220;Big Picture&#8221; vernachl&#228;ssigt wird und es &#8220;keine gemeinsame Richtung&#8221; oder keinen &#8220;Masterplan&#8221; gibt. Hierbei muss man das Mittel TDD in den richtigen Kontext stellen. Es macht sicher keinen Sinn, gr&#246;&#223;ere Organisationsstrukturen (Patterns &amp; Architekturen), Schnittstellen (Ressourcen, I/O, DB, UI) oder Datenverarbietungsprobleme nur mit TDD anzugehen. Wunderbare Beispiele daf&#252;r sind Parallelverarbeitung, oder autonome Systeme. Das selbe gilt f&#252;r den Optimierungskontext, hier nenne &#8220;nur&#8221; das Beispiel der Sortierung.</p>
<p>Das heisst aber noch lange nicht, dass man in einem &#8220;kleinen&#8221; Rahmen wie der &#8220;Funktionseinheit&#8221; (vgl. &#8220;Unit Test&#8221;) zu dem probaten Mittel TDD greifen sollte. Nach <a href="http://de.wikipedia.org/wiki/Ockhams_Rasiermesser" rel="nofollow">Ochkams Rasiermesser</a> ist es offensichtlich auch eine sehr treffende und zielf&#252;hrende Methodik, gestalterische Faktoren nicht nur durch die Umweltschnittstelle zu steuern, sondern die R&#252;ckkopplung &#228;u&#223;erer Einfl&#252;sse auch durch &#8220;innere Kr&#228;fte&#8221; zu verarbeiten.</p>
<p>Das alles h&#246;rt sich f&#252;r den einen oder anderen vielleicht abgehoben an &#8211; ist es aber nicht. Ich besch&#228;ftige mich mit diesem Themen schon l&#228;nger etwas intensiver und kann nur sagen: TDD/BDD hat einen wunderbaren, erfolgreichen, effektiven und oft sogar effizienten Sinn, wenn man sich darauf einl&#228;sst, die Dinge so einfach wie m&#246;glich zu sehen und sie genauso einfach anzuwenden. TDD ist kein Allheilmittel und ersetzt keine Systemanalyse, Requirements Engineering, Anwendungsarchitekturen oder Design Patterns. Aber es hilft, auf einem niedrigen Abstraktionsniveau (am Code), bindende L&#246;sungen im gefassten Kontext effektiv und nachvollziehbar zu erarbeiten.</p>
<p>Zur&#252;ck zum CodingDojo-Kontext. Im CodingDojo werden keine gro&#223;en Architekturen gebaut. Im CodingDojo schreibt man keine Web-Anwendung mit jQuery-UI und einer relevanzbasierten Suchengine. Im CodingDojo gibt es kleine, &#252;berschaubare Aufrgaben mit &#8220;leichter&#8221; Funktionalit&#228;t und einfachen Rahmenbedingungen. </p>
<p>Bei solchen Dingen mit gro&#223;en analytischen Spr&#252;chen zu arbeiten ist schlichtweg mit Kanonen auf Spatzen schie&#223;en. Manch einem sollte klar gemacht werden, dass diese &#8220;Ich denke auf Papier, also bin ich Architekt&#8221;-Einstellung gerade bei so konkreten Problemstellungen mehr ein Indiz f&#252;r &#8220;schwache&#8221; Designf&#228;higkeit ist als ein Beleg f&#252;r &#8220;gute&#8221; Ingenieurskunst. Schliesslich kann uns soll man ja auch mit Code designen. Das ist ja eines der zentralen Botschaften des TDD/BDD.</p>
<p>F&#252;r das CodingDojo heisst das: Die einfachste L&#246;sung siegt im TDD! Und etwas provokativ formuliert: Stop Talking, Start Coding!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Koelle</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109545</link>
		<dc:creator>Stefan Koelle</dc:creator>
		<pubDate>Mon, 21 Jun 2010 15:24:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109545</guid>
		<description>Hallo,

ich merke in den Kommentaren nun genau die Entwicklung, die uns in Muenchen die letzten Monate auch aufgefallen ist. Gerade mit einem immer wieder aehnlich aufgebautem Team konnte man sehr gut sehen wie sich von Mal zu Mal eine gemeinsame Sprache, ein gemeinsames Vorgehen entwickelt hat. Das schaerft die Sinne fuer aehnliche Faelle im realen Programmiererleben.

Ich bin genau so lange beim Implementieren der einfachsten Loesung, bis man gegen die Wand laeuft, bis das Team damit gegen die Wand laeuft und dann sieht, dass Ueberlegungen notwendig sind. Dann sehen wir dies jedoch alle im Team und nicht nur ein Einzelner, der mehr Informationen hat. 

Das Kommunizieren der Mehrinformationen die ein einzelner Entwickler bereits in der Fruehphase des Prozesses hat ist viel schwieriger, langwieriger und fehlerhafter als wenn das Team schnell implementiert und dann gemeinsam das Problem schwarz auf weiss sieht.

Ilker hat dies fuer mich treffend formuliert und wurde mir dort erst bewusst. Er sagte &quot;Der Code ist unsere Sprache&quot;. Wir diskutieren oft ewig ueber ein Problem und keiner versteht wo das Problem genau liegt. Warum nicht auf dem einfachen Weg umsetzen und dann das Problem als Bild vor sich zu sehen.

Mir ist bewusst, dieser Ansatz gilt nicht fuer komplexe Systeme und beim Zusammenspiel von verschiedenen Systemen muss weiterhin gelten, erst denken, dann handeln. Gerade bei einem Dojo will ich jedoch lernen, wie weit kann ich mit TDD gehen, ich muss es austesten, ich muss es erlernen und es muss in Fleisch und Blut uebergeben den einfachen Weg zu gehen. Nur dann kann ich entscheiden wann ich dieses Vorgehen, diese Technik einsetzen kann, will und werde. Und wenn nach all den Dojos lerne es nur ganz selten einzusetzen, dann weiss ich immerhin mehr als vorher.

Viel Text und schnell dahingeschrieben. Ich will anmerken, das sind Gedanken die mir jetzt durch den Kopf gingen und NICHT recherchierte, bis in&#039;s Ende durchdachte Sinnhaftigkeiten. Also mit Bedacht geniessen, bei Fragen nachbohren und als Diskussionsstoff sehen! ;)

Gruss
Stefan</description>
		<content:encoded><![CDATA[<p>Hallo,</p>
<p>ich merke in den Kommentaren nun genau die Entwicklung, die uns in Muenchen die letzten Monate auch aufgefallen ist. Gerade mit einem immer wieder aehnlich aufgebautem Team konnte man sehr gut sehen wie sich von Mal zu Mal eine gemeinsame Sprache, ein gemeinsames Vorgehen entwickelt hat. Das schaerft die Sinne fuer aehnliche Faelle im realen Programmiererleben.</p>
<p>Ich bin genau so lange beim Implementieren der einfachsten Loesung, bis man gegen die Wand laeuft, bis das Team damit gegen die Wand laeuft und dann sieht, dass Ueberlegungen notwendig sind. Dann sehen wir dies jedoch alle im Team und nicht nur ein Einzelner, der mehr Informationen hat. </p>
<p>Das Kommunizieren der Mehrinformationen die ein einzelner Entwickler bereits in der Fruehphase des Prozesses hat ist viel schwieriger, langwieriger und fehlerhafter als wenn das Team schnell implementiert und dann gemeinsam das Problem schwarz auf weiss sieht.</p>
<p>Ilker hat dies fuer mich treffend formuliert und wurde mir dort erst bewusst. Er sagte &#8220;Der Code ist unsere Sprache&#8221;. Wir diskutieren oft ewig ueber ein Problem und keiner versteht wo das Problem genau liegt. Warum nicht auf dem einfachen Weg umsetzen und dann das Problem als Bild vor sich zu sehen.</p>
<p>Mir ist bewusst, dieser Ansatz gilt nicht fuer komplexe Systeme und beim Zusammenspiel von verschiedenen Systemen muss weiterhin gelten, erst denken, dann handeln. Gerade bei einem Dojo will ich jedoch lernen, wie weit kann ich mit TDD gehen, ich muss es austesten, ich muss es erlernen und es muss in Fleisch und Blut uebergeben den einfachen Weg zu gehen. Nur dann kann ich entscheiden wann ich dieses Vorgehen, diese Technik einsetzen kann, will und werde. Und wenn nach all den Dojos lerne es nur ganz selten einzusetzen, dann weiss ich immerhin mehr als vorher.</p>
<p>Viel Text und schnell dahingeschrieben. Ich will anmerken, das sind Gedanken die mir jetzt durch den Kopf gingen und NICHT recherchierte, bis in&#8217;s Ende durchdachte Sinnhaftigkeiten. Also mit Bedacht geniessen, bei Fragen nachbohren und als Diskussionsstoff sehen! <img src='http://www.navision-blog.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Gruss<br />
Stefan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kostja</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109541</link>
		<dc:creator>Kostja</dc:creator>
		<pubDate>Mon, 21 Jun 2010 12:11:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109541</guid>
		<description>Hallo Ralf, hallo Steffen,

ich glaube, dass ein Dojo neben dem rein fachlichen Zweck, also dem L&#246;sen einer Programmieraufgabe unter Anwendung und Ber&#252;cksichtigung bestimmter Paradigmen (wie z.B. TDD) auch noch einen weiteren Zweck erf&#252;llt: &quot;Erlernen des Umgangs mit gruppendynamischen Effekten in Entwicklerteams&quot;.

Im Gegensatz zu Dir, Steffen, bin ich aber nicht der Meinung, dass es einen sinnvollen &quot;Mittelweg&quot; nicht geben kann. Ich glaube vielmehr, dass es diesen geben muss und es eben darauf ankommt, an der richtigen Stelle vom “Coder” zum &quot;Knobler&quot; zu werden und umgekehrt.

In der Tat lag an dieser Stelle meiner Wahrnehmung nach in Karlsruhe auch der Knackpunkt. Denn man wollte zwar den einfachsten Vorschlag nehmen, der zu einem gr&#252;nen Test gef&#252;hrt h&#228;tte, aber eben der von Dir geforderte &quot;Fokus auf die minimal m&#246;gliche Generalsierung der aktuellen Implementierung&quot; hat dabei meiner Meinung nach gefehlt. Diesen Fokus zu erlernen kann ein weiteres Ziel des Dojos sein.

Ich bin auf jeden Fall immer wieder fasziniert, welchen Verlauf ein Dojo nehmen kann und welch unterschiedliche Methoden und Effekte zu beobachten sind.

Viele Gr&#252;&#223;e
Kostja</description>
		<content:encoded><![CDATA[<p>Hallo Ralf, hallo Steffen,</p>
<p>ich glaube, dass ein Dojo neben dem rein fachlichen Zweck, also dem L&#246;sen einer Programmieraufgabe unter Anwendung und Ber&#252;cksichtigung bestimmter Paradigmen (wie z.B. TDD) auch noch einen weiteren Zweck erf&#252;llt: &#8220;Erlernen des Umgangs mit gruppendynamischen Effekten in Entwicklerteams&#8221;.</p>
<p>Im Gegensatz zu Dir, Steffen, bin ich aber nicht der Meinung, dass es einen sinnvollen &#8220;Mittelweg&#8221; nicht geben kann. Ich glaube vielmehr, dass es diesen geben muss und es eben darauf ankommt, an der richtigen Stelle vom “Coder” zum &#8220;Knobler&#8221; zu werden und umgekehrt.</p>
<p>In der Tat lag an dieser Stelle meiner Wahrnehmung nach in Karlsruhe auch der Knackpunkt. Denn man wollte zwar den einfachsten Vorschlag nehmen, der zu einem gr&#252;nen Test gef&#252;hrt h&#228;tte, aber eben der von Dir geforderte &#8220;Fokus auf die minimal m&#246;gliche Generalsierung der aktuellen Implementierung&#8221; hat dabei meiner Meinung nach gefehlt. Diesen Fokus zu erlernen kann ein weiteres Ziel des Dojos sein.</p>
<p>Ich bin auf jeden Fall immer wieder fasziniert, welchen Verlauf ein Dojo nehmen kann und welch unterschiedliche Methoden und Effekte zu beobachten sind.</p>
<p>Viele Gr&#252;&#223;e<br />
Kostja</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steffen Forkmann</title>
		<link>http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/comment-page-1/#comment-109538</link>
		<dc:creator>Steffen Forkmann</dc:creator>
		<pubDate>Mon, 21 Jun 2010 07:43:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.navision-blog.de/2010/06/20/codingdojo-in-tdd-die-einfachste-loesung-siegt/#comment-109538</guid>
		<description>Hi Ralf,

dass die L&#246;sungen mit beiden Ans&#228;tzen gleich gut werden glaube ich auch nicht. Allerdings kann auch TDD fehl schlagen, bei manchen (mathematischen) Problemen kommt man einfach ohne globale Betrachtung des Problems (also ohne Knobelei) nicht auf die richtige Laufzeit-Komplexit&#228;t. Man bekommt dann mitunter zu einen Algorithmus der korrekt aber exponentiell zu langsam ist. Dann kann man sich streiten, ob das nun erfolgreich war. Ich w&#252;rde dann sagen: &quot;Jetzt haben wir wenigstens schon mal eine Testsuite und k&#246;nnen anfangen zu knobeln.&quot;

Zu der Frage nach dem Ziel des Dojos. Nat&#252;rlich m&#246;chte ich dabei etwas lernen. Aber nicht unbedingt etwas Konkretes. Ich habe bei dem Dojo sehr viel gelernt und das ist so auch genau richtig. Ich habe z.B. gelernt, dass man sich besser abstimmen muss und sonst selbst in einer sicheren Dojo-Umgebung ganz schnell die Ellenbogen ausgefahren werden. Das ist eine extrem wertvolle Erfahrung f&#252;r mich und vor allem eine die ich allein in meinem K&#228;mmerchen nicht machen kann. TDD hingegen oder fachliche Topics kann ich mir immer auch selbst beibringen - Blogs, Webcasts, usw. gibt es reichlich.

Gr&#252;&#223;e Steffen</description>
		<content:encoded><![CDATA[<p>Hi Ralf,</p>
<p>dass die L&#246;sungen mit beiden Ans&#228;tzen gleich gut werden glaube ich auch nicht. Allerdings kann auch TDD fehl schlagen, bei manchen (mathematischen) Problemen kommt man einfach ohne globale Betrachtung des Problems (also ohne Knobelei) nicht auf die richtige Laufzeit-Komplexit&#228;t. Man bekommt dann mitunter zu einen Algorithmus der korrekt aber exponentiell zu langsam ist. Dann kann man sich streiten, ob das nun erfolgreich war. Ich w&#252;rde dann sagen: &#8220;Jetzt haben wir wenigstens schon mal eine Testsuite und k&#246;nnen anfangen zu knobeln.&#8221;</p>
<p>Zu der Frage nach dem Ziel des Dojos. Nat&#252;rlich m&#246;chte ich dabei etwas lernen. Aber nicht unbedingt etwas Konkretes. Ich habe bei dem Dojo sehr viel gelernt und das ist so auch genau richtig. Ich habe z.B. gelernt, dass man sich besser abstimmen muss und sonst selbst in einer sicheren Dojo-Umgebung ganz schnell die Ellenbogen ausgefahren werden. Das ist eine extrem wertvolle Erfahrung f&#252;r mich und vor allem eine die ich allein in meinem K&#228;mmerchen nicht machen kann. TDD hingegen oder fachliche Topics kann ich mir immer auch selbst beibringen &#8211; Blogs, Webcasts, usw. gibt es reichlich.</p>
<p>Gr&#252;&#223;e Steffen</p>
]]></content:encoded>
	</item>
</channel>
</rss>

