Code a little, Test a little, Deploy a little – Continuous Delivery im Großen

Software-Entwicklung ohne Branches und jede Code-Änderung sofort produktiv setzen. Das klingt abwegig? Die Großen machen es uns vor!

Boris Bokowski von Google hielt einen der beeindruckendsten Vorträge auf der diesjährigen OOP. Er berichtete darüber, wie bei Google Software entwickelt wird:

Weiter lesen…

Big Data: Der neue Goldrausch?

Big Data ist jetzt in den Massenmedien angekommen. Was ist dran am neuen „Goldrausch“?

Diese Woche titelt Die Zeit im Wirtschaftsteil mit einem Schwerpunkt zu Big Data. Die Kernaussage lautet, dass sich mit großen Datenmengen jetzt Geld verdienen lässt. Gleichzeitig schätzt Gartner im aktuellen Hype Cycles Report 2012, dass Big Data kurz vor dem Höhepunkt des Hype-Zyklus steht. Das mit Big Data eng verbundene Thema Social Analytics soll seinen Höhepunkt schon hinter sich gelassen haben. Getreu des Hype-Zyklus stehen beide Themen somit kurz vor dem Tal der Enttäuschungen. Ist Big Data also schon wieder durch, sobald jeder darüber spricht?

Weiter lesen…

OpenStreetMap – eine Schatzkiste an frei verfügbaren Geodaten

OpenStreetMap (OSM) enthält eine enorme Menge an frei verfügbaren Geodaten – derzeit sind es rund 1,6 Milliarden Koordinaten. Wie lässt sich das dort vorhandene Wissen in eigenen Projekten verwenden?

Nach einem ersten Blick in die Datenbasis stellt man schnell fest, dass die Geodaten nur wenig strukturiert vorliegen. Ähnlich wie bei Wikipedia ist zwar enorm viel Wissen vorhanden, aber nur implizit. Es gibt keine Schnittstellen, mit denen sich die Informationen komfortabel abfragen ließen. Das heißt: Es ist z.B. nicht möglich den längsten Fluss Deutschlands abzufragen. Stattdessen lassen sich nur alle Punkte, Pfade und Polygone ermitteln, die mit dem Tag „water“ versehen sind und sich innerhalb eines vorgegebenen Ausschnitts befinden. Erst durch eine Auswertung dieser Daten lässt sich der längste Fluss ermitteln.

Weiter lesen…

NoSQL – hoch-skalierbar, extrem schnell und viel Auswahl

NoSQL-Datenbanken sind nicht nur ein spannendes Thema, sie lösen auch schwierige Probleme. Für welches Einsatzgebiet jedoch welche Art NoSQL-Datenbank passt, ist anfangs nicht offensichtlich.

Aus diesem Grund habe ich eine Einführung in die verschiedenen Arten von NoSQL-Datenbanken geschrieben. Dazu habe ich die Pattern-Form gewählt. Das heißt: Für jede Art NoSQL-Datenbank identifiziert ein Pattern das Einsatzgebiet, für den diese Art NoSQL-Datenbank eine geeignete Lösung darstellt. Zusätzlich wird erläutert, warum das jeweilige Problem schwer ist und mit welchen Konsequenzen man rechnen muss, wenn man eine NoSQL-Datenbank dieser Art einsetzen will.

Weiter lesen…

Technisch oder fachlich: Wie verteilt man die Entwicklungsaufgaben in einem Team?

In kleineren Entwicklungsprojekten ist es selten offensichtlich, wie die Programmieraufgaben am besten verteilt werden. Sollen sich die Entwickler eher technisch oder fachlich aufteilen?

Nach meiner Erfahrung spezialisieren sich auch in kleineren Projekten (für mich sind das Teams mit maximal 10 Entwicklern) die Entwickler häufig nach technischen Kriterien: Es gibt den Datenbankdesigner, den Backend-Programmierer und die Web-Entwicklerin.

Weiter lesen…

Mocks für die Frontend-Entwicklung – Teil 2

Der erste Teil dieses Artikels hat gezeigt, wie Mock-Objekte prinzipiell das Leben von Java-Web-Entwickler erleichtern. Nun folgt ein Beispiel aus der Praxis.

Dass die durchgängige Entwicklung von Mock-Objekten relativ viel Arbeit bedeutet, wurde schon im ersten Teil erwähnt. Umso wichtiger ist es, dass die dafür notwendige technische Infrastruktur möglichst einfach umzusetzen ist.

Weiter lesen…

Mocks für die Frontend-Entwicklung – Teil 1

Frontend-Entwickler leiden häufig unter langen Round-Trip-Zeiten beim Bauen und Deployen einer Java-Web-Anwendung. Selbst bei kleinen Layout-Änderungen muss der vollständige Bau-Prozess durchlaufen werden. Mock-Objekte können hier viel Arbeitszeit sparen.

Wer ist von dem Problem überhaupt betroffen? Die Entwickler von Play-, Vaadin– oder Grails-Projekten kennen langsame Build-Prozesse kaum. Auch diejenigen Entwickler, deren Anwendungen in reinen Web-Containern wie Tomcat laufen, profitieren in der Regel von ihrer schlanken Infrastruktur.

Sobald aber „schwerere“ Technologien wie O/R-Mapping, EJBs oder Messaging dazukommen, benötigt das Bauen und vor allem das Deployen einer Anwendung spürbar Zeit. Vor allem der Einsatz von Anwendungsservern bremst die Entwicklung aus. Zum einen funktioniert das Hot-Code-Replacement von Code-Änderungen im laufenden Betrieb meistens schlecht, zum anderen schlagen Änderungen an Ressourcen wie JSF- oder Wicket-Html-Dateien nicht sofort durch. Jedenfalls, solange man nicht Produkte wie JRebel einsetzt.

Weiter lesen…

Areas for Pattern Mining Inside and Beyond IT

After nearly twenty years of pattern mining, many important areas in software development and beyond are covered by patterns. At the same time, many new areas have emerged for which no or few patterns have been documented yet. In which areas are patterns still missing?

With this question in mind, an open space session was held at the EuroPLoP 2012 pattern conference. Andreas Rüping, who moderated the session, summarized the propositions that were made by the participants.

Weiter lesen…

UUIDs als Primärschlüssel in relationalen Datenbanken

Die fortlaufende Datenbank-Id ist vielen Anwendungsentwicklern der liebste technische Primärschlüssel. So komfortabel solche Sequenzen auch sind, sind sie jedoch ein Problem bei der Skalierbarkeit und Replikation von relationalen Datenbanken.

In der relationalen Datenbankwelt mit einem zentralen Datenbankserver sind Sequenzen einfach einzurichten und komfortabel zu verwenden. Fortlaufende Nummern bieten Übersicht in den Datensätzen (von wann stammt der Datensatz ungefähr?) und sind ein schnell auszuwertendes Sortierkriterium.

Weiter lesen…