APM

Vor gut einer Woche habe ich an der FHSG nochmals agiles Projektmanagement unterrichtet.

Zur Vorbereitung habe ich u.a. zwei neue resp. neu aufgelegte Publikationen gelesen, das nicht schlechte und kostenlose Modernes (Projekt-)Management: Scrum, Kanban, Management 3.0 & co. sowie das sehr gute Scrum mit User Stories.

Ausserdem habe ich dieses Mal die folgenden drei Anbieter von Kanban- resp. Scrum-ähnlichen Boards als Beispiele gewählt: AsanaMingle und Trello.

 

Masse statt Klasse

Um die Jahrtausendwende habe ich ein paar Sachbücher rezensiert, zunächst für MacTech Magazine, später auch für Computer. Was ich jedoch noch nie rezensiert habe, ist ein ganzer Verlag – bis heute.

Auf Packt Publishing bin ich vermutlich via dem O’Reilly-Shop gestossen, aber ich weiss es nicht mehr sicher. Ist auch egal. Jedenfalls hat der Verlag einen beeindruckenden Katalog von Informatik-Büchern. Nach ca. zwei Dutzend Titel aus dem Katalog, die ich in den letzten paar Jahren gelesen habe, bin ich allerdings zum Schluss gekommen, dass die Aktualität und Breite des Angebots auf Kosten der Qualität gehen und zwar massiv. Mindestens jedes zweite Buch von Packt Publishing habe ich nicht zu Ende gelesen, weil es nur Zeitverschwendung gewesen wäre.

Keine Regel ohne Ausnahme: Learning Concurrent Programming in Scala ist ein sehr gutes Buch, das ich allen wärmstens empfehlen kann, die sich für nebenläufige Programmierung und/oder Scala interessieren. Trotzdem werde ich in Zukunft Bücher von Packt Publishing meiden, wenn sie nicht mindestens in einer zweiten, überarbeiteten Auflage erschienen sind und bereits gute Rezensionen erhalten haben.

NCZScript

Wie ich an anderer Stelle schon bemerkt habe, empfinde ich es als Qual, in JavaScript zu programmieren. Doch trotz TypeScript, Scala.js etc. kommt man in der Entwicklung von Web-Applikationen heutzutage halt nicht ganz darum herum.

Umso dankbarer bin ich Nicholas C. Zakas für seine hervorragenden Bücher. Zuletzt habe ich Understanding ECMAScript 6 gelesen (das übrigens auch die wenigen Änderungen und Ergänzungen von ECMAScript 2016 [aka ECMAScript 7] abdeckt) und wurde wieder nicht enttäuscht.

Datenbankverwaltungssysteme

Mein bevorzugtes Datenbankverwaltungssystem (database management system, DBMS) ist nun schon seit über fünf Jahren MongoDB. Es läuft (nebst S3 ninja) zu Entwicklungszwecken lokal auf meinem Computer. Im Produktivbetrieb kann ich MongoDB as a Service von MongoDB, Inc. selbst, von mLab, von Compose, von meinem JVM as a Service-Anbieter, von Swisscom u.v.a.m. beziehen – für den Testbetrieb (oder zumindest für eine Evaluation) nicht selten kostenlos. Ausserdem gibt es sehr gute deutschsprachige und englischsprachige Fachliteratur zu MongoDB.

Doch auch MongoDB ist nicht für jede Anwendung das geeignetste DBMS. Deshalb setzte ich mich mal wieder mit anderen DBMS-Ansätzen auseinander und zwar sowohl mit dem klassischen als auch mit modernen. Das mache ich durch das Studium von “Relationale Datenbanken” bzw. “Next Generation Databases”, die ich beide empfehlen kann.

DevOps

Jährlich gibt der State of DevOps Report wertvolle Denkanstösse zur Software-Entwicklung (Dev) und zum Software-Betrieb (Ops). Und der diesjährige ist keine Ausnahme.

Obwohl ich kein Freund von in Unterhaltungslektüre verpackten Sachbüchern bin, soll The Phoenix Project nicht unerwähnt bleiben, falls jemand einen sanften Einstieg ins Thema DevOps in Form von Bettlektüre sucht. Wer es lieber konkreter mag, ist mit Sachbüchern zu Continuous Integration, Continuous Delivery und Continuous Deployment besser bedient.

Und auch Firmen aus einer streng regulierten Branche wie dem Finanzwesen müssen nicht aussen vor bleiben. DevOps ist durchaus vereinbar mit ihrer Welt.

Bitcoin, Blockchain und Bücher

Die Themen Blockchain im Allgemeinen und Bitcoin im Speziellen habe ich lange vor mich hergeschoben. Sporadisch habe ich zwar Vorträge besucht (vor gut zwei Jahren die Vorträge von Luzius Meisser und Thorsten Hens an einer New Media Session bei Tamedia und vor gut zwei Monaten den Vortrag von Andreas Antonopoulos am START Summit) und Artikel gelesen (wie The Blockchain Application Stack meistens via Fred Wilson), aber mir nie eine eigene Meinung gebildet. Das wollte ich diesen Frühling ändern.

Im April habe ich deshalb The Age of Cryptocurrency gelesen und im Mai Blockchain Revolution. Ersteres kann ich auch einer nicht-technischen Leserschaft wärmstens empfehlen. Letzteres habe ich nur bis zur Hälfte gelesen und den Kauf und vor allem die investierte Zeit bereut: zigmal wird nämlich -überspitzt zusammengefasst- behauptet, dass Blockchain + Magic Dust = Silver Bullet, ohne dass die Blockchain erklärt oder der Magic Dust plausibilisiert wird. Es ist fast schon erstaunlich, dass die Autoren trotz des Hypes um das Buch und in dem Buch nicht auch noch behauptet haben, dass Blockchain-Technologie sämtliche Krankheiten ohne Nebeneffekte heilen wird …

Im Sommer werde ich nochmals einen neuen Anlauf nehmen müssen, diesmal aber auf der Basis einer technischen Quelle. Nichtsdestotrotz wage ich auf wackeliger Grundlage eine erste Einschätzung:

  • Pessimistisch:
    • Bitcoin ist bereits die Killer-App der Blockchain, es wird nicht viele weitere geben. (Ob sich Bitcoin deshalb zu einem guten Geld- oder Gold-Ersatz mausern wird, weiss ich leider nicht.)
    • Die Blockchain leidet wie sämtliche schlüssel-basierten kryptographischen Systeme unter dem Problem der Schlüssel-Verwaltung, was ihren theoretischen Eigenschaften praktische Grenzen setzt. (An dieser Stelle sei mal wieder verwiesen auf Cryptography Engineering.) Denn auch wenn ein Public Key direkt als Pseudonym fungiert, kann der zugehörige Private Key verloren gehen oder missbraucht werden. Oder wer hat noch nie weder ein Passwort vergessen noch einen physischen Schlüssel verloren?
      Und ich hege den Verdacht, dass viele Nicht-Informatiker sich dieses Aspekts noch gar nicht bewusst sind, was in zu optimistischen Artikeln und Vorträgen (ab Minute 69) resultiert. (Blossstellen möchte ich mit den beiden Beispielen niemanden; es handelt sich schlicht & einfach um den letzten Artikel resp. Vortrag, an den ich mich gerade erinnern kann.)
    • VC-Fonds, die sich auf Bitcoin/Blockchain beschränken, sind ähnlich kurzsichtig wie Investoren, die seinerzeit nur noch auf Ruby-on-Rails-Projekte setzen wollten, obwohl es sich dabei schon damals um ein austauschbares Implementations-Detail gehandelt hatte.
  • Optimistisch:
    • Die Blockchain bietet eine lehrreiche Fallstudie für den Entwurf kryptographischer Protokolle und ihrer konkreten Umsetzung in Form von Software.
    • Die Blockchain wird weiterhin die Phantasie beflügeln und zu Ansätzen anregen, die bis vor kurzem wohl im Keim erstickt worden wären (z.B. über Organisationen verteilte Datenbanken mit hoher Transparenz für Bürger, Kunden usw. – unabhängig davon, ob man sie dann mit kryptographischen Bausteinen aus der Blockchain umsetzt oder anders).
    • Nicht selten liege ich falsch mit meinen Einschätzungen. 🙂

 

 

Scala, Java und C#

Vor knapp einem Jahr habe ich beschrieben, wie ich Scala lerne. In der Zwischenzeit würde ich für den Einstieg Pragmatic Scala empfehlen, nach wie vor gefolgt von Functional Programming in Scala. Programming Scala ist zwar nicht schlecht, aber nicht so gut wie erwartet und deshalb keine Pflichtlektüre mehr. Dafür freue ich mich schon auf die Nachfolger von Introduction to the Art of Programming Using Scala:

Vor einem Jahr hatte ich noch die Absicht, Java (als Programmiersprache) aufzugeben. Nicht zuletzt wegen eines Web-Engineering-Kundenprojekts mit Java, Play und MongoDB habe ich jedoch auch wieder Freude an Java (8!), so dass ich die Sprache nicht nur weiterpflegen, sondern aus reiner Neugierde auch Think Java lesen werde.

Und die diesjährige Build hat einmal mehr Lust auf C# und ASP.NET MVC (dessen Razor immerhin Vorbild für Plays Twirl ist) gemacht …