Ein Buch diskutiert die Messbarkeit von Programmierleistungen: Lässt sich Effizienz beim Coden beziffern? Ein zweites Buch begleitet bei den ersten Schritten in Python.
Das Buch von Stefan Luckhaus nähert sich seinem Thema auf einer ausladenden Einlaufkurve: Nach einem Streifzug durch 45 Jahre IT-Geschichte und nach einer Stippvisite bei Kondratjews Konjunkturzyklen-Theorie landet es bei der Erkenntnis, Software sei gerade in unserer Zeit ein Schlüsselelement aller wirtschaftlichen wie sozialen Entwicklung, ihre effiziente Herstellung also besonders bedeutsam.
Was bis dahin noch nicht so überrascht, mündet nun aber in spannenden Fragen: Lässt sich die Produktivität von Software-Entwicklung messen? Kann man einzelne Entwickler, Programmiersprachen oder Entwicklungsparadigmen auf Grundlage von Zahlen belegbar vergleichen?
Code in Zahlen
Der Autor führt diese Fragen auf eine Aufwand-Nutzen-Relation zurück, bei der die besondere Schwierigkeit die Messung des Nutzens ist. Der Aufwand lasse sich vielleicht mit Manntagen noch einfach beziffern, aber wie misst man den Output? Nur die Programmzeilen zählen würde nicht genügen, denn dann wäre ein ausschweifender Programmierstil, der viel unnötigen Code erzeugt, produktiver als eine Methode, die zu vielen wiederverwendbaren Funktionen führt. Schon die Formatierung hätte Einfluss auf die Produktivität. Besser geeignet scheint der Funktionsumfang als Messgröße. Das Buch stellt einige interessante Methoden zu dessen Quantifizierung vor (Function Point Analyse, Cosmic-Methode, Data-Interaction-Point-Methode).
All diese Verfahren haben Grenzen: Zum einen, weil der Aufwand für die Messungen klein zu halten ist, zum anderen, weil sie bestimmte Aspekte wie den Wiederverwendungsgrad von Codeteilen oder deren Komplexität oft nicht genügend berücksichtigen. Gerade die Komplexität wirft heute noch viele Fragen auf, unter anderem, weil sich der Begriff einerseits auf das zu lösende Problem, andererseits auf die Implementierung der Lösung beziehen, weil er die Vielschichtigkeit der Benutzerinteraktion oder der abzuarbeitenden Algorithmen meinen kann. Nicht für jeden Fall sind Messmethoden etabliert.
Ein Kapitel mit Tipps zur praktischen Anwendung der Produktivitäts-Messverfahren beschließt das Buch, das viele wertvolle Anregungen vermittelt, die zu einer besseren Planung, Überwachung und Steuerung von Softwareprojekten beitragen können.
Einstieg in Python
Die Einführung in Python setzt tatsächlich keine Vorkenntnisse voraus und bemüht sich um einen legeren Stil. Ob sich der Leser dadurch ermuntert oder veralbert fühlt, ist Geschmackssache. So behauptet der Autor ausdauernd, Computer verstünden nur Zahlen, aber zum Beispiel keine Zeichenketten. Das mag zwar beim ersten Lesen eingängig klingen – in Wahrheit verstehen Computer aber weder das eine noch das andere, gerade das unterscheidet sie von Menschen.
Die Kapitel 5 und 6 behandeln Variablen, Datentypen, Operatoren, Funktionen und die Parameterübergabe. Es folgen Kapitel zur bedingten Programmausführung, zu Schleifen und zur Fehlerbehandlung. Das alles wird gut verständlich erklärt. Bisher gingen die Beispiele aber nicht weit über das Hello-World-Niveau hinaus. Der Leser vermisst ein Exempel mit Praxisnutzen oder Aha-Effekt, das ihn motivieren und für die Mühe entschädigen könnte, sich bis hierher durch die Python-Grundlagen geackert zu haben.
Im Folgenden geht es um fortgeschrittenere Programmiertechniken, namentlich um diverse Datentypen wie Zeichenketten, Listen oder Dictionaries und um eine Einführung in das objektorientierte Programmieren mit Python. Auch das Handling von Dateien ist Gegenstand eines Kapitels. Manches kommt aber auch gar nicht zur Sprache: Beispielsweise fehlen Themen wie reguläre Ausdrücke oder mehrdimensionale Listen, etwas über Grafik mit Python oder zur Datenbankschnittstelle.
Alles in allem: Wer die ersten Schritte mit Python wagen will, der kann sich dem Buch anvertrauen und wird im Schnelldurchlauf viele Kenntnisse erwerben, die ihn später befähigen, sie auszubauen und zu vertiefen. Um diesen zweiten Schritt mit einem anderen Buch wird ein ernsthafter Python-Programmierer aber nicht herumkommen.
Info 1
Stefan Luckhaus:
Produktivitäts- und Leistungsmessung – Messbarkeit und Messmethoden
Pass Consulting, 2016
125 Seiten
20 Euro
ISBN: 978-3-9816563-7-4







