Continuous Talks auf der JenkinsConf

Am 2. Oktober fand in San Francisco die erste Jenkins User Konferenz statt. Ca. 300 Geeks konnten sich einen ganzen Tag über Anwendungen mit dem Continuous Integration Server Jenkins austauschen. In der Keynote stellte Kohsuke Kawaguchi noch einmal den Übergang von Hudson zu Jenkins dar. 80% aller Hudson Nutzer sind seitdem zu Jenkins gewechselt. Die Konferenz hat mir gezeigt, dass die Toolchain für Entwickler immer mehr an Bedeutung gewinnt.

Nach dem AtlasCamp ist vor dem Europa-AtlasCamp

Half Moon Bay – Kalifornien. Was für ein großartiger Ort für eine Softwarekonferenz. Ein kleines Fischerdorf voller Geeks, die sich über JIRA APIs, Java-Code und neue Ideen für Confluecne Plugins unterhalten. Doch die größte Neuigkeit für alle Europäer ist:

Atlascamp kommt nach Europa und das schon im März 2012 (22.+23. März)

…und das Atlascamp 2011 Video:


Hier ein paar ausgewählte Tweets vom Atlascamp:

Confluence 4: Die Zukunft der Kommunikation

Es sind nur noch Tage bis zu Atlassians größtem Produkt-Release! Nach einem Jahr Entwicklungszeit und vielen Jahren, in denen wir auf das Feedback unserer Kunden gehört haben, ist es endlich so weit: Confluence 4 bietet den schnellsten, besten und intuitivsten Editor aller Zeiten. Zusätzlich haben wir die Zusammenarbeit im Team mit der Einführung von @mentions auf ein neues, soziales Level gehoben. Es war noch nie einfacher das Team an wichtigen Diskussionen in Confluence teilnehmen zu lassen.
Um dieses monumentale Ereignis zu feiern, möchten wir euch gerne auf eine Reise mitnehmen. Wir nennen es “Kommunikation durch alle Zeiten“.


Findet das “eater egg” in der Grafik und freut euch auf Confluence 4, der Zukunft für Online-Zusammenarbeit.

Kiel: Nerd-Hauptstadt für ein Wochenende

Wow, das hat man selten in Schleswig Holstein. Die Landeshauptstadt wurde letztes Wochenende zur IT-Hauptstadt. Zwei Geek-Ereignisse fanden (fast zeitgleich) statt: Das Barcamp und das Nordic Coding Event. Ich war auf beiden!

Barcamp Kiel

Gegen 10 Uhr am Freitag, 19. August wurde das zweite Barcamp in Kiel eröffnet. Ca. 300 Teilnehmer verteilten sich im Wissenschaftszentrum auf 6 gleichzeitig stattfindende Sessions. Ich fühlte mich sofort wohl mit Bloggern, Entwicklern, Journalisten, Fotografen, Firmengründern, Social-Media-Experten… locker zu diskutieren. Das Spektrum der angebotenen Themen war sehr vielseitig und reichte von den neusten “Java Script Frameworks” über “Facebook für Unternehmen” bis hin zum “Home-Entertainment Setup mit Apple Produkten”. Das ist es, was ich an Barcamps liebe: Vielseitigkeit der Themen und die Offenheit der Teilnehmer. Das zweitägige Barcamp war ‘ne coole Erfahrung.

Nordic Coding Event

Am Freitagabend fand das 3. Nordic Coding Event statt. Das Saal war brechend voll als Thomas Bahn uns überzeugte, dass JavaScript meist unterschätzt wird. Arno Haase führte uns danach vor, wie man mit SCALA ohne viel Boilerplate, schön leesbare Applikationen schreiben kann. Die Sprache ist immer noch überzeugend, leider war ich von der Tool Unterstützung durch Eclipse nicht sonderlich beeindruckt. Im letzten Vortrag des Abends erzählte uns Dalibor Topic  von den aktuellen Entwicklungen der Programmiersprache Java, dem Open JDK Projekt und der Zukunft für Java aus Oracles Sicht. Spannend. Hat mich überzeugt, dass mit Java immer noch zu rechnen ist und die Sprache noch lange nicht zum alten Eisen zählt.

Fazit

Wenn das weiter so geht, haben wir bald unsere eigene Software-Bay-Area (the Kieler Bucht).

Oracle, Java 7 und die Community

Um drei Dinge drehten sich die News die letzten 14 Tage:

  • Java 7: Das lang ersehnte Release… wir haben 4 1/2 Jahre darauf gewartet
  • Oracle: Kurz vorm Releasedatum wurde noch ein Bug eingetragen. Apache riet vor dem Einsatz von Lucene in Zusammenhang mit Java 7 ab
  • Die Community:  Teile Der Community warfen Oracle vor, Java trotz eines kritischen Bugs released zu haben
Hier eine kleine Zusammenfassung was auf den News Threads so los war:

Ich wundere mich ein wenig über diese Aufregung in Teilen der Community. Wer würde denn eine Software, die nach 4 Jahren eine nächste große Version einführt, sofort unternehmensweit im Produktivsystem einsetzen? Wartet man nicht sowieso die ersten Punktreleases ab? Ich würde jedenfalls nicht erwarten, dass die erste Version völlig fehlerfrei ist. Deshalb kann ich die Aufregung nicht verstehen. Scheinbar nimmt die Community Oracle noch die Sun-Übernahme übel. Zugegeben: Oracle hat sich im Zusammenhang mit der Java Community nicht mit Ruhm bekleckert, aber ich finde, dass das im letzten Jahr viel besser geworden ist. Eines hätte Sun schwerlich hinbekommen: Ein Releasedatum zu setzen, und dieses auch zu halten. Auch wissen wir, dass Sun durchaus auch Java-Versionen mit Fehlern released hat.
Gut finde ich, dass sich die Community frei äußert, ohne ein Blatt vor dem Mund zu nehmen. Das ist es, was ich immer an der Java Community geschätzt habe: Eine offene Diskussion. Auch dieses mal zeigt mir wieder, wie viel Herzblut die Community für Java besitzt. Wie sehr sich die Entwickler für “ihre Sprache” einsetzen. Ich hoffe, dass diese Community noch lange so bestehen bleibt und auch ihre Streitkultur nicht verliert. Das kann nur gut für Java sein!

JIRA 4.4 ist da!

Heute hat Atlassian die neue Version von JIRA released! Die neuen Features werden die Produktivität von Benutzern und besonders von Administratoren verbessern.

Der Adminbereich ist so viel besser geworden

Die Projektadministration hat ein neues simples Benutzerinterface bekommen. Alle projektspezifischen Einstellungen stehen jetzt auf einem Blick zur Verfügung. Das macht es wirklich einfach ein Projekt zu administrieren.  Es ist sofort erkennbar welche Issue-Typen, Felder und Rechte miteinander verbunden sind. Änderungen werden sofort angezeigt. Aber das Beste ist der neue in JIRA integrierte visuelle Workflow-Designer! Dieser erlaubt es einen Workflow einfach zu zeichnen, wie man es von Flowchart-Programmen gewohnt ist.

Upgrades, Installation und Setup haben jeder einen Wizard bekommen. Der neue Upgrader überprüft PlugIn Komptabilität und migriert häufig modifizierte Dateien.

Mehr Power in JQL

Jeder der JIRA benutzt wird die neuen Verbesserung unserer Suche lieben. Der „WAS“-Operator wurde erweitert: Jetzt ist es auch möglich nach ehemaligen Reportern oder Bearbeitern zu suchen. Dabei kann man jetzt mit „WAS“ beispielweise erfragen welche Issues an einem bestimmten Datum geschlossen wurden oder welche einem Benutzer in einem Zeitraum zugeordnet waren.

Und noch viel mehr

Der neue Workflow-Viewer visualisiert auf einfache Weise, wo sich ein Issue im Workflow befindet. Das gibt besonders den Benutzern, die nicht täglich mit JIRA arbeiten oder bei komplizierten oder vielen Workflows einen viel besseren Überblick.

Die HTML Email-Templates wurden vollständig überarbeitet. Benachrichtigungen in Gmail-Threads oder auf einem Smartphone lassen sich jetzt viel besser lesen.

Hier gehts zum offiziellen Blog Post von Atlassian

Spielend Kanban lernen und verstehen mit getKanban

Letzte Woche fand das 3. Treffen der “Limited WIP Society Hamburg” statt und ich war dabei. Diesmal wurde getKanban gespielt. Dies ist ein Brettspiel mit deren Hilfe einem spielend beigebracht wird, wie Kanban in der Praxis funktioniert.

Das Ziel:

Ziel ist es eine Software zu entwickeln, damit das virtuelle Produkt am Ende viele Leute (Subscriber )anzieht. Jede Aufgabe, die durch den Entwicklungsprozess durchgeschoben wird,  bringt einem X Subscriber. Die Gruppe, die nach dem 21ten Entwicklungstag am meisten Subscriber hat, gewinnt das Spiel.

Das Setup:

Es werden Rollen in einer Gruppe von mind. 4 Mitspielern verteilt. Einer spielt den CFO, einer trackt die Cycle Time, ein anderer macht den Projektleiter, ein weiterer plottet das CFD Diagram. Dann gibt es natürlich auch diejenigen, die eigentlich die wirklich Arbeit tun: Designer, Entwickler und Tester. Diese werden in dem Spiel allerdings durch Würfel repräsentiert. Die Indexkarten auf dem Kanban Spielboard sind die zu erledigenden Aufgaben. Das Board weiderum enthält Spalten für ToDo, Design, Entwicklung, Testen und Erledigt. Die WIP Limits sind festgelegt.

Die Regeln:

Designer, Entwickler und Tester werden durch verschiedenfarbige Würfel repräsentiert. Es gilt die Punkte auf jeder Karte abzuarbeiten. Dabei gilt: Bei einem Wurf des Designer-Würfels zählen die Augen doppelt. Wird also mit dem Designer-Würfel eine 5 geworfen, dürfen 10 Punkte der Aufgabe weggestrichen werden. Ein Designer kann allerdings auch mal den Testern oder der Entwicklung helfen und umgekehrt. Arbeitet ein Entwickler also gerade als Tester und würfelt eine 3, so dürfen auch nur 3 Testpunkte für diese Aufgabe durchgestrichen werden. Ansonnsten gelten natürlich die Kanban Regeln zur Einhaltung der WIP Limits.Dazu gibt es noch nach jedem Zug eine Ereigniskarte, die einem die vorher festgelegte Strategie total versauen kann (hat es bei uns mehrfach).


Des Spielende:

Das Spiel endet nach 21 Entwicklungstagen. Man zählt die Subscriber zusammen, die auf den erledigten Aufgabenzetteln stehen und rechnet mit den anderen Gruppen ab.

Mein Fazit:

Es hat richtig Spaß gemacht, nicht zuletzt weil meine Gruppe gewonnen hat. Man ist voll im Spiel und plant Zug für Zug die Entwickler, Designer und Tester für andere Aufgaben ein. Es wird einem schnell klar, dass Bottlenecks in einer bestimmten Disziplin entstehen können und es sinnvoll ist Leute aus anderen Spezialgebieten abzuziehen. Nun murren Würfel nicht rum, wenn diese eigentlich Testerwürfel sind und auf einmal fürs Design geworfen werden. In  der Realität könnte das zu Problemen führen. Das ist aber ein allgemeines Problem bei zu viel Spezialisierung… das Thema kommt ja auch gerade wieder durch die Einführung sog. DevOps ins Rollen.

Ich würde mich nach dieser unterhaltsamen Spielrunde durchaus in die Lage versetzt fühlen und Kanban einmal in einem Entwicklungsteam auszuprobieren, wahrscheinlich aber nur mit professioneller Unterstützung. Echt ne coole Erfahrung! Danke and Arne Rook und Bernd Schiffer für einen unterhaltsamen Abend.

I escaped the browser – Hier ist der deutsche Botschafter

Atlassian möchte mehr mit den lokalen Communities in Kontakt treten. Dazu startet das australische Unternehmen gerade das neue “Ambassador” Programm in Europa. Ich bin stolz darauf, seit Anfang Juli Deutschland als Atlassians Botschafter zu repräsentieren. Ich freue mich darauf der deutschen Entwicklergemeinde unsere coolen Produkte zu präsentieren.

Also, was macht ein deutscher Botschafter?

Ich werde die Aufmerksamkeit auf Atlassian und unserer Produkte erhöhen. Dazu werde ich auf lokalen Veranstaltungen wie Konferenzen und Java User Groups sprechen und an Barcamp und Hackathons teilnhemen.

Momentan habe wir 3 aktive Atlassian User Groups (AUGs) in Hamburg, München und Berlin. Ich werde den AUG-Leitern helfen großartige Events zu veranstalten. Ich möchte gerne herausfinden, wie die Anwender unsere Produkte einsetzen, welche Probleme sie hatten und wie diese gelöst wurden.

In Deutschland gibt es sehr aktive Atlassian Partner, die unsere Produkte verkaufen und den Kunden helfen das volle Potential der Tools auszuschöpfen. Ich werde sie beispielsweise auf ihren eigenen Veranstaltungen unterstützen oder beim lokalen Marketing behilflich sein. Zusammen mit unseren Partner möchte ich coole Anwendungseinsätze unserer Produkte identifizieren und die Community daran teil haben lassen. Ich möchte mehr darüber erfahren, wie Kunden und Partner unsere Produkte nutzen, um ihre alltägliche Arbeit zu erleichtern.

Ich werde darüber bloggen und tweeten, damit die deutsche und die gesamte Atlassian Community erfährt, welche unglaublichen Lösungen mit unseren Tools erreicht werden.

Zusammengefasst ist es meine Mission, dass alle deutschen Softwareentwickler zu Happy Nerds (wie ich einer bin) werden.

Hört sich cool an? Finde ich auch!

Wie mein Botschaftskollege in Großbritannien, John, schon in seinem Blog Post gesagt hat: Es ist großartig, für Dinge, die man sowieso schon in seiner Freizeit tut, bezahlt zu werden. Ich finde es toll mit der Community über “Clean Code”, Scrum oder die neue gehypte Programmiersprache zu diskutieren. Das Team arbeitet zusammen mit einem dem Atlassian Urgestein Ben Naftzger, der von der Europa Zentrale in Amsterdam aus arbeitetBevor ich bei Atlassian angefangen bin, habe ich als Java Entwickler in Dänemark und Deutschland gearbeitet. Die letzten 5 Jahre war ich als Teamleiter eines kleinen agilen Entwicklungsteams tätig. Dort haben wir fast alle Atlassian Produkte eingesetzt.

Möchtest du ein Teil der deutschen Atlassian Community werden? Folge dem deutschen Atlassian Twitter Account und komm zur nächsten Atlassian User Group in deiner Nähe, oder starte eine neue Gruppe und profitiere von den Vergünstigungen. Kontaktier mich, wenn du eine interessante Geschichte zu erzählen hast oder einfach nur “Hallo” sagen möchtest. Schreib mir einfach eine Email an speters (at) atlassian (dot) com.  Ich möchte deine Meinung über unsere Tools oder deine neue verrückte PlugIn Idee hören. Ich freu mich darauf dich auf der nächsten Jax, lokalen JUG, AUG, auf einem Partner Event oder auf einem Kaffe zu treffen.

I escaped the browser – Hier ist der deutsche Botschafter.

Java 7 ist da! Die JDK hinkt (noch) hinterher

Mark Reinhold teilte auf seinem Blog mit, dass alle JSRs für Java 7 angenommen wurden. Lediglich Goolge hatte sich beim Abstimmungsprozess mit einem Nein gegen die JSR 336 entschieden. Somit wurden folgende JSRs angenommen:

  • 203-> Noch mehr New IO APIs
  • 292 -> Invoke dynamic
  • 334 -> small Enhancements for the Java Programming Language (mein Favorit eher bekannt unter dem Namen Project Coin)
  • 336 Java SE 7 Release Content

Damit ist der Abstimmungsprozess fertig… fehlt also nur noch die Implementierung, also die JDK. Laut Marc Reinhold benötigt diese aber noch ein wenig Zeit. Bei Oracle laufen dagegen die Tests der JDK 7 auf hochtouren. Der aktuelle Releasekandidat  (Build 147) sieht sehr gut aus. Wenn die Oraclianer keine Fehler mehr feststellen, steht scheinbar dem geplanten Release am 28. Juli nichts mehr im Wege.

Die Releaseparties der hiesigen JUG Communities sind auch schon geplant… Falls das also nix mit dem Release wird, können wir auch gerne die Parties in Hackathons und Testsessions umwandelt, um Oracle ein wenig unter die Arme zu greifen!

Halte deinen Code sauber!

Vor einer Woche habe ich einen Vortrag vor Entwicklern für Embedded Systems gehalten, der sich mit dem Thema “Clean Code” beschäftigt hat. Die Zeit war leider begrenzt, sont hätte ich gut 5 Stunden und 100 Prinzipien vortragen können.

Hier die aus meiner Sicht die 6 wichtigsten Regeln für das Arbeiten mit Quellcode im Team:

1. Keep it simple, stupid (KISS)

Man sollte immer die einfache Lösung anstreben. Die neuste “Bleeding Edge Technologie” einzusetzen hilft nicht immer weiter. Auch wenn der Code nach 6 Wochen schon nicht mehr zu verstehen ist, entstehen bei der Fehlersuche und Wartung Probleme.

2. Single Responsible Priciple

Eine Codezeile sollte immer eine Sache machen! Die Zuständigkeit einer Funktion/Mehtode sollte eindeutig sein! Eine Klasse soll nur eine Aufgabe erfüllen…

3. Die Pfadfinderregel beachten

Fällt bei Wartungsarbeiten an Quellcode auf, dass dieser mal überarbeitet werden müsste, ist es an der Zeit dies auch zu tun. Baut man seine Änderungen nur ran, so hinterlässt man noch viel schlimmeren Code, den sicherlich bald keiner mehr versteht. Code muss ständig aufgeräumt werden, sonst entsteht das sogenannte “Broken Windows” Phänomen.

4. Don’t repeat yourself

Eine der wichtigsten Regeln… ist aber schon so oft erörtert wurden, dass ich diese hier nur der Vollständigkeit halber aufzähle. lies mehr

5. Use Coding Conventions

Wenn man im Team am gleichen Code arbeitet, sollte man auch gleiche Regeln haben nach dem man Code entwickelt. Dies fängt damit an, wo eine Klammer hinkommt und geht bis zu Bezeichnungsvorschriften von Methoden- oder Klassennamen. Eigentlich beinhaltet das auch alle vorangegangenen Regeln, denn KISS ist ja beispielsweise auch eine Konvention, die jeder im Team einhalten sollte.

6. Use Version Control

Wenn ich diesen Vortrag nicht vor Entwickler für Embedded Systems gehalten hätte, würde dieser Punkt wohl “Benutze moderne Tools” heißen. Ich bin der Meinung man sollte heutzutage keine Codezeile mehr ohne Versionskontrolle, Continuous Integration, automatisierte Tests… schreiben.

Hier meine Slides:

 

Wie gesagt. Ich könnte noch viel mehr Punkte aufführen wie “Root Cause Analyse”, “Favor Composition over Inheritance”, “Separation of Concerns”… Ich hatte aber nur 20 Minuten Zeit.