Re: Reading List?
Pete,
A good question and nice to hear! In hiring and managing architects, one of my biggest frustrations is often their refusal to learn from what we've done in the past. When presented with any problem, one's first instinct should be to ask "who has solved this before?" rather than rushing forward with the first idea that pops into your head. Consequently, architects need to read a lot. And how any architect or designer can manage today without a subscription to both the ACM and IEEE digital libraries is beyond me!
Anyway, your question is perhaps too broad for a completely comprehensive response. It's already taken me quite a long time to create this list. That said, in addition to the references already posted, I would suggest looking at the following.
Systems Science, Problem Solving and the Design Process
Systemantics, John Gall
The Systems Bible, John Gall
The book "Systemantics", now updated and renamed "The Systems Bible" by John Gall is a lightweight and amusing look at the problems of systems design.
http://www.amazon.co.uk/dp/0812906748
http://www.amazon.co.uk/dp/0961825170
Software Fundamentals: Collected Papers by David L. Parnas, Daniel Hoffman and David Weiss
A delightful compendium of most of the classic works by Parnas.
http://www.amazon.co.uk/dp/0201703696
Architecture of Systems Problem Solving, George Klir
A classic, wide ranging and mathematically rigorous look at systems analysis and design.
http://www.amazon.co.uk/dp/0306418673
http://www.amazon.co.uk/dp/0306473577 (updated)
Patterns of Problem Solving, Moshe Rubinstein and Iris Firstenberg
Another excellent, mathematical look at the modelling, analysis and design of systems.
http://www.amazon.co.uk/dp/0131227068
What Engineers Know and How They Know It, Walter Vincenti
A readable discussion of how the design process works using examples from aeronautics.
http://www.amazon.co.uk/dp/0801845882
How Designers Think: The Design Process Demystified, Bryan Lawson
A wonderful broad discussion on the nature of design, with examples from the physical world.
http://www.amazon.co.uk/dp/0750630736
http://www.amazon.co.uk/dp/0750660775 (new edition)
Wicked Problems; Righteous Solutions, Peter DeGrace and Leslie Hulet Stahl
A wonderful explanation of why in many cases you won't know how to solve a problem until it has been solved.
http://www.amazon.co.uk/dp/013590126X
Problem Frames, Michael Jackson
How to identify, analyse and scope the problem before avoid rushing into solution design.
http://www.amazon.co.uk/dp/020159627X
The Sciences of the Artificial, Herbert Simon
A classic and readable introduction to the organisation and design of complex systems.
http://www.amazon.co.uk/dp/0262691914
Notes on the Synthesis of Form, Christopher Alexander
A classic look at complex system design, from the man who brought us the "patterns" movement. Stick to the qualitative aspects and ignore the weaker mathematical treatment at the end.
http://www.amazon.co.uk/dp/0674627512
Enterprise Architecture
Enterprise Architecture at Work, Mark Lankhorst et al.
A good overview of the current state of the discpline of enterprise architecture, at least from the more technical perspective.
http://www.amazon.co.uk/dp/3540243712
Enterprise Architecture as Strategy, Jean Ross, Peter Weill and David C. Robertson
Excellent "how to" book but still perhaps a little technology-centric for my taste. Their book on "IT Governance" is excellent also and probably even more useful.
http://www.amazon.co.uk/dp/1591398398
Invisible Architecture, Jenny Ure and Gudrun Jaegersberg
This short book looks at the issues of aligning social, cultural and technical systems - true enterprise architecture in other words.
http://www.amazon.co.uk/dp/190250559X
Organisation Design
There are a vast number of excellent books on organisation design, including those by Galbraith ("Designing Complex Organizations"), Nadler ("Organizational Architecture"), Mintzberg ("Structure in Fives"), Morabito, Handy and so on. Rather than give you a full list, here is just a selection.
Guide to Organisation Design, Naomi Stanford
A new and comprehensive review of the field of organisation design, marred only by its missing of a few important perspectives.
http://www.amazon.co.uk/dp/1861978022
The Modern Firm, John Roberts
A classic and perhaps one of the best books on organisation design and true enterprise architecture today. Describes the economic perspective on system design.
http://www.amazon.co.uk/dp/0198293763
The Nature of the Firm: Origins, Evolution and Development, Oliver Williamson and Sidney Winter (eds.)
This is a collection of classic papers by Ronald Coase and others. It includes the classic "The Nature of the Firm" from 1937 which asked "why do firms exist?" and presents the ideas of transaction cost economics for the first time.
http://www.amazon.co.uk/dp/0195083563
The Boundaryless Organization, Ron Ashkenas, Dave Ulrich et al.
A good overview of current trends and issues in organisation design. For example, where exactly are the edges of your "enterprise"?
http://www.amazon.co.uk/dp/078795943X
Soft Systems Methodology
The failure of "hard" systems science, as exemplified by Operations Research (OR) for example, to properly address the kinds of loosely-defined problems we have in the real world led Peter Checkland to develop his "Soft" Systems Methodology (SSM). Although there is some overlap between them, all of the books by Checkland are seminal works in the field.
Systems Thinking, Systems Practice, Peter Checkland
http://www.amazon.co.uk/dp/0471279110
http://www.amazon.co.uk/dp/0471986062 (updated with 30-year retrospective)
Soft Systems Methodology in Action, Peter Checkland
http://www.amazon.co.uk/dp/0471927686
http://www.amazon.co.uk/dp/0471986054 (updated)
Information, Systems and Information Systems, Peter Checkland and Sue Holwell
http://www.amazon.co.uk/dp/0471958204
Practical Soft Systems Analysis, David Patching
A pragmatic guide to the application of SSM to real world problems. Less theoritical than Checkland but perhaps more useful in practice.
http://www.amazon.co.uk/dp/0273032372
Failure in Systems Design
Engineers have long known of the benefits of studying failure. Computer technologists should take note. Here is a collection of useful readers.
To Engineer is Human: The Role of Failure in Successful Design, Henry Petroski
http://www.amazon.co.uk/dp/0679734163
The Logic of Failure, Dietrich Doerner
http://www.amazon.co.uk/dp/0201479486
Understanding Systems Failures, Victor Bignell and Joyce Fortune
http://www.amazon.co.uk/dp/0719009731
Human Error, James Reason
http://www.amazon.co.uk/dp/0521314194
Normal Accidents, Charles Perrow
http://www.amazon.co.uk/dp/0691004129
Software Runaways, Robert Glass
http://www.amazon.co.uk/dp/013673443X
Troubled IT Projects: Prevention and Turnaround, John Smith
http://www.amazon.co.uk/dp/0852961049
Software Failure: Management Failure, Stephen Flowers
http://www.amazon.co.uk/dp/0471951137
General Systems Theory (GST)
The literature on GST and branches such as hierarchy theory is broad, particularly since its popularisation by people like Peter Senge (in "The Fifth Discpline") and Barry Oshry (in "Leading Systems" and "Seeing Systems"), but the following pointers should get you started.
The Art of Systems Thinking, Joseph O'Connor and Ian McDermott
A bit lightweight, but short and a good introduction.
http://www.amazon.co.uk/dp/0722534426
General Systems Theory, Ludwig von Bertalanffy
This is generally considered a classic work in the field, but I find it a bit too focused on biological systems and it can be quite heavy reading. If you can find copies, the various early papers by Kenneth Boulding and/or Geoffrey Vickers are probably a more worthwhile read.
http://www.amazon.co.uk/dp/0807604534
An Introduction to General Systems Thinking, Gerald Weinberg
General Principles of Systems Design, Gerald and Daniela Weinberg
As you would expect from Gerald Weinberg, these two books comprise a well-written introduction to systems design. Maybe they are a bit abstract for first timers, however.
http://www.amazon.co.uk/dp/0932633498
http://www.amazon.co.uk/dp/0932633072
Rethinking the Fifth Discipline, Robert Louis Flood
This short book reframes Senge's work within its proper academic context. Excellent if you are already familiar with the more popular management texts in this area.
http://www.amazon.co.uk/dp/0415185300
Databases and Transaction Processing
Besides anything by Chris Date (especially his "Relational Database: Writings" series) and Jeffrey Ullman, do not overlook the following.
Transaction Processing: Concepts and Techniques, Jim Gray and Andreas Reuter
This massive book is the "bible" for transaction processing systems.
http://www.amazon.co.uk/dp/1558601902
Database Transaction Models for Advanced Applications, Ahmed Elmagarmid (ed.)
A good collection of research papers on extended transaction models. I believe that the time has come for many of these ideas to enter the mainstream and be further developed and expanded.
http://www.amazon.co.uk/dp/1558602143
Performance Modelling and Capacity Planning
Having always been involved in the design of large-scale systems and those with demanding performance requirements, I'm particularly keen on proper performance modelling (i.e. use of queueing theory) and capacity planning. The books listed here are all classics in this field, although the works by Daniel Menasce and Virgilio Almeida are basically an update and reissue of the same material in line with new technological developments.
The Art of Computer Systems Performance Analysis, Raj Jain
http://www.amazon.co.uk/dp/0471503363
Performance Analysis of Transaction Processing Systems, Wilbur Highleyman
http://www.amazon.co.uk/dp/0136570089
Capacity Planning and Performance Modeling, Daniel Menasce, Virgilio Almeida and Larry Dowdy
http://www.amazon.co.uk/dp/0137895461
Capacity Planning for Web Performance, Daniel Menasce, Virgilio Almeida
http://www.amazon.co.uk/dp/0136938221
Scaling for E-Business, Daniel Menasce, Virgilio Almeida
http://www.amazon.co.uk/dp/0130863289
Software Architecture and Design
There are many good books on software architecture and design, so I'll restrict myself to listing just a few that others might have missed.
Reliable Software through Composite Design, Glenford Myers
Composite/Structured Design, Glenford Myers
Although the details of the programming in these books is rather dated, the basic principles of software design, as developed by Larry Constantine and Glenford Myers and including the concepts of "coupling" and "cohesion", are timeless and applicable to systems of all types. Witness all the talk of "loose coupling" in the context of SOA. Note that "Composite/Structured Design" is pretty much just an updated version of the earlier book. See also the related books by Yourdon/Constantine and Page-Jones.
http://www.amazon.co.uk/dp/0442256205
http://www.amazon.co.uk/dp/0442805845
Software Architect Bootcamp, Raphael Malveau and Thomas Mowbray
A good guide for individuals making the transition from software developer to architect.
http://www.amazon.co.uk/dp/0130274070
http://www.amazon.co.uk/dp/0131412272 (new version)
The Software Architect's Profession, Marc Sewell and Laura Sewell
A nice summary of the purpose of architecture and the role of the software architect.
http://www.amazon.co.uk/dp/0130607967
Distributed Computer Systems
Whilst there are many good texts on the design of distributed systems (Tanenbaum/Steen, Coulouris, Mullender, etc) and distributed databases (Ozsu/Valduriez, Bell/Grimson), you may have missed the following.
Reliable Computer Systems: Design and Evaluation, Daniel Siewiorek and Robert Swarz
A comprehensive look at the theory of fault tolerance and reliable systems design.
http://www.amazon.co.uk/dp/1555580750
http://www.amazon.co.uk/dp/156881092X (updated)
Software Development
Of course you've read everything by Fred Brooks, Tom DeMarco, Ed Yourdon, Tom Gilb and Barry Boehm, right? So where next? Well, how about the following?
The Laws of Software Process, Philip Armour
This is, I belive a classic, considering software as a means of embodying knowledge rather than a product. Software development is therefore a process of learning and should be managed as such.
http://www.amazon.co.uk/dp/0849314895
The Politics of Projects, Robert Block
A short but incredibly useful book on how to deal with power and politics in systems development projects.
http://www.amazon.co.uk/dp/0136855539
Quality Software Management, Volume 1: Systems Thinking, Gerald Weinberg
Quality Software Management, Volume 2: First-Order Measurement, Gerald Weinberg
Quality Software Management, Volume 3: Congruent Action, Gerald Weinberg
Quality Software Management, Volume 4: Anticipating Change, Gerald Weinberg
A wonderful and classic series on software engineering management. There's not much more you need to know on this topic.
http://www.amazon.co.uk/dp/0932633226
http://www.amazon.co.uk/dp/0932633242
http://www.amazon.co.uk/dp/0932633285
http://www.amazon.co.uk/dp/0932633323
The Psychology of Computer Programming, Gerald Weinberg
Another classic from Weinberg.
http://www.amazon.co.uk/dp/0442292643
Business, Information and Requirements Analysis
Another vast topic for books, so let's just look at a small number of useful examples.
Business Analysis, Debra Paul and Donald Yates (eds.)
The area of business analysis is much derided, and everybody seems to think they can call themselves a "business analyst". I see this new book as one of the first steps towards the professionalisation of this important discipline.
http://www.amazon.co.uk/dp/1902505700
Data and Reality, William Kent
We've discussed this classic on the problems of modelling information before.
http://www.amazon.co.uk/dp/0444851879
http://www.amazon.co.uk/dp/1585009709 (new edition)
Practical Software Requirements, Benjamin Kovitz
Amongst many good books on requirements analysis (Alexander, Robertson, Weinberg), this one stands out as being particularly excellent.
http://www.amazon.co.uk/dp/1884777597
Information Systems Planning
The domain of "IS Planning" is terribly unfashionable these days (I think people have to some extent "given up"), but nevertheless I believe it remains important. Somebody still needs to decide what systems need to be built and how they should be paid for. The following references will give you a good background to the current state of the art, but in reality this whole field probably needs an injection of some new ideas.
Information Strategy and Economics, Marilyn Parker, Edgar Trainer and Robert Benson
http://www.amazon.co.uk/dp/0134637380
http://www.amazon.co.uk/dp/0134645952 (old version)
The Effective Measurement and Management of IT Costs and Benefits, Dan Remenyi, Arthur Money, Michael Sherwood-Smith and Zahir Irani
http://www.amazon.co.uk/dp/0750644206
Finance for IT Decision Makers, Michael Blackstaff
A good introduction to the basics.
http://www.amazon.co.uk/dp/1902505735
Anyway, that's probably enough for now. But we haven't even got started on the more general books you'll need about critical thinking and argument, psychology, law, finance, business or management, not forgetting the "performance art" side of being an architect, that is speaking, presenting and influencing, etc. Drop me a line when you've finished with this lot and I'll create part 2 of the list for you 
Reference copies of all of the books listed are, of course available for inspection in exchange for a beer and by prior appointment at my office in Bracknell, England!
Regards,
-Mike Glendinning, architect who occasionally reads books.
--- In service-orientated-architecture-hHKSG33TihhbjbujkaE4pw@public.gmane.org, Peter Lacey <placey <at> ...> wrote:
>
> In the "Who's Killing SOA" and "SOA co-opted" threads a number of you
> put forth references for the arguments you were presenting. Rather than
> trying to cull these from the exchange and missing a few that may not
> have been mentioned would participants mind creating a reading list with
> the seminal works in distributed systems, enterprise architecture, IT
> management, etc?
>
> -- Pete
>
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe
__,_._,___
RSS Feed