Heute ist Samstag, der 16. Dezember 2017

Erfolgreiche Projekte sind die beste Visitenkarte

Wußten Sie, daß bis zu 80 Prozent der IT-Projekte scheitern? Eine erschreckende Zahl wie ich finde. Entsprechend stolz bin ich auch auf die Tatsache, daß ich in den letzten Jahren alle meine Projekte erfolgreich zu Ende führen konnte.

Seit dem Jahr 1999 bin ich in erster Linie im Java-Umfeld tätig und beschäftige mich mit besonderem Interesse dem Softwaredesign. Denn aus meiner Sicht ist für eine gut programmierte Anwendung nicht ausschlaggeben, daß sie funktioniert - das ist ja wohl die Grundanforderung. Nein, eine Software ist dann wirklich gut entwickelt, wenn neue Anforderungen und Erweiterungen ohne große Änderungen am bestehenden Code integriert werden können.

Das Erreichen dieser Flexibilität ist vor allem eine Frage der Erfahrung.

Meine Erfahrungen als Entwickler konnte ich bisher in folgenden Projekten (Auswahl) sammeln:

Ligaverwaltung T3sports

Im Rahmen der Umstellung des Webportals des Chemnitzer FC auf das Content-Management-System TYPO3 entwickelte ich zwei TYPO3-Extensions zur Verwaltung des kompletten Spielbetriebs des Vereins. Es war nicht nur mein erstes PHP-Projekt, sondern auch die erste größere Anwendung, die ich für dieses CMS geschrieben habe. Die Entwicklung dauerte bis zur Erstveröffentlichung ca. vier Monate.

FWS

Für einen großen deutschen Versicherungskonzern habe ich in den Jahren 2005 und 2006 ein umfangreiches Controllingtool zur Analyse von Vertriebsaktivitäten geschrieben. Das System wurde mit dem hauseigenen Webframework entwickelt, das auf Struts basierte. Im Backend kam eine Oracle-Datenbank zum Einsatz, auf die über den O/R-Mapper Hibernate zugegriffen wurde.

Interessant an dem Projekt waren vor allem zwei Aspekte. Zum einen musste ich mich auf Grund der großen Datenmenge sehr intensiv mit den Möglichkeiten zur Optimierung der Datenbankzugriffe beschäftigen. Ein fehlender Tabellenindex machte sich sehr deutlich bemerkbar. Zum anderen verfügte die Anwendung über ein ausgefeiltes Rollen- und Rechtekonzept, das eine genaue Zuteilung von Funktionen und Daten für die einzelnen Nutzern ermöglichte.

Treeviewer

Screenshot des Treeviewer auf OSX

In einem Projekt für Aventis Pharma entwickelte ich 2003/04 eine Anwendung zur Visualisierung von Proteinbäumen. Die Anwendung wurde als Java-Applet eingesetzt, konnte aber auch als normale Java-Applikation verwendet werden. Die Daten für die Darstellung wurden über einen Webservice von Aventis zur Verfügung gestellt.

Die Anwendung konnte die Bäume sowohl gerichtet (rooted) als auch verteilt (unrooted) darstellen. Zu den einzelnen Proteinen wurden zahlreiche zusätzliche Informationen angezeigt werden, die automatisch nachgeladen wurden. Der aktuelle Zustand eines Baumes konnte auch gespeichert werden, um in in einer späteren Sitzung wieder aufzurufen.

Alle Funktionen dieser Applikation hier aufzuführen würde den Rahmen sprengen. Während der Entwicklung konnte ich jedenfalls vielfältige Erfahrungen mit Swing und dessen Eigenheiten in verschiedenen Java-Versionen sammeln. Sehr vorteilhaft bei der Entwicklung war für mich, daß ich mich damals recht intensiv mit der Architektur der Eclipse-Plattform beschäftigte. Viele Erkenntnisse aus dem Codereview von Eclipse sind in das Design des Treeviewers eingeflossen.

Auftragsverwaltung für Onlinehandel

Im Jahr 2003 bin ich zum ersten Mal auf die recht neue Programmiersprache Ruby gestossen. Da mich der komplett objektorientierte Ansatz der Sprache interessierte, wollte ich sie unbedingt näher kennenlernen. So traf es sich gut, daß ich einen Kontakt zu einem Onlinehändler bekam, der seine innerbetriebliche Auftragsverwaltung basierend auf Outlook und Excel gern etwas automatisieren wollte.

Auf Basis des Fox-Toolkit erstellte ich mit Ruby ein kleines Steuerprogramm, das in der Lage war, Bestellungen abzurufen, Statusmails zu versenden, Rechnungen zu drucken und eine Statistik zu erzeugen. Im Laufe der Jahre wurde die Anwendung immer mehr erweitert. Inzwischen gibt es eine Datev-Schnittstelle, eine Stapelverarbeitung für die Rechnungslegung, einen automatischen Zahlungsabgleich mit Kontoauszügen bei Vorkassen, einen Spamfilter und sogar Bestellungen über Ebay werden inzwischen verarbeitet.

Ach und Ruby kann ich nur wärmstens als Programmiersprache für kleinere Anwendungen und Scripte empfehlen.

Censio

Die Censio AG war meine erste Station als Javaentwickler. Auf Grundlage des Websphere-Application-Server von IBM entwickelte Censio in nur 4 Monaten ein Internetportal zum Onlinevertrieb von Versicherungen. Dabei agiert Censio auch als ASP und stellte die Funktionen auch anderen Anbietern zur Verfügung. Ende 2000 war Censio bei vielen großen Portalen als Versicherungsanbieter integriert. Zu den Kunden zählten T-Online, AOL, comdirekt, OnVista und die AdvanceBank.

Die Aufgabe für die Entwickler bestand nun darin das Portal für diesen massiven Traffic auszulegen. Ich erinnere mich sehr gut an einen Test Ende April. Von 10 Testern, die parallel eine Versicherung berechnen ließen, hatten nur 3 ein Ergebnis bekommen...

Wenn man eine J2EE-Webanwendung für ein derartiges Portal entwickelt, muß man als Programmierer besondere Umsicht walten lassen. Jede Instanziierung von Objekten kostet Zeit und Speicher. Im Webumfeld müssen diese Kosten dann noch mit der Anzahl der Nutzer multipliziert werden.

Bei Censio hatten wir das große Glück einige hervorragende Entwickler an Bord zu haben, von den man entsprechende Lösungsstrategien lernen konnte.

In nur zwei Jahren lernte ich hier nicht nur Java als ungemein produktive Sprache kennen, sondern ich lernte vor allem auch das allgemeine Rüstzeug, das man als Entwickler benötigt: lesen, lesen, lesen... ;-)