"The statistics about reading are particularly discouraging:
The average software developer doesn't own a single
book on the subject of his/her work, and hasn't ever
read one"
-- Tom DeMarco & Timothy Lister

Obwohl es mittlerweile Tausende von Büchern zum Thema Softwareengineering gibt, ist es nicht leicht, zu entscheiden, ob ein Buch es auch wert ist, gekauft und gelesen zu werden.

Nachfolgend finden Sie eine ganze Reihe von Büchern, die wir selber gelesen und für hervorragend befunden haben. Alle diese Bücher haben neben ihrer hohen Qualität noch eine weitere Gemeinsamkeit: Sie sind frei von irgendwelchen Technologien. Natürlich braucht ein professioneller Softwareentwickler auch eine Vielzahl von Büchern über C++, Java, UML, CORBA, COM, SQL, XML usw. Die nachfolgenden Bücher verfolgen jedoch einen anderen Zweck. Sie gestatten es dem Entwickler/Projektleiter/Manager einen Blick über den Tellerrand hinaus zu werfen und mehr über die große Welt der "Softwareentwicklung" zu lernen.

Spezialwissen über bestimmte Technologien ist wichtig, aber noch wichtiger ist es, ein guter Softwareentwickler zu sein. Wenn man die Grundprinzipien des Softwareengineerings beherrscht, und sich nicht nur auf Spezialwissen verlässt, wird man langfristig Erfolg haben. Technologien kommen und gehen, was bleibt ist eine solide Grundlage. Wenn diese Grundlage mit einer ständigen Bereitschaft, neue Technologien zu lernen gepaart ist, stehen alle Zeichen auf Erfolg.

Softwareengineering, Software- und Projektmanagement

S1

Rapid Development
(Steve McConnell, Microsoft Press, 1996)
Dieses leicht lesbare, teilweise unterhaltsame Buch gibt viele Beispiele wie man Softwareprojekte durchführen soll. Es enthält eine Reihe von Empfehlungen ("Best Practices"), aber auch eine Aufstellung klassischer Fehler ("Classic Mistakes"), deren Kenntnis zum Rüstzeug aller gehören sollte, die mit Softwareentwicklung in irgend einer Form zu tun haben.

   
S2
Peopleware (2nd Edition)
(Tom DeMarco, Timothy Lister, Dorset House, 1999)
Dieses Buch, das erstmals 1987 erschien, betont wie kein anderes Buch, dass es bei Software in erster Linie um Menschen geht und nicht um Technik. Zwar wollen Programmierer und Manager oft glauben, Software werde ausschließlich durch Technologie bestimmt, die Erfahrung jedoch zeigt, dass die an den Projekten mitwirkenden Personen den größten Einfluss auf den Projekterfolg haben.
   
S3
The Mythical Man-Month (Anniversary Edtion)
(Frederick P. Brooks, Addison-Wesley, 1995)
Die erste Ausgabe dieses Buches erschien 1975 und beschreibt Fred Brooks Erfahrungen als Projektmanager bei IBM mit dem OS/360 Betriebsystem. Obwohl dieses "Monsterprojekt" in den 60er Jahren entstand, ist es verblüffend, wie zeitlos die Beschreibungen des Autors sind. Pflichtlektüre für jeden Projektleiter.
   
S4
Software Project Survival Guide
(Steve McConnell, Microsoft Press, 1998)
Im wesentlichen kann dieses Buch als Praxisleitfaden für Softwareprojektleiter angesehen werden. Obwohl dieses Buch teilweise mit "Rapid Development" überlappt, ist die Lektüre dennoch zu empfehlen, da es sehr systematisch aufgebaut ist und Schritt für Schritt durch die Projektphasen führt. Zusätzlich sind viele nützliche Checklisten und Formatvorlagen für die tägliche Projektpraxis enthalten.
   
S5
Death March
(Edward Yourdon, Addison-Wesley, 1999)
Dieses Buch geht einen völlig anderen Weg. Während andere Bücher beschreiben, wie man chaotische Projekte vermeidet, vertritt der Autor dieses Buches die Meinung, dass man irgendwann immer mal mit einen "Death March Projekt", also einem Projekt, dass eigentlich dem Tod geweiht ist, konfrontiert wird. Ed Yourdon erklärt, wie solche Projekte entstehen und gibt unzählige Tipps, wie man das Beste aus seiner Situation machen und auch solche scheusslichen Projekte "überleben" kann.
   
S6

Extreme Programming Explained
(Kent Beck, Addison-Wesley, 2000)
Dieses Buch hat seit seinem Erscheinen für viel Wirbel gesorgt. Das Schöne an Beck's Methodik, "Extreme Programming", ist, dass sie den Entwicklern "Spaß" macht, im Gegensatz zu anderen "schweren" Softwareprozessen, wie z. B. CMM. "Extreme Programming" hat jedoch auch seine Grenzen (z. B. ist es völlig ungeeignet für Teams mit 200 Softwareentwicklern die eventuell auch noch über den gesamten Erdball verteilt sind), worauf der Autor jedoch mehrfach hinweist.

   
S7
The Psychology of Computer Programming (Silver Anniversary Edition)
(Gerald M. Weinberg, Dorset House, 1998)
Dieser Klassiker erschien erstmals 1971, und hat dasselbe Thema wie "Peopleware". Software wird von Menschen erstellt und deswegen haben Menschen den größten Einfluss auf die Software. Weinberg geht jedoch noch stärker auf die Psyche des Softwareentwicklers ein.

Programmierung

P1
Code Complete
(Steve McConnell, Microsoft Press, 1993)
Das Buch für den Softwareentwickler schlechthin. Es beschäftigt sich zu zwei Drittel mit Themen aus dem Bereich "Software Construction", wie z.B. Design, "Code Layout", Programmierkonventionen, "Unit Testing", "Code Tuning" und "Debugging". Es enthält eine Unmenge an praktischen Tipps und ist in einem, teilweise sehr unterhaltsamen Stil geschrieben. Es geht aber auch auf andere weiterführende und wichtige Aspekte der Softwareentwicklung ein. Dazu zählen Anforderungsanalyse, Architektur, Softwareintegration, Qualitätssicherung, Projektmanagement und -- last but not least -- den Faktor Mensch in der Softwareentwicklung (siehe auch "Peopleware").
   
P2

The Pragmatic Programmer
(Andrew Hunt and David Thomas, Addison-Wesley, 2000)
Ein -- wie der Titel verspricht -- sehr pragmatisches Buch, das den Softwareentwickler überzeugt, seinen Beruf mit anderen Augen zu sehen. Es enthält unzählige Tipps, die auch noch zusammengefasst in Form einer Referenztabelle dem Buch beiliegen. Das Buch ist in einem sehr lockeren Stil geschrieben und voll von unterhaltsamen Geschichten und Analogien.

   
P3
Programming Pearls (2nd Edition)
(Jon Bentley, Addison-Wesley, 2000)
Dieses Buch beschreibt die praxisgerechte Anwendung von Algorithmen und Datenstrukturen. Es ist kein Ersatz für ein klassisches Lehrbuch, sondern zeigt vielmehr, wie man auf elegante Art und Weise Probleme lösen kann, die in der Softwareentwickler-Praxis immer wieder auftreten. Ein Bestseller seit 1985.
   
P4
The Practice of Programming
(Brian W. Kernighan, Rob Pike, Addison-Wesley, 1999)
Teilweise sehr ähnlich -- wenn auch deutlich kompakter -- als "Code Complete", der Fokus lieht jedoch bei der Programmierung (Stil, Layout, "Debugging", Testen, "Code Tuning" etc.). Eine Behandlung weiterführender Aspekte, wie z. B. bei "Code Complete", ist nicht enthalten.

Diese Bücher sind so wertvoll, dass wir empfehlen, sie möglichst alle zu lesen und am besten gleich mehrmals. Falls Sie jedoch nicht so viel Zeit und Geld investieren möchten, empfehlen wir P1 und S2, falls Sie -- zumindest hin und wieder -- mit Quelltexten konfrontiert werden (z. B. Programmierer, Team-/Gruppenleiter). Wenn sie nicht mehr direkt mit Quelltexten arbeiten und eher leitende Funktionen übernehmen (z. B. Projektleiter, Abteilungsleiter), sollten Sie sich zumindest S1 und S2 ansehen.

Top
Back