Author: Dave Hendricksen
Aimed at: Aspiring Software Architects
Pros: Well-targeted, readable, accessible, doesn't preach
Cons: A niche audience
Reviewed by: Sue Gee
Although this book is about relationship skills, personal skills and business skills, it has been written for those with a technical background by someone who has the same set of skills. This is reflected in the style of presentation which, I think, makes it very accessible to programmers who want to move into software architecture.
Dave Hendricksen states concepts and principles clearly and in a logical order, diagrams are used to convey key points succinctly. Bulleted list are used when ideas lend themselves to point-by-point exposition and there are clear summaries at the end of each chapter.
This type of book can come over as self-opinionated but this author avoids this with a lightness of touch and a sprinkling of humour. He has clearly gathered his ideas by experience and by reading and researching his topic - the text makes interesting use of quotes from a very wide range of sources and each chapter has a bibliography in case you want to follow anything up.
He also admits, in the third section the book, that the route he used to acquire business skills was a Management of Technology program at the University of Minnesota, described as "a mix of MBA-type classes .... such as accounting, marketing, operations and new product development" balanced by classes on the management of technology within which he chose strategic management as his area of specialization.
The book's preface presents the essential architect skills as a pyramid. At the base are the Technical Skills that are not covered in this book - the reader is assumed to be technically competent already. The next layer of skills are Relationship Skills and these, according to Hendricksen, are the foundational layer of soft skills. Five skills, with a chapter devoted to each, are the subject of Part I which accounts for almost half the book.
Chapter 1 has the title Gracious Behavior and the reader will quickly discover if this book is going to chime with them. Most techies I know will recognize, if not themselves, then other people they have had to work with. The book gets down to business very quickly and already on the second page we get to the discussion of the highly talented technical person who is "a complete pain to deal with" and a diagram showing the position in an organizational hierarchy of "The Technical Glass Ceiling (also known as Missing Soft Skills").
One main message of this chapter is that life is reflexive - and there's a simple diagram of a mirror to get this idea across.
Having enjoyed Chapter 1, while at the same time being sure it was in no way applicable to me, I was ready to learn from the chapters on Communication; Negotiation; Leadership; and Politics. At first I was a bit surprised at the inclusion of this chapter but with the definition of "politics" defined as "the art of getting things done by collaborating with other people" it made perfect sense.
Part II is devoted to Personal Skills - looking at three key elements needed for managing yourself in order to function as an architect. Chapter 6 on Transparency open with the idea that "architects live in a glass house" or to put it another way, "all of your actions are played out on a public stage" - which is a pretty terrifying idea. The chapter covers three types of transparency: self-transparency; project transparency and relational transparency and hopefully prepares you to go out onto that public stage.
Next comes a chapter on Passion, including sections on discovering your passion, rekindling your passion and protecting your passion. This chapter ends on an evangelical note: Becoming an architect who embraces passion means navigating a road filled with excitement, wonder and a positive outlook.
Chapter 8 on Context Switching is rather more pragmatic and one of its takeaways is how to cope with the Elephant context - in other words dealing with that which is not being said, which starts with the message, The information that is not on the table is what will kill you.
Part III covers the top layer of skills, Business Skills, in four chapters, the first of which is on Business Knowledge. Obviously a single chapter is not going to be enough to get to grips with this topic and so one of its suggestions is "Consider Getting a Business Degree". It also poses the sorts of questions you need to ask to understand the company you work in and makes the enlightened suggestion of going on a customer visit to understand its (and your) customers, commenting, "So often in the world of software development we must deal with proxies of proxies who claim to represent the interests of the true end customer".
Chapter 10 on Innovation is one which the author considers important, starting the chapter with the comment, "Innovating is simply my favorite aspect of being an architect". Given the way in which this book reveals him to be very well read it came as no surprise to discover he advocated reading as s strategy in finding new concepts.
Chapter 11 is on "bringing pragmatism to the everyday world of software architecture". Although the chapter does mention agile processes, for which "pragmatic" can be a shorthand, this chapter has a wider remit and looks at scope management, risk management and communication. The twelfth and final chapter looks at Vision - something that the successful software architect needs in order to go from the nebulous idea of a project to its successful achievement. It gives advice about establishing a destination and overcoming roadblocks and "strategy" crops up a great deal.
As the book points out, while software developers get opportunities to learn new technical skills such as programming languages and IDEs, rarely get any formal training in the skills covered in the book. Not only does this book set out fill this gap it succeeds in making its subject matter digestible even by a reader who wouldn't normally read this sort of thing.