<?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>Quendor &#187; softwareentwicklung</title>
	<atom:link href="http://www.quendor.org/archiv/category/softwareentwicklung/feed" rel="self" type="application/rss+xml" />
	<link>http://www.quendor.org</link>
	<description>Full of Useful Facts</description>
	<lastBuildDate>Thu, 20 May 2010 14:26:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Der Fluch der Abstraktion</title>
		<link>http://mklein.blog.tarent.de/2010/04/14/der-fluch-der-abstraktion/</link>
		<comments>http://mklein.blog.tarent.de/2010/04/14/der-fluch-der-abstraktion/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 20:11:08 +0000</pubDate>
		<dc:creator>Michael Kleinhenz</dc:creator>
				<category><![CDATA[Passiert]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[softwareentwicklung]]></category>

		<guid isPermaLink="false">http://mklein.blog.tarent.de/?p=12</guid>
		<description><![CDATA[Ich gebe zu, ich bin ein Fan von Techniken zur Komplexitätsbeherrschung. Das liegt wohl auch daran, dass ich sehr viel mit sehr komplexen Systemen zu tun habe und ständig auf der Suche bin, wie diese zu steuern sind. Allerdings fällt mir auch immer wieder auf, dass diese Techniken so ins Extreme verzerrt werden, dass sie [...]]]></description>
			<content:encoded><![CDATA[<p>Ich gebe zu, ich bin ein Fan von Techniken zur Komplexitätsbeherrschung. Das liegt wohl auch daran, dass ich sehr viel mit sehr komplexen Systemen zu tun habe und ständig auf der Suche bin, wie diese zu steuern sind. Allerdings fällt mir auch immer wieder auf, dass diese Techniken so ins Extreme verzerrt werden, dass sie genau das Gegenteil bewirken: einen starken Anstieg der Komplexität in jeder Beziehung.</p>
<p>Im Informatikstudium bekommt man Abstraktion beigebracht. Man lernt, große Dinge in seine Bestandteile aufzulösen und dann einzeln anzugehen. Das beginnt mit Trivialem wie Quicksort und endet bei der Model Driven Architecture. Und das ist auch gut so. Die Abstraktion ist ganz klar eines der wichtigsten Werkzeuge der modernen Informatik und der modernen Systementwicklung. Was einem allerdings nicht beigebracht wird, ist Maß damit zu halten.</p>
<p>Im Seminarraum meiner damaligen Arbeitsgruppe hing ein handgeschriebenes und ausgeblichenes Schild. Auf dem Stand &#8220;Fünf Stunden Perl programmieren ersetzt eine Stunde Nachdenken&#8221;. Was zunächst wie die scherzhafte Kritik an einer Programmiersprache aussieht ist bei genauerem Hinsehen viel mehr: es ist die Kritik an einer Verselbstständigung der Abstraktion. Und genau da liegt eine große Schwäche bei vielen Leuten, die eine systematische Ausbildung der Informatik hinter sich haben: die Technologie verkommt zum Selbstzweck. Wer hat nicht schon einmal Quellcode gesehen, der sich in endlosen Klassenhierarchien vererbt oder Datenmodelle, die jedes ach so kleine Datenpäckchen noch externalisieren und ein an sich einfache fachliche Probleme zu Datenmodellen mit dutzenden Entitäten aufblähen?</p>
<p>Fragt man dann nach, warum die Modelle denn so sind wie sie sind, bekommt man meistens &#8220;Erweiterbarkeit&#8221; an den Kopf geworfen. Oder &#8220;Änderbarkeit&#8221;. Oder &#8220;Vereinfachung&#8221;. Spätestens hier wird dann aber auch schon durch das reine Nachfragen selbst dem abstraktesten Architekten klar, dass etwas schief läuft. Diese &#8220;Verkomplizierung im Namen der Vereinfachung&#8221; oder auch &#8220;spekulative Verallgemeinerung&#8221; ist eine sehr verbreitete Krankheit in vielen vielen Softwaresystemen. Sie führt zu sehr schwer zu wartenden Quellcodes und deutlichen Mehrkosten bei jeder Art von Veränderung und Erweiterung. Damit erreicht sie dann genau das Gegenteil von dem, was eigentlich beabsichtigt war &#8211; und das ist das Tragische daran.</p>
<p>Allerdings befällt dieses Problem nicht nur Software an sich, sondern auch IT-Standards oder auch Entwicklungsprozesse. Dieses &#8220;Overengineering&#8221; kann man beispielsweise sehr gut bei den WS-*-Standards wie SOAP, WSDL oder auch BPEL beobachten. WSDL ist da ein sehr gutes Beispiel: prinzipiell lässt sich damit jede Art von Schnittstelle auf Basis jeder Art von Technologie beschreiben. Aber wird das auch eingesetzt? Mir ist es nicht gelungen auch nur einen einzigen Fall zu finden, in dem WSDL nicht zur Beschreibung von SOAP-Web-Services auf Basis von HTTP oder SMTP zum Einsatz kam. Die beim Design von WSDL berücksichtigte Unabhängigkeit von jeder Art von Dritttechnologie wird überhaupt nicht genutzt! Allerdings hat sie WSDL sehr viel komplexer gemacht und damit schwerer einzusetzen und damit im Endeffekt teuerer. Dass man bei einer so innovativen Technologie wie Web-Services damit quasi das gesamte Konzept auf die Kippe stellt nur weil man die &#8220;ultimativ allgemeine&#8221; Lösung finden möchte ist ein Nebeneffekt. Und dass dieser tatsächlich zuschlagen und einen gesamten Standard ins Abseits katapultieren kann, ist am Besipiel von UDDI sehr schön zu beobachten.</p>
<p>Aus meiner Sicht ist ein guter Entwickler und ein guter Architekt nicht nur jemand, der Abstrahieren kann, sondern auch jemand, der die Grenzen der Abstraktion erkennt. Er muss in der Lage sein, fachliche Bedürfnisse gegenüber technischen Möglichkeiten abzuwägen und die &#8220;richtige&#8221; Lösung zu finden &#8211; nicht die technisch perfekteste, sondern die technisch und fachlich eleganteste. Einfach die Lösung, die <a href="http://de.wikipedia.org/wiki/KISS-Prinzip">KISS</a> ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://mklein.blog.tarent.de/2010/04/14/der-fluch-der-abstraktion/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qualitätssicherung in Mission-Critical-Systemen?</title>
		<link>http://mklein.blog.tarent.de/2010/01/05/qualitatssicherung-in-mission-critical-systemen/</link>
		<comments>http://mklein.blog.tarent.de/2010/01/05/qualitatssicherung-in-mission-critical-systemen/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 10:06:54 +0000</pubDate>
		<dc:creator>Michael Kleinhenz</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Passiert]]></category>
		<category><![CDATA[banken]]></category>
		<category><![CDATA[qualitätssicherung]]></category>
		<category><![CDATA[softwareentwicklung]]></category>

		<guid isPermaLink="false">http://mklein.blog.tarent.de/?p=7</guid>
		<description><![CDATA[Einige Geldautomaten oder deren Backendsysteme haben einen Jahr-2010-Bug. Das Problem scheint so schwerwiegend zu sein, dass es eine größere Medienwelle ausgelöst hat. Dabei verwundert mich ein wenig, dass ein Problem dieses Kalibers scheinbar in keinem vorherigen QS-Verfahren aufgefallen ist was mich wiederum stark an an den QS-Prozessen der Bankenwirtschaft zweifeln lässt. Bei derlei Mission-Critical-Systemen erwarte [...]]]></description>
			<content:encoded><![CDATA[<p>Einige Geldautomaten oder deren Backendsysteme haben einen Jahr-2010-Bug. Das Problem scheint so schwerwiegend zu sein, dass es eine <a href="http://www.spiegel.de/netzwelt/netzpolitik/0,1518,670062,00.html">größere Medienwelle</a> ausgelöst hat.</p>
<p>Dabei verwundert mich ein wenig, dass ein Problem dieses Kalibers scheinbar in keinem vorherigen QS-Verfahren aufgefallen ist was mich wiederum stark an  an den QS-Prozessen der Bankenwirtschaft zweifeln lässt. Bei derlei Mission-Critical-Systemen erwarte ich eine  lückenlose QS, die wirksam verhindert, dass in Systemen dieses Kalibers solche schweren Fehler  auftreten. Zumindest nicht im Produktivbetrieb.</p>
<p>Noch seltsamer ist allerdings, dass &#8220;das Problem&#8221; am 1.1. aufgetreten und bereits am 4.1. als &#8220;gelöst&#8221; bezeichnet wurde. Das bedeutet für mich, dass die &#8220;Lösung&#8221;, die laut Spiegel in einem &#8220;Update der Software der Automaten und Händlerterminals&#8221; bestand, wohl kaum durch eine vernünftige QS gelaufen sein kann. Denn abseits jeder Automatisierung und Professionalisierung der QS-Prozesse: eine korrekte QS benötigt Zeit und ich mutmaße, dass es sich hier um kein kleines System handelt, das in wenigen Stunden komplett auf Seiteneffekte abgeklopft werden kann &#8211; zumal sich ja bereits gezeigt hat, dass die QS-Prozesse sowieso sichtbare Probleme haben.</p>
<p>Im Schluss bedeutet dass, dass vermutlich eine nicht korrekt getestete Software durch eine neuere Version nicht korrekt getesteter Software ausgetauscht wurde und wir uns alle auf das nächste Problem freuen können.</p>
]]></content:encoded>
			<wfw:commentRss>http://mklein.blog.tarent.de/2010/01/05/qualitatssicherung-in-mission-critical-systemen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
