XP-Days Germany 2009 – Teil 1

Conferences 2 Comments »

Sorry folks, this is German only, since it is about a German conference...

Ende der letzten Woche nahm ich an den XP-Days teil, die von it-agile und andrena objects ausgerichtet wurden und in den Räumlichkeiten der IHK Karlsruhe stattfanden. Da ich bislang mit agilen Entwicklungsmethoden nicht nicht in Berührung gekommen bin, das Thema selber aber für sehr zentral und besonders wichtig für Softwareentwickler erachte, wollte ich mir durch den Konferenzbesuch einen Überblick verschaffen und aktuelle Aspekte kennenlernen.
Bislang hatte ich mich in XP und Scrum nur eingelesen, aber noch keine praktischen Erfahrungen gemacht. Daher habe auch nicht an den Tutorials am Donnerstagmorgen teilgenommen, sondern bin am Nachmittag eingestiegen.

Donnerstag

Collaboration - Agile Softwareentwicklung in verteilten Teams

Sprecher: Wolfgang Kraus

Wolfgang erklärte zunächst, was die Vorteile eines verteilten Teams sind: die Verfügbarkeit von Entwicklungsressourcen und die geringeren Entwicklungskosten. Er berichtet weiter von seinen Erfahrungen über eine Webanwendung, die an drei Standorten weiterentwickelt und gewartet wurde. Da auch der Kunde nicht immer vor Ort sei, sei es auch kein Problem, dass das Team selber nicht vor Ort sei um zusammenzuarbeiten. Während Wolfgang kaum Unterschiede im kulturellen und sprachlichen Bereich gemerkt habe, sei ihm deutlich aufgefallen, dass das Verständnis für Geschäftsprozesse stark vom Standort der Entwickler abhänge. So gelänge es einem Weißrussen leichter, sich in deutsche Geschäftsprozesse einzuarbeiten, als einem Chinesen. Wolfgang stellte heraus, wie wichtig es sei durch geeignete Werkzeuge, die teilweise einfach nötig sind beim verteilten arbeiten (Wiki, SVN), den Entwicklern Vorgaben zu machen und die nötige Transparenz zu erhalten. So lasse sich auch die Qualität eines Entwicklers mit metrischen Kennzahlen einfach messen. Bei dem angesprochenen Projekt wurden sämtliche Planungsmeetings komplett per Chat abgehalten und es fanden während der gesamten Projektdauer nur zwei Treffen mit den Entwicklern statt.
Wolfgangs Vortrag führte schon von Beginn an zu einer kontroversen Debatte. Viele der Teilnehmer hatten bei ihren Offshore-Projekten ganz andere Erfahrungen gesammelt und betonten vor allem, dass sie sehr wohl kulturelle Unterschiede bemerkt hatten. Zudem hat es viele der Anwesenden verwundert, dass sich Meetings im Chat abhalten lassen, da auf diese Weise viele (nonverbale) Signale nicht ankommen, die bei eine Telefon- oder Videokonferenz übertragen werden. Viele hatten zudem die Vermutung, dass durch den überhöhten Einsatz der Werkzeuge eine falsche Sicherheit aufgebaut wird, die echtes Vertrauen in die Entwickler nicht ersetzen kann.
Mir persönlich hat der Vortrag nur in Teilen gefallen. Die Informationen über das Projekt waren, unabhängig davon, ob sie sich auf andere Projekte übertragen lassen, sehr interessant und anschaulich. Allerdings störten die vielen Diskussionen den Erzählfluss, zumal sie bereits nach den ersten Folien begannen. Der Referent verlor dadurch an einigen Stellen den Faden und übersprang die, im übrigen bestenfalls durchschnittlich gestalteten, Folien. Als großes Manko sehe ich an dem Vortrag, dass de Rote Faden nicht sichtbar war, oder zumindest, aufgrund der ständigen Unterbrechungen, nicht sichtbar werden konnte. Mir fehlte dadurch auch ein Fazit.

Pecha Kucha 1

Stop the Line in der Softwareentwicklung von Stefan Roock
Unsere Reise ins agile Land von Markus Andrezak
Mein agiler Koffer von Holger Koschek
Kreativität und Agilität im Unternehmen von Simon Roberts

Vorab muss ich zu dieser Session sagen, dass ich zum ersten mal ein Pecha Kucha miterlebt habe. Da prägnante und anschauliche Form gefällt mir sehr und macht einfach nur Spass mitzuerleben! Der Vortragsraum war so gefüllt, dass ich leider keine Sitzgelegenheit mehr ergattern und somit auch nicht mitschreiben konnte. Ich versuche jetzt, so gut es geht, aus dem Gedächtnis zu schreiben.

Stefan Roock erzählte von den Autofabriken bei Toyota. Dort hängen Leinen, die die Arbeiten ziehen sollen, wenn es ein Problem gibt. Ein Licht an einer für alle einsehbaren Tafel leuchtet dann auf und ein Vorgesetzter sieht sich das Problem an, um zu entscheiden, ob das Band angehalten werden muss. Wenn das Licht nun ständig leuchtet, dann ist der Arbeitsplatz überlastet und die Ressourcen müssen anders verteilt werden oder der Prozess angepasst werden. Wenn das Licht zu selten an ist, ist die Arbeitsgeschwindigkeit zu gering und der Arbeitsplatz nicht genügend ausgelastet. Im Idealfall blinken also alle Lichter mit einer mittleren Frequenz. Stefan zog nun die Analogie vom Toyota Production System auf die Softwareentwicklung und überlegte, ob es nicht auch für uns Entwickler eine Möglichkeit geben sollen, an der Leine zu ziehen um zu signalisieren, dass es ein Problem gibt. Anstatt das Band anzuhalten, könnte man Features streichen oder sogar das Release verschieben.

Markus hat seinen agilen Koffer (übrigens ein Rimova!) für eine Reise gepackt und dabei auf sehr anschauliche und lustige Weise erzählt, was alles in diesen Koffer gehört.
An den Vortrag von Simon habe ich leider keine Erinnerung (mehr). :( Wobei auch ein Pecha Kucha auch ziemlich fordern ist, da man alle 20 Sekunden eine neue Folie hat und parallel dem Erzähler zuhört, welcher offenbar auch ein ganz schönes Tempo anschlägt. Ich meine mich zu erinnern, dass Simon den Vortrag wie eine Geschichte vorgetragen hat...

Update:
Danke an Bernd und Holger, die mich auf diesen Fehler hingewiesen haben: Simon Roberts ist krankheitsbedingt ausgefallen und Holger Koschek ist mit seinem Ersatzvortrag Mein agiler Koffer eingesprungen. Markus hingegen erzählte von der Reise ins agile Land. Alle Klarheiten beseitigt? ;)

TDD mit den Stars (Vorrunde)

In der Pause fand die Vorrunde zu einem Programmierwettbewerb statt, bei dem vier Team gegeneinander in — wie konnte es auch anders sein — Test Driven Development antraten.

Jedes der drei Jury-Mitglieder vergab dabei zwischen 0 und 7 Punkte, die, zur Belustigung aller, mittels drei Ziffern in binär ausgedrückt werden mussten. Während die Jury jedes Team nacheinander bewertetet, hatte das Publikum am Ende aller Vorstellungen noch die Gelegenheit jedes Team mit 3, 5 oder 8 Punkten zu bewerten. Diese Punkte wurden dann zu dem Ergebnis der Jury addiert.

Jedes Team, bestehend aus zwei Personen, hatte die Möglichkeit sich eine Woche auf den Wettkampf vorzubereiten. Es gabe vier Themenvorschläge: Test Driven Refactoring, TDD in Legacy Code, TDD from Scratch und TDD mit Akzeptanztest.

1. Team: Ruby simuliert Pokens. TDD mit TDD mit Akzeptanztest
Es wurden Tests in sprachlichen Anweisungen geschrieben, die dann übersetzt und in Tests umgewandelt wurden. Platz: 4

2. Team: TDD From Scratch in Java. Punkte zählen bei einem Tennisspiel. Platz: 1

3. Team: TDD From Scratch in Groovy. Römische Zahlen werden in arabische konvertiert. Platz: 3

4. Team: Test Driven Refactoring in Java: Eine NASA-Sonde war abgestürzt, weil ein Programmteil in Kilometern und eines in Meilen gerechnet hat. Es sollte ein Einheiten-Objekt eingeführt werden, welche die Umrechnung vornimmt. Platz: 2

Leider konnte ich an der Endrunde nicht beiwohnen, da ich zu diesem Zeitpunkt mit dem Mittagessen beschäftigt war.

Wissensinseln - Schadbild, Bekämpfung und Vorbeugung

Referent: Jens Coldewey (Henning Wolf war erkrankt und konnte somit nicht mitvortragen)

Jens hielt einen sehr gelungenen Vortrag über das Thema Wissensinseln. Man erkenne Wissensinseln, wenn man zum Beispiel in einem Gantt-Diagram immer wieder einen Entwickler in einem kritischen Pfad findet oder anderer Entwickler sofort sagen "das kann nur XYZ machen". Bei agiler Entwicklung tun solche Inseln sofort weh (wenn nicht jeder Entwickler jede Aufgabe übernehmen kann), bei jedem anderen Entwicklungsmodell früher oder später. Um negative Folgen wie Überstunden und Urlaubssperre zu verhindern, gelte es diese Wissensinseln zu finden und trocken zu legen.
Wissensinseln lassen sich finden, indem man zum Beispiel den Code in Bereiche aufteilt und die Entwickler anonym befragt, wie gut sie die Bereiche kennen. Wenn nur eine Personen eine Bereich mit den Schulnoten 1 oder 2 benoten, liegt eine Wissensinsel vor.
Ein generelles Problem dabei sei, dass Arbeitsteilung seit jeher die Effizienz erhöht, dabei aber zu Spezialisierung führt. Um die Entwicklerkapazitäten bestmöglich auszulasten wird die Bildung von Wissensinseln implizit gefördert. Daher sollte der erste Schritt sein zusammen mit dem Management die folgenden zwei Punkte zu klären:
1. Die Gesamtdurchlaufzeiten sind wichtiger als die Auslastung der Entwickler.
2. Effektivität ist wichtiger als Effizienz.
Während des Abbaus von Wissensinseln darf auf keine Überlast auf dem Team sein. Das Team muss sich vertrauen und langfristig eine collective codeownership aufbauen. Zudem darf man in dieser Phase kein Micromanagement anwenden und den Entwicklern vorschreiben, welcher welche Aufgabe übernimmt. Bei einem kritischen Bereich soll von nun an nur noch Pair-Programming verwendet werden, bis sich wenigstens zwei Entwickler ausreichend auskennen. Crossfunctional Team sind ein weiteres gutes Gegenmittel für Wissensinseln. Eine Teamgröße von 4-8 Personen wird empfohlen und die Teams sollten während des Projektes stabil gehalten werden. Vor allem darf nicht vergessen werden, dass der Abbau von Wissensinseln Zeit kostet.
Der Vortrag war rhetorisch perfekt gehalten und durch zahlreiche Beispiele aus der Praxis aufgelockert. Übrigens wurde der Vortrag auch schon von Beginn an so ausgelegt, dass beide Referenten die selben Informationen hatte und somit schon von vorne herein einer Insel vorgebeugt wurde. Jens hat alle graden Seiten erstellt und Hennig alle ungraden...

JSConf.eu 2009 in Berlin

Conferences 1 Comment »

Breakfast at the ÏMA design village.
DSCI0436

DSCI0437

Some of the qooxdoo guys:
DSCI0442
Alex and Martin.

DSCI0443
Martin and me.

DSCI0440
Jan Lehnardt, Holger Blank and Malte Ubl open up the JSConf.eu 2009.

DSCI0441
Chris Kowal (originally Kevin Dangoor) speaks about commonJS.

DSCI0445
Francisco Tolmasky speaks about Cappuccino and Atlas.

DSCI0446
Remy Sharp speaks about HTML5.

DSCI0449
Andy Tijn and Thomas Schuppel speak about JavaScript on mobile devices and OVI.

DSCI0450
Brian Le Roux speaks about Phonegap.

DSCI0451
Malte Ubl speaks about Joose.

DSCI0453
Thomas Fuchs speaks about JavaScript performance.

DSCI0454
Douglas Crockford speaks about ECMAScript.

DSCI0455
Amy Hoy speaks about good user interfaces.

DSCI0457
Peter Svensson speaks about dojo.gfx and dojo.charting.

DSCI0459
Mike de Boer and Ruben Daniels speak about ajax.org.

DSCI0460
Tom Hughes-Croucher speaks about YQL.

DSCI0461
Chris Kowal and Tom Robinson speak about Narwhal.

DSCI0462
Fabian Jakobs speaks about how widgets are build in qooxdoo.

Meet the qooxdoo developers in Mainz

Conferences No Comments »

On Wednesday, the 29th and Thursday the 30th of October you will have the opportunity to meet some of the qooxdoo developers at the AJAX IN ACTION in Mainz, Germany.

  • Fabian¹ will speak about the new widget and layout system and how to use it in his presentation "Moderne GUI-Entwicklung im Web mit qooxdoo" (english title "Modern web GUI development with qooxdoo") on Wednesday from 11:45 to 12:45.
  • Andreas¹ will take part in the panel keynote together with other experts to answer non-everyday questions from the audience on the same day from 14:00 to 15:00.
  • I will be around on Wednesday as a visitor as well. Alexander¹ will be there on Thursday.

I am really looking forward to this event, especially as I will have the opportunity to see a friend of mine, Golo, in action. ;-)

¹ We added a profile for ever developer on our core developers site, so check it out!

qooxdoo at webinale 2008

Conferences No Comments »

During the webinale 2008 we had a conference stand next to our co-workers from the 1&1 human resources department. This was great since they had this nice Nespresso machine and supplied us with free coffee all the time. ;-)


back row (l.t.r): Fabian, Andreas, Sebastian
front row (l.t.r): Jonathan, Martin

We already wrote a lot on our official blog, so here is just a quick overview of our sessions:

Monday, the 26th of May: Power Workshops

  1. GUI Development with qooxdoo
    Sebastian Werner and Fabian Jakobs
  2. Web Application Development
    Sebastian Werner
  3. Browser Object Model and qooxdoo Animation
    Alexander Back and Jonathan Rass

Wednesday, the 28th of May:

  1. Web Testing
    Thomas Herchenröder
  2. Advanced Object-Oriented JavaScript
    Andreas Ecker
  3. JavaScript Tooling
    Fabian Jakobs
  4. qooxdoo - Killer Applications for all Browsers
    Andreas Ecker

The conference was great: we saw interesting sessions, met nice people at our stand and learned much about presentations. We will probably come back next year. ;-)

webinale 2008 – Review part III

Conferences No Comments »

"Design Patterns" in Dynamic Languages

Software architect Neal Ford gave a wonderful presentation about how easily goals of the design patterns from the Gang of Four can be reached using dynamic language features.
He pointed out that these patterns build another language on top of C++ to make it »suck less«. Today, with the abilities of dynamic languages like Python, Ruby, Groovy or JavaScript (yes – you did not thought that, do you?), you do not have to build this helper constructions to solve the problems the design patterns were made for.
I can not tell you much about this session since I stopped writing and just enjoyed listening to Neal shortly after he began speaking. Just watch his slides and look at the examples to get the idea.

webinale 2008 – Review part II

Conferences No Comments »

Getting Real - der "Weg" der 37 Signals

  • English title (might be): Getting Real - 37 Signals' "way"
  • Language: German
  • Speaker: Frank Westphal

Extreme programmer Frank Westphal talked about his work with the 37Signals and their "way" of work.

  • The gorgeous Signals' book "Getting Real" is available for free online. Cool! :-)
  • Development should be done in a iterative way: launch quickly and listen to the users' feedback.
  • Small companies can not keep up with the arms race of bigger companies which fight each other with features. Those companies can only build less (to save time and money) but concentrate on the essentials.
  • Build the interface first and work with an HTML prototype – not with a Photoshop file.
  • A project has four main factors: time, complexity, quality and budget. Launch when time or budget is gone to keep your quality.
  • Let the users solve their problems in their own way, no not force them.
  • Scaling will be a problem at last (if at all). Frank did not mention it, but in the future scaling problem can be solves using a cloud hosting platform like Google App Engine or Amazon S3.
  • »Specifications are wish lists created at the completely wrong time.« — I never liked a sentence so much. :-)
  • Implement small but difficult details later.
  • Admit mistakes or failures to the public to create confidence.

I totally enjoyed this session! It must be wonderful to work in this lightweight, iterative way on projects.

webinale 2008 – Review part I

Conferences No Comments »

Silverlight-1.0-Anwendungen mit JavaScript entwickeln

  • English title (might be): Developing SilverLight 1.0 applications with JavaScript
  • Language: German
  • Speaker: Oliver Scheer

On Monday, the 26. May, Microsoft Evangelist Oliver Scheer talked about programming SilverLight with JavaScript. Here are my thoughts about his presentation in order of appearance:

  • The Skeleton structure of a Silverlight application reminds me pretty much of a qooxdoo skeleton: one HTML file, one loader JavaScript file and the actual code as second (or more if you use parts) JavaScript file(s). The only difference is that in Silverlight a XAML file is used to store the UI description.
  • A funny thing that I noticed: the example website, tafiti.com, does only work correctly in "emulate IE7" mode.
  • I do not like Microsoft's naming conventions inside XAML files (e.g. LeftButtonMouseDown).
  • It is really nice that Visual Studio offers Intellisene for JavaScript files, but I am not sure how powerful this is. There are several IDEs with similar features, but they all get stuck when a JavaScript framework is used that extends the native classes or brings in it's own inheritance "syntax". By the way: this is the reason that qxDT is currently developed. qxDT is an Eclipse extension based on JSDT which will enable validation, code completion and more in Eclipse for qooxdoo projects. I will write more about this as soon as I have some time. :-)
  • Anyway, to enable Intellisense you have to download and add some JavaScript files from codeplex.com. Then you have to convert every SilverLight object into a JavaScript object before you can use Intellisense. There are three problems with this solution:
    1. After this conversion you will use a different API than before. You can edit this Intellisense.js to make the API look the way you want, but it is still different from the native API.
    2. Since you use a different API you have to keep this JavaScript files in your project if you deploy it. Even if an optimized version of this converter exists you still have to use a third-party-component in your project.
    3. Every convert call is costly and I have not seen a possibility to cache the converted objects.
  • Oliver did not mention if this is going to change with SilverLight 2.0 and I am really interested when Microsoft is going to do enhance Intellisense to work out the box with SilverLight.
  • The presentation itself was pretty good. I would have preferred to see a bigger coding part instead of showing how easily GUIs can be build, but since this is an advantage of SilverLight I do not want to complain.

WordPress Theme & Icons by N.Design Studio
Entries RSS Comments RSS Anmelden