<?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>Software Engineering Blog &#187; Event Driven Software Development</title>
	<atom:link href="http://www.swe-blog.net/blog/archives/tag/event-driven-software-development/feed" rel="self" type="application/rss+xml" />
	<link>http://www.swe-blog.net/blog</link>
	<description>Menschen. Prozesse. Technik.</description>
	<lastBuildDate>Thu, 19 Aug 2010 06:40:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ward Cunnigham über technische Schulden</title>
		<link>http://www.swe-blog.net/blog/archives/94</link>
		<comments>http://www.swe-blog.net/blog/archives/94#comments</comments>
		<pubDate>Sun, 03 May 2009 17:43:02 +0000</pubDate>
		<dc:creator>Oliver Fischer</dc:creator>
				<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Fundstücke]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Deficit Programming]]></category>
		<category><![CDATA[Event Driven Software Development]]></category>
		<category><![CDATA[Technical Debt]]></category>
		<category><![CDATA[Ward Cunningham]]></category>

		<guid isPermaLink="false">http://www.swe-blog.net/blog/?p=94</guid>
		<description><![CDATA[Vor einiger Zeit habe ich ein Phänomen beschrieben, welches ich Event-Driven-Software-Development nenne und dessen Kern von Martin Fowler als Technische Schulden beschrieben wird.
In Fowlers Blog habe ich jetzt einen Verweis auf ein Video von Ward Cunnigham gefunden, in welchem er den Begriff Technische Schulden erläutert und in 4 Minuten und 44 Sekunden auf den Punkt [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit habe ich ein <a href="http://www.swe-blog.net/blog/archives/61">Phänomen beschrieben, welches ich Event-Driven-Software-Development</a> nenne und dessen Kern von Martin Fowler als <a href="http://www.swe-blog.net/blog/archives/62">Technische Schulden</a> beschrieben wird.</p>
<p>In Fowlers Blog habe ich jetzt einen Verweis auf ein Video von Ward Cunnigham gefunden, in welchem er den Begriff Technische Schulden erläutert und in 4 Minuten und 44 Sekunden auf den Punkt bringt.</p>
<div align="center">
<p><object width="445" height="364"><param name="movie" value="http://www.youtube.com/v/pqeJFYwnkjE&hl=de&fs=1&color1=0xe1600f&color2=0xfebd01&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pqeJFYwnkjE&hl=de&fs=1&color1=0xe1600f&color2=0xfebd01&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed></object></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.swe-blog.net/blog/archives/94/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feature-Suppe und Technische Schulden</title>
		<link>http://www.swe-blog.net/blog/archives/62</link>
		<comments>http://www.swe-blog.net/blog/archives/62#comments</comments>
		<pubDate>Tue, 10 Feb 2009 21:00:02 +0000</pubDate>
		<dc:creator>Oliver Fischer</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Deficit Programming]]></category>
		<category><![CDATA[Event Driven Software Development]]></category>
		<category><![CDATA[Feature-Suppe]]></category>
		<category><![CDATA[Technical Debt]]></category>

		<guid isPermaLink="false">http://www.swe-blog.net/blog/?p=62</guid>
		<description><![CDATA[Hier noch zwei Querverweise zu meinem letzten Artikel Event Driven Software Development, die ich gefunden habe.
Feature-Suppe nennt Tom DeMarco  das von mir beschriebene Phänomen, wenn einer Software unkontrolliert und nur auf kurzfristigen Nutzen hin ausgerichtet neuen Funktionalitäten hinzugefügt werden. Als Grund hierfür sieht er das Fehlen einer Person, die das große Ganze im Auge [...]]]></description>
			<content:encoded><![CDATA[<p>Hier noch zwei Querverweise zu meinem letzten Artikel <a href="http://www.swe-blog.net/blog/archives/61">Event Driven Software Development</a>, die ich gefunden habe.</p>
<p><a href='http://www.swe-blog.net/blog/wp-content/uploads/2009/02/feature-suppe.jpg'><img src="http://www.swe-blog.net/blog/wp-content/uploads/2009/02/feature-suppe.jpg" alt="Suppen sind im allgemeinen köstlich und gut bekömmlich." title="Asiatische Suppe" width="250" height="230" class="alignleft size-full wp-image-63" /></a><strong>Feature-Suppe</strong> nennt <a href="http://www.systemsguild.com/GuildSite/TDM/Tom_DeMarco.html">Tom DeMarco </a> das von mir beschriebene Phänomen, wenn einer Software unkontrolliert und nur auf kurzfristigen Nutzen hin ausgerichtet neuen Funktionalitäten hinzugefügt werden. Als Grund hierfür sieht er das Fehlen einer Person, die das große Ganze im Auge hat und unter diesem Aspekt die Entwicklung koordiniert. Nachzulesen ist dieses Anti-Pattern in<br />
<a href="http://www.amazon.de/gp/product/3446412549?ie=UTF8&tag=softwenginblo-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3446412549" target="_blank">Adrenalin-Junkies und Formular-Zombies - Typisches Verhalten in Projekten</a><img src="http://www.assoc-amazon.de/e/ir?t=softwenginblo-21&l=as2&o=3&a=3446412549" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
.<br />
<strong>Technical Debt</strong> lautet die Bezeichnung hierfür bei <a href="http://www.martinfowler.com/">Martin Fowler</a> die Bezeichnung. Im Unterschied zu Tom DeMarco liegt sein Fokus aber auf den technischen Problemen die sich aus kurzsichtigen Umsetzungsstrategien ergeben. Schnell hinzugehackte Funktionalitäten ala „Chef, in drei Stunden ist das fertig! Dafür muß ich nur hier noch kurz …“ freuen zwar manchen und sind sogar manchmal <em>möglich</em>, doch in der Regel werden bei so sogenannte <a href="http://martinfowler.com/bliki/TechnicalDebt.html">technische Schulden</a> angehäuft, die irgendwann samt Zinsen wieder abgezahlt werden müssen und zwar dann, wenn all die Schnellschüsse in eine saubere und <strong>wartbare</strong> Architektur oder Konzept überführt werden müssen. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.swe-blog.net/blog/archives/62/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Event Driven Software Development</title>
		<link>http://www.swe-blog.net/blog/archives/61</link>
		<comments>http://www.swe-blog.net/blog/archives/61#comments</comments>
		<pubDate>Sun, 08 Feb 2009 17:55:37 +0000</pubDate>
		<dc:creator>Oliver Fischer</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Anti Pattern]]></category>
		<category><![CDATA[Anti-Muster]]></category>
		<category><![CDATA[Bad Practice]]></category>
		<category><![CDATA[Erfolg]]></category>
		<category><![CDATA[Event Driven Software Development]]></category>
		<category><![CDATA[Qualität]]></category>

		<guid isPermaLink="false">http://www.swe-blog.net/blog/?p=61</guid>
		<description><![CDATA[Alles braucht einen Namen und was wir nicht benennen können ist schwer bis gar nicht in unserer Begriffswelt unterzubringen und es fiele auch ziemlich schwer über diese Dinge zu sprechen, die wir nicht  benennen können.  All das, dem wir einen Namen geben können existiert und wir können es zum Gegenstand unserer Betrachtungen machen. [...]]]></description>
			<content:encoded><![CDATA[<p>Alles braucht einen Namen und was wir nicht benennen können ist schwer bis gar nicht in unserer Begriffswelt unterzubringen und es fiele auch ziemlich schwer über diese Dinge zu sprechen, die wir nicht  benennen können.  All das, dem wir einen Namen geben können existiert und wir können es zum Gegenstand unserer Betrachtungen machen. </p>
<p>Ein gutes Beispiel hierfür ist <strong>Event Driven Software Development</strong>. Als Abkürzung ist EDSD etwas sperrig, ausgesprochen klingt es nach Dynamik und Aktivität,  und strotzt nur so vor Energie. Vom Namen her hat Event Driven Software Development her also die absolute Chance zum neuen Shotting-Star der Software-Entwicklung aufzusteigen. </p>
<p>Wir alle wissen, daß sich die Anforderungen an unsere Software schon recht früh ändern können und die Änderungswünsche nicht nur von außen, sondern auch innen, direkt aus dem Team kommen. Im Idealfall erkennen wir Dinge, die anders, besser und effizienter erledigt werden können oder es wird schnell mal eine Funktion eingebaut, die die Sonderkonstellation 4711 wunderbar abdeckt. Dann kommen noch anderen Abteilungen auf uns zu, die für die eine Veranstaltung oder jeden Kunden eine bestimmte Funktion brauchen. Wir als Softwareentwickler verstehen uns natürlich als Dienstleister nach innen und außen und bemühen uns allen gerecht zu werden und jeden Wunsch so gut wie möglich umzusetzen.  All dies bezeichne ich als Events auf die wir bei der Entwicklung reagieren müssen und die sich als <strong>Change Request</strong> auf die Entwicklungsziele auswirken können. </p>
<p>Unsere Aufgabe ist es diese Events zu steuern und ihre potentielen <strong>Auswirkungen einzuschätzen</strong> und sie <strong>zu managen</strong>. Je weiter ein Projekt voranschreitet, desto geringer sollten die Änderungen an ihm werden, da wir sonst unser Ziel nicht erreichen können oder es zumindest gefährden. Also ist die <strong>Zeit</strong> ein wichtiges Kriterium bei der Behandlung von externen Ereignissen, die zu Änderungsanforderungen führen können. Bis hierher wird es sicherlich keinen Widerspruch geben.</p>
<p>Aber kann jede Änderung, die nicht hinsichtlich Zeit unkritisch ist, auch umgesetzt werden? <strong>Nein</strong> lautet hier die Antwort. Jede Änderung muß auch danach beurteilt werden, wie gut sie sich in das Produkt, also die Software, einfügt und auch zu den Zielen, die erreicht werden sollen, beiträgt.</p>
<p>Letztendlich zeichnen sich gute Produkte auch durch <strong>Konsistenz</strong> aus. Konsistenz stellt daher auch ein <strong>Qualitätsmerkmal</strong>  dar, daß es im Auge zu behalten gilt. Denn die wirklich guten Produkte sind in sich konsistent.</p>
<p>Bei jeder Änderung muß also auch <strong>kritisch</strong> gefragt werden:</p>
<ol>
<li>Trägt diese Änderung zum (strategischen) <strong>Projektziel</strong> bei?</li>
<li>Fügt sich diese Änderung <strong>harmonisch </strong> in das Produkt ein?</li>
<li>Kann das durch die Änderung angestrebte Ziel auch <strong>anders erreicht</strong> werden?</li>
<li>Ist jetzt der richtige <strong>Zeitpunkt</strong> für diese Änderung?</li>
<li>Gibt es andere Änderungsanforderungen, die den gleichen Gegenstand haben und <strong>zusammen umzusetzen</strong> sind oder <strong>sich ausschließen</strong>?</li>
</ol>
<p>Diese Fragen müssen jedesmal gestellt und beantwortet werden. Falls diese Fragen zu keinem positiven Ergebniss führen, sollte die Änderung hintenangestellt werden, denn ansonsten sind wir nur am Hin-Und-Her-Springen und verlieren Zeit und Qualität. Diese Punkte, scheint mir, werden zu oft vergessen, denn kurzzeitiges Denken siegt oft über langfristigen Erfolg.  Denn die Rechnung kommt erst später, denn je später eine notwendige Korrektur erfolgt, desto teurer ist sie. </p>
<p>Event Driven Software Entwicklung ist  also ein <strong>Anti-Muster</strong> und verweist auf eine <strong>schwache Steuerung</strong> innerhalb eines Projekts und sollte die Frage nach der Projekt oder Firmenkultur aufwerfen.</p>
<p>Meine These lautet: <strong>Gute Software ist eine notwendige Voraussetzung für langfristigen Erfolg.</strong></p>
<p>Richtig ist aber auch, daß gute Software ein notwendiger Grund für Erfolg ist, aber kein hinreichender. Nur aufgrund guter Software stellt sich kein Erfolg ein, aber es wird leichter erfolgreich zu sein. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.swe-blog.net/blog/archives/61/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
