Wien wartet auf Dich!
Tom DeMarco, Timothy Lister, Peopleware/Wien wartet auf Dich! – Der Faktor Mensch im DV-Management, Hanser-Verlag, 1999
„Peopleware“ war sicherlich eines der ersten Bücher, das den menschlichen Faktor in der IT beschrieb. Es erschien schon 1987. Dabei behandeln die einzelnen Kapitel die unterschiedlichsten Aspekte der IT-Projektarbeit in Zusammenhang mit dem „Faktor Mensch“.
Auch heute noch lassen sich die einzelnen Kapitel (auch unabhängig voneinander) gut lesen. Zwar gibt es Bücher, die dieses Thema tiefer und wissenschaftlicher beschreiben, aber es ist immer noch zeitgemäß und sicherlich ein guter Anfang, sich mit Soft Skills in der IT zu beschäftigen.
Abb.2: Cover ''Wien wartet auf dich''
Refactoring Databases
Scott W. Ambler, Pramod J. Sadalage, Refactoring Databases – Evolutionary Database Design, Addison-Wesley, 2011
In diesem Buch wird einmal aus Sicht der Datenbank beschrieben, was bei einem Refactoring der Applikation (und damit der Datenbank) alles beachtet werden muss. Zusätzlich gibt es Beschreibungen von immer wiederkehrenden Problemen inklusive der Beschreibung von Strategien, wie mit diesen umzugehen ist beziehungsweise welche Wechselwirkungen beachtet werden müssen. Dabei kann ich aus meiner Erfahrung sagen, dass sich gerade unerfahrene Entwickler oft keine Gedanken darüber machen, was eine Fallbackstrategie (außer dem Installieren einer alten Programmversion) noch alles beinhalten muss, um sicherzustellen, dass der Fallback auch wirklich möglich ist. Schließlich kann das Datenbankschema in der Regel nicht einfach zurückgerollt werden.
Abb.2: Cover ''Refactoring Databases''
Managing Java
Lars Wunderlich, Managing Java – Operating, Monitoring, Performancetests, Entwickler.Press, 2006
Eigentlich soll dieses Buch beschreiben, wie man in Java geschriebene Software sicher betreibt. Allerdings kann man die beschriebenen Techniken, wie JMX (Java Management Extensions), natürlich auch dazu verwenden, um überhaupt zu verstehen, welche in Java-geschriebenen Prozesse überhaupt laufen beziehungsweise um ein Gefühl dafür zu bekommen, wie diese sich verhalten. Ein wirklich kleines, nützliches Buch zum Betrieb von Java-Anwendungen.
Abb.3: Cover ''Managing Java''
Entwurfsmuster
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Entwurfsmuster – Elemente wiederverwertbarer objektorientierte Software, Addison-Wesley, 2001
Sicherlich kennt kaum jemand in der Softwareentwicklung das Buch der „Gang of Four“ nicht. Beim Retrofitten von Systemen zeigt dieses Buch aber ganz neue Qualitäten. Bezieht man nämlich die hier vorgestellten Muster nicht auf die Entwicklung neuer, objektorientierter Softwareteile, sondern auf das Gesamtsystem, so können manche Patterns auch hier gute Dienste leisten.
Ein Beispiel: Das Muster Fassade (Fascade) dient dazu, die Kommunikation und Abhängigkeiten von Objekten zu minimieren. Betrachtet man aber als Objekte nicht nur die Objekte der verwendeten Programmiersprache, sondern Applikationsobjekte (Teilkomponenten) allgemein, so hilft dieses Muster auch hier, die Software zu vereinfachen, indem es zum Beispiel den Aufruf von nativen Codeteilen auf fachliche Aufrufe beschränkt und die ganze Logik, wie der native Teil aufgerufen werden kann, kapselt.
Abb.4: Cover ''Entwurfsmuster''
Patterns for API Design
Olaf Zimmermann, Mirko Stocker, Daniel Lübke, Uwe Zdun, Cesare Pautasso, Patterns for API Design – Simplifying Integration with Loosely Coupled Message Exchanges, Addison-Wesley, 2022
Gerade weil solch hochverfügbare Systeme nicht alleine existieren, ist es wichtig, die Schnittstellen so lose gekoppelt zu haben, dass ein Problem in einem anderen System dieses System nicht „herunterreißt“. Das Team um Olaf Zimmerman hat hier viele Patterns aus der Praxis ermittelt und gibt wertvolle Anregungen zum Thema Schnittstellen.
Abb.5: Cover ''Patterns for API Design''
Regular Expressions
Jeffrey E. F. Friedl, Mastering Regular Expressions – Powerful Techniques for Perl and Other Tools, O‘Reilly & Associates, 1996
Es gibt nur zwei Arten von Leuten, diejenigen, die Reguläre Ausdrücke verstehen und sie deshalb auch mögen, und diejenigen, die diese nicht verstehen und deshalb auch nicht mögen.
Gehört man zu Ersteren, so wird man während seiner Arbeit immer wieder auf praktische Einsatzmöglichkeiten von Regulären Ausdrücken stoßen. Sei es, weil die alten Entwickler diese verwendet haben und man folglich auch ihren Code verstehen muss, oder sei es, dass deren Einsatz in der Analyse der Systeme die Arbeit deutlich vereinfacht. Das Schöne an diesem Buch ist, dass es auch auf die Besonderheiten von verschiedenen Tools eingeht.
Abb.6: Cover ''Regular Expressions''
Strichcode-Fibel
Datalogic, Strichcode-Fibel 9C0003160
Auch wenn es viele nicht wahrhaben wollen, Barcodes werden nicht nur in der Logistik zur Identifizierung von Gütern verwendet. Man findet diese sowohl in der Stadtbücherei als auch bei Laborproben.
Dass in den Barcodes oft nicht nur eine Nummer steht, sondern zum Beispiel beim EAN 128 auch mehr Informationen (wie Mindesthaltbarkeitsdaten), ist vielen aber nicht bewusst. Dieses kleine Buch enthält neben einer kurzen Einführung in das Thema auch den technischen Hintergrund zum Umgang mit Barcodes! Hat man in der Produktion ein Problem mit diesen, hilft oft ein kleiner Blick in dieses Buch, um zum Beispiel festzustellen, dass wieder jemand versucht hat, Zeichen in eine Barcodeart zu „quetschen“, die in dieser gar nicht definiert sind.
Abb.7.1: Cover ''Strichcode-Fibel''
Abb.7.2: Cover ''Strichcode-Fibel'' Amazon
Unix Network Programming
W. Richard Stevens, Unix Network Programming – Volume 1+2, Markt+Technik Verlag, 1998/1999, Advanced Programming in the UNIX Environment, Addison-Wesley, 1992
Diese drei Bücher sind ein Muss für das Verständnis unixoider Betriebssysteme. Hier werden nicht nur Systemaufrufe und deren Parameter beschrieben, sondern auch deren Konzepte. Da Unix System V quasi auch die „Blaupause“ für andere Betriebssysteme ist (auch Windows NT machte noch Werbung damit, System V konform zu sein), ist ein Verständnis dieser Konzepte die Grundlage moderner Konzepte. Dabei ist es egal, ob es sich um die Verwaltung von Dateisystemen, Interprozesskommunikation oder sonstige Betriebssystem nahe Themen handelt – die Grundlagen werden hier beschrieben.
Da wir uns aber immer weiter von den Tiefen des Betriebssystems entfernen, helfen mir diese Bücher, mich zu „erden“ und bei Problemen noch mal nachzulesen, was denn unterhalb der Java VM wirklich passiert.
Abb.8: Cover ''UNIX Network Programming''
SQL Cookbook
Anthony Molinaro, SQL Cookbook, O‘Reilly, 2006
Wer die Cookbook-Reihe kennt, weiß, dass er hier keine Einführung in die Syntax von SQL bekommt, sondern praktische „Rezepte“ à la: Ich möchte dies so und so selektieren, dabei gruppieren und bestimmte Datensätze herausfiltern. Gerade bei er Informationsbeschaffung ist eine relationale Datenbank (sofern verwendet) eine hilfreiche Quelle. Dabei müssen ständig Abfragen „gestrickt“ werden, die dann meist nur ein- bis zweimal verwendet werden. Wenn man dann nicht der SQL-Crack ist, hat man schlechte Karten. Genau hier hilft dieses Buch Leuten, die zwar fachlich wissen, was sie wollen, dies aber nicht in SQL ausdrücken können.
Gut – diese Info findet man auch auf Hunderten von Webseiten – was aber, wenn man als Consultant in einem Bereich tätig ist, in dem es absichtlich keinen Internetzugang gibt? Geht mal hinaus in die Produktionsfirmen und findet heraus, wie viele „blinde Flecken“ es hier gibt!
Abb.9: Cover ''SQL Cookbook''
SQL kurz & gut
Jonanthan Gennick, SQL kurz & gut, O‘Reilly, 2004
Auch dieses Buch ist mein ständiger Begleiter (auch auf Inbetriebnahmen) bei Kunden, da hier alle Infos bezüglich SQL zu finden sind, die man benötigt, „um mal kurz, eine Quick-and-Dirty-Abfrage“ zu programmieren.
Abb.10: Cover ''SQL kurz und gut''
Database System Implementation
Hector Gracia-Molina, Jeffrey D. Ullman, Jennifer Widom, Database System Implementation, Prentice Hall, 1999
Dieses Buch beschäftigt sich mit den Grundlagen der Implementierung von Datenbankmanagementsystemen. Auch wenn man diese selten im Detail verstehen muss, so helfen sie doch ungemein, wenn es darum geht, Datenbanksysteme zu verstehen, die vielleicht nicht so eine starke Verbreitung haben wir Oracle oder Microsoft SQL Server.
Abb.11: Cover ''Database System Implementation''
Kennzahlen in der IT
Martin Kütz, Kennzahlen in der IT – Werkzeuge für Controlling und Management, dpunkt.verlag, 2010
Ob die Kennzahlen, die Martin Kütz in seinem Buch beschreibt, alle für dein Projekt relevant sind, sei dahingestellt. Interessant ist eigentlich, wie er jede Kennzahl definiert.
So kann dieses Buch helfen, selbst definierte Kennzahlen so zu beschreiben, dass allen Parteien bewusst ist, was diese Kennzahlen bedeuten. Deshalb auch mein Tipp: Definiere mal mit der Fachabteilung vor einer Umstellung einzelner Teile Kennzahlen (z. B. die Anzahl der Ein- und Auslagerungen einer Lagerverwaltung), um nach der Umstellung vergleichen zu können, wie gut die Umstellung war. Kommt dann heraus, was durchaus passieren kann, dass das System schlechter geworden ist, können diese gute Hinweise auf Optimierungspotenzial bieten.
Ach ja – manche User behaupten ja, dass vorher alles besser war, ohne es belegen zu können – auch hier helfen die Kennzahlen weiter!
Abb.12: Cover ''Kennzahlen in der IT''
Algorithmen in C
Robert Sedgewick, Algorithmen in C, Addison-Wesley, 1992
Egal, welches „Algorithmen in … (diverse Programmiersprachen)“ du verwendest. Kenntnisse von bestimmten Algorithmen wie Quicksort oder dem „Travelling Salesman“ (Graphentheorie) helfen, bestimmte Codeteile zu verstehen beziehungsweise auszulagern. Ähnlich wie die Designpatterns der „Gang of Four“ begegnen einem diese Algorithmen nämlich immer wieder, auch wenn sie oft auf den ersten Blick etwas versteckt im Code sind. Kennt man diese aber, so wird der Code schnell viel verständlicher!
Abb.13: Cover ''Algorithmen in C''
Taschenbuch der Mathematik
Bronstein, Semendjajew, Musiol, Mühlig, Taschenbuch der Mathematik, Verlag Harri Deutsch
Oft passiert es, dass Code nicht verständlich ist, weil auch das fachliche Verständnis nicht da ist. Bei mathematischen oder statistischen Berechnungen kann dieses Buch helfen, wenigstens diese Teile besser zu verstehen. Oder kannst du noch aus dem Stand verschiedene numerische Verfahren verwenden oder statistische Funktionen herleiten? Da dieses Buch sich eigentlich an Studenten der unterschiedlichsten Fachrichtungen wendet, sollte es die meisten dieser Probleme abdecken. Und einmal ehrlich – solltest du hier nicht die Lösung für deine mathematischen Probleme finden, so hast du nicht nur ein technisches Problem! In diesem Fall schau dich einmal in deinem Bekanntenkreis nach einem Doktor der Mathematik um, damit du dich auf „Augenhöhe“ mit der Fachabteilung unterhalten kannst.
Abb.14: Cover ''Taschenbuch der Mathematik''
Java Security
Marc Schönefeld, Java Security – Sicherheitslücken identifizieren und vermeiden, mitp-Verlag, 2011
Dieses Buch zeigt Schwachstellen und Schutzmechanismen im Java-Umfeld. Dabei gibt es auch erste Einblicke in das Decompilieren von Java-Anwendungen. Gerade diese Schwachstellen sind es aber auch, die manchmal wieder eine Tür zu vermeintlich „verschlossenen“ Systemen liefern.
Abb.15: Cover ''Java Security''
Hoppla, ich habe Ihre Firma versenkt
Karen Phelan, Hoppla, ich habe Ihre Firma versenkt!, Orell Füssli Verlag, 2013
In diesem Buch schildert eine Beraterin, was so alles im Beratungsgeschäft passieren kann. Wie du ja hoffentlich weißt, sind nicht nur Hard Skills in einem Projekt notwendig. Eine immer wieder amüsante Lektüre mit einem durchaus sehr ernsten Hintergedanken.
Abb.16: Cover ''Hoppla, ich habe Ihre Firma Versenkt''
More Fearless Change
Mary Lynn Manns, Linda Rising, More Fearless Change – Strategies for Making Your Ideas Happen, Addison-Wesley, 2015
Anhand von 63 Mustern geben die beiden Autorinnen Tipps, wie man es schafft, seine Ideen umzusetzen. Dabei beschreiben sie Vorgehens- und Verhaltensweisen, die so in jeder Organisation/in jedem Projekt auftreten. Alles in allem wird hier das Thema „Soft Skills“ anhand von kleinen anschaulichen Themengebieten behandelt, und zwar so, dass gleich Handlungsempfehlungen mitgegeben werden. Aber Vorsicht! Das Buch ist leicht zu lesen – eine erfolgreiche Umsetzung bedingt aber vor allem, zuerst an sich selbst zu arbeiten.
Abb.17: Cover ''MORE FEARLESS CHANGE''
SSH – kurz & gut
Sven Riedel, ssh – kurz & gut, O‘Reilly, 2006
Genau wie bei den anderen Büchern der „kurz & gut“-Serien handelt es sich um eine Kurzreferenz. Dass das Thema „ssh“ aber sehr mächtig ist, zeigt schon der Umfang, der mit über 230 Seiten deutlich über den Umfang anderer Bücher dieser Serie hinausgeht. Gezeigt wird nämlich nicht nur, wie ein ssh-Client bedient werden kann, sondern auch, wie Ports weitergeleitet werden können (Tunneling) oder wie Hilfsprogramme wie scp aus dem ssh-Umfeld bedient werden.
Alles in allem eine schöne Referenz, wenn man wieder einmal mit (oder trotz) einem Administrator versucht, Daten von Rechner A nach Rechner B zu kopieren.
Abb.18: Cover ''SSH kurz und gut''
Eating the IT Elephant
Richard Hopkins, Kevin Jenkins, Eating the IT Elephant – Moving from Greenfield Development to Brownfield, IBM Press, 2011
Dieses Buch gibt einen schönen methodischen Einstieg in das Thema Legacy Systeme. Dabei werden keine technischen Einzelheiten geschildert, sondern Konzepte. Da das Buch nur etwas mehr als 220 Seite hat, kann es natürlich nicht alle Aspekte beleuchten. Trotzdem zeigt es interessante Ansätze zum Betreiben und Migrieren von Legacy Systemen.
Abb.19: Cover ''Eating the IT Elephant''
Coding for Fun
Gottfried Wolmeringer, Coding for Fun – Programmieren, spielen, IT-Geschichte erleben, Galileo Computing, 2008
Sicherlich richtet sich dieses Buch erst einmal an Amateure – aber ist das ein Problem? Dies führt eher dazu, dass das Buch sehr leicht zu lesen und zu verstehen ist. Der echte Mehrwert für den „Retrofitter“ ist, dass ein schöner Überblick über die IT-Geschichte gegeben wird. Dabei lernt man nebenbei einige – aus heutiger Sicht vielleicht merkwürdige – Konstrukte kennen.
Fazit: Auch wenn es für Amateure geschrieben wurde, kann mancher Profi davon noch viel lernen, und Spaß macht es auch noch.
Abb.20: Cover ''Coding for Fun''
Software-Sanierung
Sebastian Kübeck, Software-Sanierung – Weiterentwicklung, Testen und Refactoring bestehender Software, mitp-Verlag, 2009
In diesem Buch stellt der Autor verschiedene technische Lösungen vor, wie mit alter Software umgegangen werden kann. Da die Beispiele alle in Java geschrieben sind, wird quasi indirekt von objektorientierter Software ausgegangen. Meiner Erfahrung nach sind jedoch die Probleme bei alter Software sehr vielschichtig, sodass Beispiele sowieso nie 1:1 umgesetzt werden können. Wenn man diesen Grundsatz beachtet, so gibt dieses Buch schöne Beispiele, wie Code so verbessert werden kann, dass er wieder wartbar ist.
Abb.21: Cover ''Software-Sanierung''
Pragmatische IT-Architektur
Pavlo Baron, Pragmatische IT-Architektur – Schlanke Technologien und Konzepte für dynamische Unternehmen, entwickler-press, 2009
Dieses Buch lässt sich schwer in eine Schublade stecken. Meiner Meinung nach ist es eine Sammlung über das Thema Architektur aus verschiedenen Blickwinkeln. Dabei beschreibt der Autor nicht nur Architekturansätze, sondern auch menschliche Verhaltensmuster beziehungsweise Soft Skills. Interessant sind die überall eingestreuten „Aus dem wahren Leben“-Abschnitte, die vermeintlich subjektive Erfahrungen des Autors wiedergeben. Ein IT-Architektur-Buch, das sich ganz anders liest, als man zunächst meint.
Abb.22: Cover ''Pragmatische IT-Architektur''
The IDA Pro Book
Chris Eagle, The IDA Pro Book – The Unofficial Guide to the World's Most Popular Disassembler, No Starch Press, 2008
Wenn gar nichts mehr hilft, hilft oft nur das Disassemblieren der Binaries. Hier ist die Software IDA Pro ganz vorne mit dabei, da sie neben der X86-Architektur auch viele andere Prozessoren unterstützt. Aber selbst, wenn man gar nicht so tief gehen will, erklärt dieses Buch neben der Bedienung der Software auch viele Dinge, die für die meisten User tief unter ihrem normalen Horizont liegen.
Abb.23: Cover ''The Ida Pro Book''
Das Artikelbild wurde mittels KI generiert, https://www.canva.com/