Category Archives: Reviews

Review: Realizing e-Business with Components

By Paul Allen

A very good, practical book

This is a very good, practical book. I found it very readable, with just an appropriate level of textual detail in most cases. It’s the first book I read which tries to tackle the problem of modelling and understanding Enterprise-level system interactions (this predated Tony Britton’s excellent book). If anything, Paul sells it a bit short by tying it to "e-Business", since a lot of the ideas and disciplines can apply to less forward-looking Enterprises who are trying to solve traditional integration problems but who may not identify with the e-Business tag.

The early part of the book discusses the principles of component-based development (CBD), and how this can be combined with process modeling to both help improve the business, and to provide a clear model for the systems needed to support it. Importantly, Paul sees the development of both business processes and systems as something which must happen progressively, so neither has to be the subject of "big bang" changes.

The next section of the book discusses the different types of components, and their role in a typical architecture comprised of both new and legacy systems. Paul then introduces his "CBD Process Framework", a way of defining components and then "provisioning" then by the most appropriate combination of new development, purchasing and re-using existing assets.

The core of the book takes a typical business process (car rental) and develops a worked example of the various business, logical and physical models which are required to define the component architecture. The models are each taken through several stages, corresponding to an evolving e-Business process and a system which is growing incrementally. This is much more realistic than presenting the final model "as is", and allows much better understanding of how the model develops. In many ways this is the part of the book which delivers the greatest real value.

The final part of the book discusses different provisioning and funding strategies for CBD, and how an e-Business team should be structured.  There’s a lot of good stuff here, which may be very useful to someone new to object- and component-based development. However if I’m honest I found this less useful, since there are better specialist books on this subject and it doesn’t hold the interest as well as some of the earlier sections.

As an Appendix, Paul presents descriptions of all the major component technologies, and all the major UML-based modelling techniques. This could be a valuable reference for anyone.

I have one slight reservation on the book’s core – Paul follows a convention in which an "interface" is a collection of types, and says that "by convention" the interface includes access to all the types. This is a bit different to the Microsoft model, for example, and may make it more difficult to establish good navigation around the object model, or to support "stateless" models. However, this is something to be aware of rather than something which should detract from what is otherwise a very useful tutorial.

I like this book. The worked examples of developing the e-Business model are excellent, so much so that I now recommend this book to anyone trying to model such things using UML. 

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

Review: The Universe in a Nutshell

By Stephen Hawking

An enjoyable but challenging book

This is the long-awaited follow-up to "A Brief History of Time". It’s quite amazing how some of the ideas around the Physics of the very large and very small have developed in recent years, and Stephen Hawking is determined to communicate them to us.

Read the full review

Categories: Reviews. Content Types: Book and Physics & Cosmology.
Posted in Reviews | Leave a comment

Review: Why Men Don’t Listen & Women Can’t Read Maps

By Allan and Barbara Pease

A humourous but serious book which explains a lot

This is a humourous but serious book which explains a lot. If you’ve ever been puzzled by why a partner, friend or relation of the opposite sex just doesn’t seem to "get it", this is the book for you.

The authors, themselves a husband and wife team, explain how most behavioral differences between the sexes can be explained by biological differences between men and women’s brains. In turn, these derive directly from millions of years of evolution to best fit traditional roles: "lunch chaser" and "nest defender". Political correctness is powerless to overturn things which are wired into our brains.

Read the full review

Categories: Reviews. Content Types: Book and Psychology & Behaviour.
Posted in Reviews | Leave a comment

Review: The Hut Six Story

Breaking the Enigma Codes, By Gordon Welchman

An excellent, insightful and inspiring book

The men and women of Bletchley Park, who repeatedly broke German military cyphers throughout the Second World War, made an incalculable contribution to the allied success. This book, written by one of the code-breakers provides a fascinating insight into the process.

Despite the core subject, this is not really a book about cryptography, but about how to manage people and technology to solve complex, important problems. Welchman was the "glue" between the pure ideas men like Alan Turing, and the code-breaking production line.
His talents were clearly in building the organisation, and liaising between the different parties so that interception, decoding, understanding and using the intelligence became a repeatable success.

Read the full review

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

Review: Core J2EE Patterns

Best Practices and Design Strategies, By Deepak Alur, John Crupi & Dan Malks

A good book, but with a shorter book trying to get out

This is a good book, but with a shorter book trying to get out.

I’ll be honest, I was really was looking for a book called something like "Enterprise Java for an Architect who knows a lot about Microsoft DNA but not much about Java". This is the closest I’ve found. It is a very good presentation of how the different elements of the J2EE stack are meant to
fit together, common problems and patterns which address them.

There are some very good things about this book. It really tries to explain the design forces which lead to good and bad solutions, and does try to put all the different patterns into the context of a "roadmap" so you can see how they link together. One of the best ideas in the book is actually in the epilogue, where the authors introduce the idea of building an architecture via a UML diagram built from stereotypes for the patterns. I can see this being widely adopted as a useful technique.

The big problem with the book is it is dreadfully repetitive. It’s not sure whether it’s a textbook, a reference book or a design tutorial, so it tries to be all three. The same text gets repeated over and over again, not only between sections but even within a section. By attempting to make each pattern, and each
"strategy" within a pattern self-sufficient there’s an awful lot of repeated text, sometimes even on one page. Some patterns almost exact copies of one another and should arguably be strategies for a single pattern. Text is often repeated between the "Problem", "Forces" and other
sections of the same pattern, where a better  trade-off would be references to a single list of more detailed descriptions. At the same time there are too many self-references in the text, even back to the start of the same section!

I found the repetition and overlap between the "design considerations", "bad practices" and "refactoring" sections confusing – it would be better if they all formed part of a single roadmap with the main set of patterns. There’s an established concept of "Anti-patterns", which could easily serve for bad practices and refactoring ideas, and these could also be reflected as part of the "forces" for the  patterns.

Adopting all of these patterns could lead to a very complex layer structure, with a great many classes involved in the simplest task. Several patterns seem to be about wrapping the complexities of J2EE, and you wonder whether there ought to be a more systematic solution to this. The book doesn’t discuss
"managing complexity in the design", but if it did it might come up with some simplifications.

While I’m not aware of an equivalent book with a Microsoft focus, with a little effort you could also apply many of these patterns in the Microsoft world. However, there are some good Visual Basic patterns books which show how this should have been written. A provocative idea – does the difference between this and equivalent VB books reflect the difference in productivity of the languages?

My advice? If you need a good J2EE design pattern reference buy this book, but don’t try to read it cover to cover.

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

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