<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>.Net 4 Fun &#187; Clean Code</title>
	<atom:link href="http://blog.2moveit.de/index.php/category/coding/clean-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.2moveit.de</link>
	<description></description>
	<lastBuildDate>Thu, 02 Dec 2010 00:21:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Anything goes</title>
		<link>http://blog.2moveit.de/index.php/2010/08/anything-goes-2/</link>
		<comments>http://blog.2moveit.de/index.php/2010/08/anything-goes-2/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 17:12:31 +0000</pubDate>
		<dc:creator>Veit</dc:creator>
				<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[Boy Scout Rule]]></category>
		<category><![CDATA[Pfadfinderregel]]></category>

		<guid isPermaLink="false">http://blog.2moveit.de/?p=453</guid>
		<description><![CDATA[Als Gast(autor) ziemt es sich ja eigentlich nicht gegenüber dem Gastgeber in irgendeiner Form mäkelig zu sein. Zumal es sich bei dem Gastgeber um ein von mir über die Maßen geschätzten und respektierten Software-Architekten und -Entwickler handelt. Doch sein zuletzt &#8230; <a href="http://blog.2moveit.de/index.php/2010/08/anything-goes-2/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Als Gast(autor) ziemt es sich ja eigentlich nicht gegenüber dem Gastgeber  in irgendeiner Form mäkelig zu sein. Zumal es sich bei dem Gastgeber um  ein von mir über die Maßen geschätzten und respektierten  Software-Architekten und -Entwickler handelt. Doch sein zuletzt hier  veröffentlicher Aufruf <a href="../index.php/2010/06/time-to-go-back-to-basics/">“Time to go back to the basics”</a> erregte doch in mir Widerspruch, den ich auf diesem Wege loswerden möchte.</p>
<p style="text-align: justify;">In seinem Aufruf kritisierte mein Gastgeber das Verwenden von  Workarounds bei der Software-Entwicklung. D. h., das Verwenden von  kleinen Quelltext-Fragmenten, mit denen Probleme nur auf die Schnelle  und nur vordergründig gelöst werden sollen. Stattdessen soll man wie ein  guter Pfadfinder bei jeder Gelegenheit die Workarounds wegräumen und Ordnung im Quelltext  schaffen — selbst dann, wenn man die Unordnung nicht verursacht hat.</p>
<p style="text-align: justify;">Doch hier regt sich bei mir Widerspruch, so daß ich meinem Gastgeber im Sinne Feyerabends (1997) entgegenrufen möchte: <em>No, anything goes! </em>Denn,  um es mit den Worten Paul Feyerabends zu formulieren, kein Programmcode  ist “so alt oder so absurd, daß er nicht unser Wissen verbessern  könnte. (Feyerabend, 1997, S. 55). Denn woher weiß man den, daß der  Workaround, den man da gerade beseitigen will, das Problem ist? Kann es  denn nicht auch so sein, daß die Idee, die hinter dem Workaround steckt,  die eigentlich bessere ist, als die hinter dem vermeintlich ordentlichen  Quelltext? Kann man das vor allem dann wissen, wenn der Quelltext nicht von einem selber ist?</p>
<p style="text-align: justify;">Denn dies setzt voraus, daß man die Absichten und die Ideen des  Urhebers richtig erkannt und verstanden hat, was nicht immer der Fall sein muß. Und  Aufräumen würde dann die Unordnung, die man dort beseitigen will, erst  schaffen. Hier versagt daher die Metapher der  Pfadfinderregel. Im Wald mag jeder leicht erkennen, daß ein Faß mit  Giftmüll dort nicht hingehört. Aber ein vermeintlicher Workaround, ist am  Ende gar keiner, da er nämlich nur das Ergebnis unkonventionellem und unorthodoxem Denken ist, zu  dem man vielleicht selbst aufgrund der ganzen  Pfadfinderregeln nicht mehr fähig ist. Denn dies sollte nicht vergessen werden, wenn man nach Ordnung und Clean Code ruft. Software-Entwicklung ist ein kreativer Akt, bei der es auch &#8212; wenn nicht sogar primär &#8212; um die Entwicklung von Ideen und nicht nur um die sture Produktion von Quelltext.</p>
<p style="text-align: justify;">Wenn ich in diesem Sinne rufe: &#8220;Anything goes!&#8221;, heißt dies aber auch, daß ich meinem Gastgeber in einem Punkt zustimme. Denn mit  die Software-Entwicklung soll dadurch nicht der Beliebigkeit anheim gestellt werden. Hierfür bedarf es schon einige grundlegender Regeln und Prinzipien, um die Software-Entwicklung zu einem erfolgreichen Abschluß zu bringen. Doch die Regeln und Prinzipen sind abhängig vom Kontext, d. h. von der Anwendungsdomäne und dem Zweck der Software, der Entwicklungsumgebung, den eingesetzte Techniken usw. Und die Regeln und Prinzipien, die in der einen Situation zum Erfolg führten, können in der nächsten versagen. Ein beliebiges und stures anwenden der immer gleichen Regeln und Prinzipien kann genauso schädlich sein, wie eine regel- und prinzipienlose Beliebigkeit.</p>
<p><strong>Literatur<br />
</strong>Feyerabend, P. (1997). <em>Wider den Methodenzwang</em> (6. Aufl.). Frankfurt am Main: Suhrkamp.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.2moveit.de/index.php/2010/08/anything-goes-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time to go back to basics</title>
		<link>http://blog.2moveit.de/index.php/2010/06/time-to-go-back-to-basics/</link>
		<comments>http://blog.2moveit.de/index.php/2010/06/time-to-go-back-to-basics/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 12:29:41 +0000</pubDate>
		<dc:creator>Kai</dc:creator>
				<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[Boy Scout Rule]]></category>
		<category><![CDATA[KISS]]></category>
		<category><![CDATA[Pfadfinderregel]]></category>
		<category><![CDATA[Root Cause Analysis]]></category>

		<guid isPermaLink="false">http://blog.2moveit.de/?p=383</guid>
		<description><![CDATA[Viel zu häufig wird versucht ein Problem durch Workarounds und ausprobieren in den Griff zu bekommen. Insbesondere unter Zeitdruck neigen viele Softwareentwickler dazu schnell ein paar kleine Hacks einzubauen. Aber das rächt sich. Ist die erste Scheiben eingeschlagen, dauert es &#8230; <a href="http://blog.2moveit.de/index.php/2010/06/time-to-go-back-to-basics/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Viel zu häufig wird versucht ein Problem durch Workarounds und ausprobieren in den Griff zu bekommen. Insbesondere unter Zeitdruck neigen viele Softwareentwickler dazu schnell ein paar kleine Hacks einzubauen. Aber das rächt sich. Ist die erste Scheiben eingeschlagen, dauert es nicht lange bis Weitere folgen und der Code immer unübersichtlicher wird. Ändert sich eine Anforderung, dann wird es schwer sich an die Hacks und denn damit häufig einhergehenden Seiteneffekte zu erinnern und so sind weitere Probleme vorprogrammiert.</p>
<p>Time to go back to basics!</p>
<p style="text-align: justify;">Nicht umsonst gehören die &#8220;<a href="http://programmer.97things.oreilly.com/wiki/index.php/The_Boy_Scout_Rule" target="_blank">Boy Scout Rule</a>&#8221; und &#8220;Root Cause Analysis&#8221; zu den Basics der Softwareentwicklung. Häufig stolpert man selbst im eigenen Code über ungewöhnlich Variablennamen, Schleifenkonstrukte, &#8220;Managerklassen&#8221; oder Workarounds. Es genügen häufig kleine Änderungen und der Code wird übersichtlicher und erspart einige Kopfschmerzen beim Debuggen. Insbesondere Workarounds sind gefährlich. Sie erscheinen einem das Leben schnell zu erleichtern und das Problem aus der Welt zu schaffen. Besonders wenn wieder einmal der Chef im Nacken sitzt. Doch die hier gewonnene Zeit wird mit hohen Zinsen erkauft. Wer hat nicht schon einmal ein komplettes Modul neu schreiben müssen? Wird unter die Oberfläche des Problems gesehen und das Übel an der Wurzel gepackt, stellt man zudem oft fest, dass sich ein Problem nicht nur sauberer, sondern viel einfacher lösen läßt als gedacht. Die genannten Prinzipien lassen auch in vielen anderen Bereichen gut nutzen oder wie gut ist euer Schreibtisch aufgeräumt? Oder wiederspricht eurer Meinung nach gar alles dem &#8220;Keep It Simple, Stupid&#8221;-Prinzip und Prokratinationsstapel sind der beste Weg Ordnung zu halten?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.2moveit.de/index.php/2010/06/time-to-go-back-to-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

