Friday, April 24, 2009

Selected Bibliography

Here is a short selection of my favorite books about IT and Enterprise Architecture. I will try to update and develop this selected bibliography in the future, and I am always on the lookout for additions. A more detailed list may be found in the bibliography section of my last book, but this is a "selection from the heart".

The first list I have assembled for my course at the Ecole Polytechnique. These books are both inspiring and reasonably easy to read J

  • R.J. Wieringa, "Design Methods for Reactive Systems: Yourdon, Statemate, and the UML», Morgan Kauffman (2002)
    A really great book about design methods, with both a lot of structure (theory) and practical insights from the domain of reactive systems. Very relevant for complex fields such as telecommunications.
  • P. Roques, "UML 2 en action : De l'analyse des besoins à la conception », Eyrolle (2007)
    This is not a reference book (there are better books to learn about UML) but this is the best book I know to understand how to generate value from the practical application of UML.

  • P. W. Keen, « Shaping the Future: Business Design Through Information Technology », Harvard Business School Press (1991)
    A key reference (heavily quoted) that is still the most comprehensive book on the topic of IT economics. Much better than newer books, especially nice for rebuking naïve statements about SOA, Web Services … or other "silver bullets". The best counterargument against "IT does not matter", from N. Carr, that I have read.
  • L. H. Putnam, "Five Core Metrics: The Intelligence Behind Successful Software Management», Dorset House Publishing (2003)
    The smartest book I have found about software metrics. All the mistakes I have made previously are neatly identified. Not only the difficult, multi-dimensional aspect of software measurement is well accounted for, but the book provides with practical and efficient methods.
  • J. Printz, "Coûts et durée des projets informatiques pratique des modèles d'estimation », Lavoisier(2002)
    A very nice introduction to Cocomo and other methods.
  • I. Jacobson, "The unified software development process », Addison Wesley (1980)
    A classical reference that still makes a very good reading. Extremely useful to understand the current state of "software development best practices"
  • P. Grosjean & al., "Performance des architectures IT », Dunod (2007)
    Amazing book: very practical yet rigorous, covers a large scope of issues and provides with very relevant solutions to real world problems.
  • X. Fournier-Morel & al, "SOA, le guide de l'architecte du SI », Dunod (2008)
    The best book I have ever read about Service Oriented Architectures. Obviously, covers the technical more than the governance side of SOA but is still the best book that I know of to understand what SOA is really about.
  • D.Gross, « Fundamentals of queueing theory », Wiley (1998)
    One cannot talk about IT performance without a minimal background on Queueing Theory. This is one of the good introduction books (there are many others).

  • F.A. Cummins, « Enterprise Integration: An Architecture for Enterprise Application and Systems Integration », Wiley (2002)
    My favorite book about IT integration. A practical book that hits all the key topics and does not shy away from the hard problem. Only 10% of the books that talk about EAI, SOA or integration infrastructure are actually relevant to "real world usage", most of them are just re-hash of marketing slides (all the glory, no guts J). This is one of the precious few.
  • M. Tamer Ozsu, P. Valduriez, "Principles of Distributed Database Systems », Prentice Hall (1999)
    My reference book on database systems. Although it is quite complete and covers most of the issues relevant to distributed systems, it is still an easy read.
  • E. Marcus, H. Stern, "Blueprints for High Availability», Wiley (2003)
    Wonderful book about high availability. All you need to know, tons of practical advice and many examples. A must-read for anyone in IT operations.
  • K. Schmidt, "High Availability and Disaster Recovery: Concepts, Design, Implementation », Springer (2006)
    More refined and detailed than the previous one, a great reference book on robustness and redundancy.
  • R. C. Seacord, "Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices", Addison-Wesley (2003)
    The only book that I know of that talks about "re-engineering of legacy systems" (what we call "refonte" in France) in a way that is consistent with my own experience of a CIO at Bouygues Telecom. All the hard issues are covered and the book is full of sound practical advice.


The next list is a reference list. These books are heavier, and are not meant to be read "in one shot". On the other hand, they contain "treasures of knowledge".

  • C. Jones, "Applied Software Measurement: Assuring Productivity and Quality », Mc Graw Hill (1996)
    My "bible" during the last 10 years : all the hard numbers necessary to model software development costs and quality insurance. This is "the survival kit" for anyone who wants to introduce function points measurement.
  • J. Printz, "Architecture logicielle concevoir des applications adaptables » Dunod (2006)
    This is a reference book on software architecture. It is very thorough, explaining all the hows with the whys. Very valuable to get a deep understanding on SE principles.
    • Meinadier, "Ingénierie et intégration des systèmes», Hermes (1998)
      Still one of the best reference books about system engineering.
  • B. W. Boehm, "Software Cost Estimation with Cocomo II ». Prentice Hall (2000)
    No one can afford to miss Cocomo II, since it is the scientific reference for almost all intuitions that one may develop after spending years of developing SW projects.
  • W. Perry, "Effective Methods for Software Testing », Wiley & Sons (1995)
    560 pages that tell 90% of what one should know about software testing. I was fortunate to spend many years with people who had spent their live researching this topic at Bellcore, and find this book to be surprisingly complete and accurate.
  • D. A. Menasce, "Performance by Design: Computer Capacity Planning By Example", Prentice Hall (2004)
    The best book that I have read about Performance modeling and capacity planning.

The last list contain fun books to read (at least from my perspective) which actually tell a lot about IT

  • M. Crichton, "Jurassic Park", Ballantine Books (1991)
    This is still the best way I know to get acquainted with chaos theory and why it is relevant to understand IT failures J
  • C. Perrow, "Normal Accidents: Living with High Risk Technologies", Princeton University Press (1999).
    A must read about industrial accidents (such as TMI: Three Miles Island) – The analysis and the proposed patterns are brilliant.
  • K. Kelly, "Out of Control: the New Biology of Machines, Social Systems and the Economic World", Perseud Books Group (1995)
    My favorite book of all time, see earlier in this blog J
  • C. Hibbs, S. Jewett, M. Sullivan, "The Art of Lean Software Development", O Reilly (2008)
    A wonderful very short books that contains one of the best introduction to lean I have ever read, and a wealth of advice about software development. Very concise but incredibly relevant.
  • F. Brooks, "The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition », Addison-Weslay Professional (1995)
    Still relevant after so many years !
  • T. DeMarco, "Peopleware: Productive Projects and Teams (Second Edition) » Dorcet House (1999).
    A treasure trove ! a non-nonsense inquiry into what it takes to be productive when writing software. The most incredible part is that the main contribution (such as the negative influence of disruption) are still unique to this day (to my knowledge)



Let me know about your own favorite IT books.

Technorati Profile