Fünf Dinge, die Programmierer tun...
Im TIS innovation park fand am Freitag, 4. Dezember, eine Softwareentwickler-Konferenz statt. Die Informationsverarbeitung hat unser Jahrhundert geprägt. Wir betrachten die Ingenieure dahinter, und lernen Erstaunliches.
-
Wie bewältigt man gigantische Aufgaben?
Roberto Bettazzoni ist Scrum Master und arbeitet mit Kunden wie der Europäischen Raumfahrtbehörde ESA oder Siemens Healthcare . Seine Aufgabe ist es, ein Entwicklerteam von innen heraus zu führen. Er ist als Projektmanager somit kein Vorgesetzter sondern ein Verwalter des Teams. Als solcher muss er einen Rahmen geben, damit die Entwickler ihre Arbeit koordinieren und strukturieren können. Der täglicher Abgleich des Arbeitsfortschritts im Team ist sein wichtigstes Mittel. Im Stand-Up Meeting wird jeden Tag die Frage gestellt: Was hast du gestern getan und was wirst du heute tun? Somit sind alle informiert.
Bettazzoni begreift die Komplexität
Roberto Bettazzoni präsentiert seinen Ordnungsrahmen für Projekte: Einfache Arbeiten koordiniert er nicht, komplizierte Aufgaben bedürfen eines Plans, komplexe Aufgaben bedürfen Experimente.
In einem neuen Projekt beobachtet Bettazzoni zuerst das Team. Je nach dem, wie heftig diskutiert wird, weiß er, ob ein Projekt einfach, kompliziert oder komplex ist.
-
Ein Programm umspannt heute die ganze Welt
Eine Cloud wird gebaut
Eingeweihte wissen, dass der Buchhändler Amazon nicht nur Bücher verkauft. Er verkauft Rechenzeit und Speicherplatz an Softwareanbieter. Abgerechnet in Sekunden und Byte.
“Cloudcomputing” nennt sich das Angebot von Amazon, dessen Markt sich der ECommerce-Gigant mit Google und Microsoft teilt. Im Workshop “Design your Application on AWS” mit Paolo Latella von Amazon, lernen Entwickler wie sie Ihre Anwendung über Cloudcomputing über die ganze Welt verteilen können. Das macht Sinn, weil unsere Internetverbindung nach China länger braucht als nach Deutschland. Wacht China morgens auf, kann automatisch mehr Speicher und Rechenzeit zugewiesen werden. Damit es ein zum Beispiel ein ungestörtes Online-Einkaufserlebnis gibt. Abends schrumpft ihr Online-Shop wieder auf wenige Server.
-
Automatisiertes Fragen
Der Workshop “TDD in practice”. Das Völkchen der Softwareentwickler hat ihre Helden. Einer davon ist der Autor Martin Fowler. In seinem Buch Test Driven Development (TDD), beschreibt er einen revolutionären Ansatz, Software zu bauen: zuerst testen dann machen. Mit dieser Umkehrung der Ordnung erreicht man, dass zuerst die Frage formuliert wird, “was soll die Anwendung eigentlich genau machen?”
Diese Frage wird in Codes geschrieben. Nach der Frage schreibt der Programmierer die Antwort. Verändert jemand die Anwendung, werden alle Fragen ausgeführt und der Entwickler erhält einen Überblick, welche Fragen durch die Bearbeitung des Codes nicht mehr erfüllt werden. Fehler werden damit sehr schnell gefunden.
-
Geliefert wird immer
Erfahrungen mit Continuous Delivery: nicht alles ging schief
Programmierer lieben Programme. Es ist also nicht erstaunlich, dass sie alle Arbeitsabläufe automatisieren wollen. Wird ein Teilstück einer Anwendung fertig erstellt so wird es automatisch online gestellt. Eine Webanwendung wie Facebook ändert sich also oft im Stundentakt und der Anwender merkt oft gar nichts davon. Das geht nur gut, wenn man auch automatisiert testet, aber das hat uns ja der vorherige TDD Workshop gelehrt.
-
Information will geteilt werden
The I in Team is hidden in the A-hole. Quelle: the interwebs
Die Veranstaltung endet mit einem Plädoyer von Dario Coco, seine Arbeit stets mit seinen Mitarbeitern zu teilen. Die Softwareentwickler haben gelernt, dass es nicht darum geht, nebeneinander vor sich herzuarbeiten, sondern den kreativen Rohstoff “Code” ständig untereinander auszutauschen. Nur so erhält das gesamte Team einen Überblick über alle Themenbereiche: von der Datenbank bis zur Farbe des Buttons.
Dieses Wissensmanagement auf Codebasis erlaubt den Programmieren ein flüssiges Arbeiten und entspannte Urlaubstage ohne spontane Anrufe von der Arbeit.
Wer hinter die Kulissen der Informationsgesellschaft schaut, findet Erstaunliches.
Moderne Softwareentwicklung hat bemerkenswerte Strategien gefunden, in der Aufgabenbewältigung und in der Fehlerfindung, in weltweiten und blitzschnellem Bereitstellung neuer Funktionen, im Wissensmanagement und in der Arbeitskultur.
Einiges ist erstaunlich, anders auch für Nicht-Programmierer nützlich.