Halbwertszeit von Wissen

Ein spannender Aspekt an der Software-Entwicklung ist die ungeheure Vielfalt an Konzepten, Technologien und Frameworks. Interessierte Software-Entwickler sind ständig dabei, Dinge neuzulernen, vorhandenes Wissen skeptisch zu validieren, und veraltetes Wissen (oder Ansichten) explizit “zu vergessen”.

IT-Wissen hat unterschiedliche Halbwertszeiten. Nehmen wir als Beispiel die Beherrschung der BlackBerry-API: Diese API ist an ein Produkt gebunden. Wenn das Produkt komplett auf eine neue Basis umgestellt wird oder gar stirbt, ist das vorhandene Wissen bzw. die Erfahrung mit der API auf einmal wertlos. Das gleiche gilt beispielsweise auch für Browser-“Optimierungen” (a.k.a Hacks) im Frontendbereich. Frontend-Entwickler, die sich bestens mit IE6 oder IE7-Hacks auskannten, können diese Informationen getrost vergessen, da das Produkt (der Internet Explorer 6,7) einfach nicht mehr relevant ist.

Das Einzige, was vom “Produkt”-Wissen bleibt, sind Konzepte, Strukturen und Ideen, die sich auf andere Gebiete übertragen lassen und die Fähigkeit, Probleme zu analysieren und schnell Lösungen zu finden.

Abseits von der Produktwelt ist das Wissen beständiger. Nehmen wir die HTTP-Spezifikation: HTTP 1.1 gibt es schon seit 1997, und wird wohl noch eine Weile bestehen (Auch wenn Google mit SPDY die Vorlage zu HTTP 2.0 geliefert hat). Von daher lohnt es, die Spezifikation wirklich komplett durchzuarbeiten, sofern man irgendwas mit Internet zu tun hat.

Andere Klassiker sind z.B. die 1989 veröffentliche Bash-Shell oder der wohl ewig nutzbare Vim-Editor. Wer sich da wirklich einarbeitet, kann Jahre davon profitieren.

Die Halbwertszeit von Wissen ist eine wichtige Variable bei der Zusammenstellung des eigenen “Knowledge-Portfolios“. Fundiertes Produkt-Wissen ist natürlich für die tägliche Arbeit unerlässlich, es darf aber nicht das Einzige sein, was man in das Portfolio übernimmt. Sehr wichtig ist es, Wissen mit langer Halbwertszeit zu identifizieren und so das eigene Portfolio langfristiger zu gestalten.

Oracle und Java

Ende Januar diesen Jahres wurde die Sun-Übernahme durch Oracle abgeschlossen. Eine der wichtigsten Plattformen der IT-Industrie gehört nun einem Unternehmen, das erst beweisen muss, dass es dieser Verantwortung gerecht werden kann. Bereits im April wurde die Java-Community durch die Kündigung von James Gosling, dem “Java-Erfinder”, erschüttert. Über die konkreten Gründe hüllt er sich in Schweigen:

As to why I left, it’s difficult to answer: Just about anything I could say that would be accurate and honest would do more harm than good.

http://nighthacks.com/roller/jag/entry/time_to_move_on.

Oracle versucht, den Namen “Sun” an jeder möglichen Stelle zu ersetzen. Ab 1. September wird beispielsweise die SCJP-Zertifizierung (“Sun Certified Java Programmer”) in “Oracle Certified Professional, Java SE 6 Programmer” umbenannt. Der Namenswechsel wird auch in den Produkten selbst vorangetrieben: So gibt das Vendor-Property seit der JVM 1.6.0_21 anstelle von Sun Microsystems, Inc einfach Oracle zurück. Diese scheinbar kleine Änderung hatte für “Eclipse Helios”-Anwender OutOfMemory-Abstürze zur Folge.

Auch die technische Migration der Sun-Webseiten in die Oracle-Welt erfolgte nicht ganz reibungslos. Insbesondere gab es Unmut über geänderte JavaDoc-URLs, die unschöne Implementierungsdetails enthielten. Oracle hat jedoch schnell reagiert und die Korrekturen schnell implementiert.

Spannend ist auch die aktuell eingereichte Klage von Oracle gegen Google. Oracle wirft Google vor, Patente bei der Entwicklung von Android verletzt zu haben. Dies hat nun die Konsequenz dass Google Oracle’s Entwicklerkonferenz “Java One” boykottiert.

Insgesamt hat Oracle in diesem Jahr für (zu)viel Aufregung gesorgt und die Java-Community verunsichert. Mit Spannung wird die Keynote der Java One erwartet, in der sich Oracle’s CEO Larry Ellison zu der Zukunft von Java äußern möchte.

Phonak eStore nominiert zum “Master of Swiss Web 2009”

Fantastisch: Das “eStore”-Projekt, an dem ich letztes Jahr in allen Projektphasen mitarbeiten durfte, wurde nun für den “Master of Swiss Web Award 2009” nominiert.

Phonak eStore

Der nominierte eStore setzt auf der java-basierten Hybris PIM (Product Information Management) Platform auf, in der die Produktdaten aus mehreren Systemen (SAP, iPFG, Celum) zusammengefasst werden. Das Frontend haben wir mit Spring MVC umgesetzt. Viel Arbeit steckte auch in der Entwicklung des Carts und dem anschliessenden Bestellprozess. Zum Projekt gehörte ebenfalls das Aufsetzen der Infrastruktur: Vom Microsoft ISA 2006 als Webproxy bis hin zum eigenen Active Directory für die Kundenlogins war alles dabei.

Sowohl aus technischer als auch aus fachlicher Sicht ein absolut spannendes Projekt. An der Stelle ein dickes Dankeschön an alle Beteiligten !

Ach ja: Wer für unser Projekt abstimmen möchte muss sich erst hier registrieren.

Update 05.04.2009: Leider hats nicht zum Master gereicht. Allerdings können wir uns über Silber in der Kategorie Technology Quality und Bronze in der Kategorie Usability freuen.

Domain Driven Design (2. Trivadis Java Lounge)

Gerade komme ich von der 2. Trivadis Java Lounge zurück. Im heutigen Vortrag mit dem Titel “Domain Driven Design” zeigten Adrian Hummel und Guido Schmutz wie mit Hilfe der Java Persistance API aus einem serviceorientierten “Transaction Script”-Ansatz ein eher OO-getriebenes “Rich Domain Model” entsteht, und wo genau die Vorteile liegen (weniger redundanter Code, erhöhte Testbarkeit und “mehr” Objektorientierung).

Ebenfalls spannend fand ich eine Variante des Builderpatterns, das mit unterschiedlichen Stati und Subklassen arbeitet. Dankeschön an den Gastgeber, es war ein interessanter Abend.