Author Archives: Andrew

Review: Inside the Third Reich

By Albert Speer

A fascinating insight into Nazi Germany

This book is a fascinating insight into Nazi Germany and its key personalities, written by one of them. It contains the first explanation I have ever read of why intelligent and conciable individuals became caught up in Nazism, and is valuable for that reason alone.

Read the full review

Categories: Reviews. Content Types: Biography & Endeavour, Book, and History.
Posted in Reviews | Leave a comment

Review: Software Architecture Bootcamp

By Rapheal Malveau and Thomas J Mowbray PhD

A Game of Two Halves

Like the famous description of soccer, this book is very much a "game of two halves". Half the book, maybe more, discusses the role of a software architect – the architect’s approach, attitude, responsibilities, processes and techniques. This is excellent: clear and concise, encouraging if you are a newcomer but still stimulating if you are a more seasoned architect. It is without doubt one of the best descriptions I have read.

Unfortunately, the other half of the book is less useful. The technical parts are either too simplistic, or too detailed when discussing a particular solution favoured by the authors. The text frequently tends to become a repetitive and thinly-disguised commercial for CORBA, and there is an obsession with standards such as RM-ODP which are simply not relevant to a great many commercial developers. The few examples are very simplistic, with no real discussion of many of the technical issues which a real architecture must address.

The book would have been much better for more care in its editing and presentation. The quality of proof-reading is in general poor, but becomes quite appalling in some of the technical sections – evidence perhaps that the authors allowed their technical stance to dictate a poor choice of word processor. The choice of diagrams seems random: some are good, but some difficult discussions cry out for a diagram (horizontal and vertical partitioning, for example), while in other places a diagram confuses where the text is clear. The reference list is incomplete, omitting even the authors’ "primary" reference which is quoted, frequently, in the text. All this is doubly disappointing when you consider that one of the authors is the series editor, and both were co-authors of the excellent "AntiPatterns" book.

My advice: if you are happy with the technological side of software architecture, and want advice on how to be a better architect, then buy this book, but read chapters 5 through 9 before you even attempt to read the first part. If, however, you are seeking technical guidance in the real world of software from Microsoft, Oracle and a host of legacy systems, then look elsewhere.

Categories: Reviews. Content Types: Book and Software Architecture.
Posted in Reviews | Leave a comment

Review: IT Architectures and Middleware

Strategies for Building Large, Integrated Systems, By Chris Britton

An influential book abut the real problems of big systems

This is one of those influential books which may make you start to think about problems in a different way. 

A lot of books about architecture concentrate on simple examples and small-scale problems, and you get the feeling that’s all the authors know about. Many books which do address large systems assume that you are building on a greenfield site, or can somehow ignore the legacies if you are adopting more modern tools for your new systems.

By contrast this is a book about the reality of mixed legacy and new technology environments, written by someone who clearly has real experience of large server farms, big databases, high transaction rates and, perhaps most importantly, important legacy systems with hundreds of thousands of lines of code written in COBOL . 

The book starts by discussing typical problems – things like adding new e-Business presentation layers to existing transactional legacy systems, and briefly summarises how a combination of good architectural practices and appropriate technologies can  address them.

The following chapters present a brief history of large system architectures, including transaction monitors, message queuing and client-server approaches before moving on to object middleware with a discussion on CORBA, Enterprise Java and COM and its relatives. This is followed by a more detailed discussion of how different parts of systems can communicate, and how middleware can be classified. A great strength of the book throughout is that Tony is not obviously partial in the Java vs. Microsoft debate, and instead concentrates on their similarities and on strategies which should be able to work in both cases.

The core of the book starts with a discussion on the different types of "transaction" between a system and its clients (users and other systems), and how these relate to business processes. The following chapters then look at three key issues within this context: resilience; performance and scalability; and security and systems management. In each case there is a clear statement of the problems and objectives, followed by an assessment of the relative merits of various possible architectural solutions.

The final part of the book presents a process which should lead to system architectures better able to meet their non-functional requirements. Tony believes the core of the process is development of a good business process model, which then leads quite directly to an understanding of the system’s components and their interactions. There’s some very good advice on practical implementation approaches, and why process modelling gives better results than
traditional functional analysis.

The final chapters also address key issues such as how to ensure data integrity and accessibility, and how to manage change through integration and designing for flexibility, before revisiting the process issues and summarising how the architecture should develop.

Published in 2000, this pre-dates Microsoft’s .NET initiative, the emergence of vendor-neutral messaging standards and the real advent of web services. Each of these will have a major impact on the sort of systems and issues discussed in this book, and you may therefore also  need to read some material more focused on these technologies and others, but that shouldn’t detract from this book’s value.

Overall this is an excellent book, and I strongly recommend it to anyone trying to understand the nature of large, integrated systems and their architecture.

Categories: Reviews. Content Types: Book and Software Architecture.
Posted in Reviews | Leave a comment

Review: A Pattern Approach to Interaction Design

By Jan Borchers

A disappointing book but with some good ideas

This is a deeply disappointing book, typical of a field in which approbation by academic peers seems to be much more important than delivering real help to those designing real user interfaces.

I had hoped for a book dominated by a collection of patterns describing how users interact with technology, particularly computers. Instead the first 3/8 of the book is given over to an almost blow by blow account of each contribution to the development of patterns, their application to IT and finally to HCI. There is actually one important message, that patterns can aid communication not only between IT professionals, but also between professionals and users, as a way of describing both the problem domain and the proposed solution. However, this was almost buried in a detailed discussion of pattern format, which is much less
important.

I very nearly gave up reading at this point, which would have been a pity, since the central chapter of the book contains some interesting patterns, albeit of limited practical use. The "How to Play the Blues" pattern language is an entertaining demonstration of how to use patterns to describe a problem
domain, while the patterns for interactive exhibits are a good set of HCI patterns, although focusing on the interaction of regular users with business computer software would be of more general practical use. I also really liked the pattern layout, relying on typography and styles rather than headings to standardise the structure, which definitely enhanced readability.

Unfortunately the book does not sustain the interest, and after a single chapter on patterns returns to a strange and lengthy self-review, to the extent of reprinting the review comments the author received on a draft version. This is ridiculous.

The book’s malaise seems to be symptomatic of the whole discipline. The referenced web sites and books are not much better, with all but a few noble exceptions concentrating on academic discussions about patterns, rather than building a real pattern collection.

I am convinced that patterns can be really useful in the area of human-computer interaction and user interface design, just as they have been in many other areas of IT. I also think the arguments about style and format will be won by the author of the first good book that concentrates on building a comprehensive and readable set of useful real-world HCI patterns. This isn’t it.

Categories: Reviews. Content Types: Book and HCI Design.
Posted in Reviews | Leave a comment

Review: Expressive Systems

A Manifesto for Radical Business Software, By Richard Pawson

An excellent and very important book

This is an excellent and very important book. In the mid-1990s we were really starting to understand what made computer systems usable, how human interactions with their computer systems could be tuned to make a more rewarding experience. The user would reach the goal of their computer use and be helped to solve any problems on the way, without any of the common frustrations and mistakes.

Then the Internet happened, and suddenly we were put back 10 years. Everyone wanted "web based" systems, which had a some advantages, but one big disadvantage, Although such systems were superficially modern, with pretty colours and pictures, their models for the human-computer interface were mainly out of the dark ages of mainframe computing.

Richard’s book puts us back on track. He reminds us that we should be building software for people to use, and that if we get that wrong, most other considerations are secondary. He also has a clear vision of how systems should work, exposing the underlying object model to the users, so that they can directly manipulate a representation of their problem or task.

He starts by exploring the shortcomings of existing systems, and asking how a better interface would improve matters. He then develops a clear understanding of the characteristics of his "expressive" systems, as well as explaining why these are very different from capabilities like end user programming. Unusually, this is explained as a "business case" which business managers as well as IT specialists can understand. By doing so, we understand why this should be important to senior stakeholders, and not just something to keep the users and "techies" happy.

The next section of the book explains basic concepts of object-based and component-based systems, and explores why these are the basis for systems which put the user in control, in a problem-solving role.

Finally, the book discusses a range of design principles for expressive systems. Some of these are quite radical, such as "Don’t start by asking your customers what they want". A recurring theme is that IT may have to move beyond the limits of traditional requirements, which limit systems to very narrow definitions of both the problems and the system’s relationships to the business and the users.

This is a very readable book, designed to be read through in just a few sessions. Even this may leave you inspired, but the book is rich in both ideas and examples, and hopefully you’ll go back again to get more and more value from it.

Don’t expect a tutorial on the details of interface design. For this, read Alan Cooper’s "About Face" or one of Bruce Tognazzini’s books. Instead, use this book as a source of both inspiration and justification when you want to do more than traditional analysis and current fashions allow.

The book is beautifully presented, with most topics handled in a single two-page spread which makes it very easy to dip into. It’s richly illustrated, although some of the material originally from CSC’s "Foundation" research programme is not so strong. I’m proud to be a contributor in my own right, my ConQuest system making an appearance on page 63.

If you can get hold of it, the original paperback version is spectacular value for money. I haven’t seen the new hardback edition yet, but I expect it to be equally good.

I heartily recommend this book.

Categories: Agile & Architecture and Reviews.
Posted in Agile & Architecture, Reviews | Leave a comment

Strategies for Flexibility

Organisations need to protect and maximise the value of their IT assets. To protect against threats from business and technological change systems need to be flexible: able to change to support new functions, new workloads and new working environments. Flexibility does not happen by accident – it is usually the result of planning, forward thinking and adopting strategies known to enhance and encourage it.

This paper (in Adobe Acrobat Format), originally published by the CBDi Forum, presents some of those strategies.

See https://www.andrewj.com/publications/Strategies%20for%20Flexibility%201d1.pdf
Posted in Agile & Architecture, My Publications, Thoughts on the World | Tagged | Leave a comment

The Full Blog

Leave a comment

The Professional Blog

Leave a comment

The Photo Blog

Leave a comment

The Review Pages

Leave a comment