Saturday, July 18, 2009

10 Books for software developers (that are not about software development)

The best software developers I have met are a pretty diverse bunch of people, but they have some traits in common. For example, they have all been voracious readers, and they read a lot of stuff not directly related to software development.

There is good reason for this:
Creativity is the process of solving problems by taking different bodies of knowledge, breaking them down into components, selecting some of the components and connecting them into a new body of knowledge.
The creative engine needs fuel. Good software developers, like good managers, leaders, and any good knowledge worker, continuously feeds that engine.

The following books are books I have read and found useful when I was a software developer. Today, as a business strategist and advisor, I still find them useful. Please note that I have not ranked them according to usefulness, it would be like ranking the usefulness of the wheels of your car. You need a full set.

Here are the books:

  • Godel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter. Fantastic book about how humans think, the nature of the id, and human creativity. This book is different from anything else you have ever read (unless, maybe, if you have read other stuff by Hofstadter). If you are attracted to the idea of thinking things you have never thought before, read this one!
  • Destruction and Creation by John Boyd. Well, this isn't a book, it is a short essay which you can download. If you read nothing else in this list, read this. (You won't get more creative by reading any one thing, but this one will show you what you are missing, and may motivate you.)
  • Slack: Getting Past Burnout, Busywork, and the Myth Of Total Efficiency by Tom DeMarco. This is the book your boss ought to read from every night, have under her pillow when she sleeps, and read from in the morning before eating breakfast and brushing her teeth. Useful to you too, especially if you want to understand why managers in your company don't get Agile, twist it, or actively oppose it. (Assuming you get Agile. You will have to be creative and connect some dots yourself.)
  • The Logical Thinking Process by William Dettmer. Programmmers solve complex problems, so a book about solving complex problems has to be on the list. This is my favorite. I carry it with me on every job I do. My copy is pretty dog-eared.
  • Brainpower Networking using the Crawford Slip Method by William Dettmer. Crawford Slip is the best data collection, brainstorming, and data analysis method I have ever seen. frankly, it beats the #€@#!!! out of anything I have seen in my software project methodology literature. I use it for gathering and analysing requirements, risk analysis, strategy development... I often use a combination of Crawford Slip for analysis and The Logical Thinking Process for synthesis.
  • Managing the Design Factory by Donald Reinertsen. This is a classic.
  • Thinking in Systems: A Primer by Donella Meadows. Filled with stuff that should be a part of basic education for everyone, and yet often is missing even at university level. Also a well written, interesting book.
  • Business Dynamics: Systems Thinking and Modeling for a Complex World by John Sterman. If you get hooked on Systems Thinking after reading Thinking In Systems, this book is the next step. The book looks daunting, but it is actually well written and quite accessible. There is a bit of math in it, but you can get a lot out of the book even if you skip those parts.
  • The Design of Everyday Things by Don Norman. This book changed the way I looked at the world, and was instrumental in shaping my views on user interface design. Also a fun read.
  • The Atrocity Archives by Charles Stross. This is a horror fantasy book with a programmer hero. No mind-bending insights here, but a good read if you want to unwind a bit after reading the other nine.
Which ten non-software development books would you recommend software developers to read?

Which ten non-management books would you recommend managers to read?

Would the lists be overlapping?

Monday, July 13, 2009

Fast Strategy Deployment Message Sequence Diagram

I am working on a message sequencing diagram for fast strategy deployment. Here is an initial version:
There are five hierarchical levels. Assuming that one leader can lead a team of 7-8 people, this message diagram would be good for an organization with 16,000 to 32,000 people.

An important assumption here is that the organization uses a Boyd style decentralized management model. This allows teams at each level to decide how to solve the problems within their spheres of control and influence before sending information upwards in the organization.

Another important assumption is IOHAI (Insight, Orientation, Harmony, Agility, Initiative) training for all leaders. This does of course include working knowledge of Crawford Slip, The Logical Thinking Process, and other Strategic Navigation tools.

Note that with this messaging model, information about the external environment reaches top management first. Information from inside the organization takes about five days to travel up.

By the time information reaches top management, many internal problems are already on their way to be solved. What happens in the first five days is mostly part of regular tactical and operations level OODA (Observe, Orient, Decide, Act) loops.

(If your organization uses an agile software development method, like Scrum or Extreme Programming, you already have a mechanism for decentralized decision making in place. What this message sequencing diagram does, is show how Strategic Navigation can be used to extend such mechanism throughout the entire organization.)

A first version of the Commander's Intent, in the form of one or more Intermediate Objective Maps, is communicated to the entire organization day 7.

From then on, top level management pulls information from various levels of the information, creates a Grand Strategy, and communicates it with Future Reality Trees in about a week.

The last planning phase is tactical and operations planning, which is done at lower levels, and communicated upwards. In other words, the tactical plans say "this is what we intend to do in order to achieve the mission objectives", rather than "this is what you should do..."

Three weeks may seem a short time for strategy development and deployment, but the U.S. Marine Corps does something similar in a couple of hours.

It is my belief that business strategy cycles can be compressed a lot more than the diagram shows.

I would like a bit of help from you: The picture above shows an early version of the diagram. I would like your suggestions for how to improve it. I would also like to hear about obstacles and your opinions on feasibility.

Saturday, July 11, 2009

Sinan Si Alhir on The Purposeful Enterprise

Sinan Si Alhir has written a very interesting blog post on The Purposeful Enterprise. The post integrates ideas from many different sources. As Si puts it:
The Purposeful Enterprise integrates Communities, Collaboration, Kanban, and Tribes.
When you read Si's post, which I hope you do, click on the illustrations to see the enlarged versions. They are worth studying.

Friday, July 10, 2009

The Logical Thinking Process Stencil for OmniGraffle

  • The Logical Thinking Process stencil for OmniGraffle described in this post can be downloaded here.

I have been playing with OmniGraffle, a diagram editor for the Mac. I am usually using OpenOffice Draw to create The Logical thinking Process (TLTP) diagrams. TLTP is a method for complex problem solving. It is useful for things like creating a kick ass business strategy, solving the world's climate problems, or figuring out whether to go to a new action movie (her preference) or a new art exhibition (his preference).

OpenOffice Draw is easy to work with, but using a more specialized diagram editing program has some advantages. (Michael Nygard recommended Flying Logic's TLTP diagram editor, so I'll try it out too, once I have played a bit more with OmniGraffle.)

A nice thing about OmniGraffle is that you can create your own symbol sets, called stencils. OmniGraffle has a fair set of stencils by default, but there is also a web site, Graffletopia, where people can upload stencils they have created.

There is no built-in TLTP stencil, and I could not find one on Graffletopia either, so one of the first things I did was to create a TLTP stencil and upload it. Here is a preview:

The TLTP symbol set is rather simple, so it took only a few minutes to create both black and white and color versions.

If you have read Bill Dettmer's book on TLTP, you recognize all the symbols. Sorry, I won't describe how to use the diagram symbols here. (I have recently written 200 pages about The Logical Thinking Process, and I am working on translating that from Swedish to English. You will have to bear with me for awhile.)

The best online guide to the Thinking Process (a slightly older version of TLTP) is probablyKelwyn Youngman's guide.

I recommend you read Bill's book, or my own book Tempo! when it becomes available. I have made a videocast review of Bill's book that shows off The Logical Thinking Process a little bit:

Time to play a bit more, then I'll grapple with Flying Logic's TLTP editor. I intend to write a review where I'll compare with OmniGraffle.

Wednesday, July 08, 2009

How to use Business Battle Maps with Strategic Navigation

I have begun using Scribd for whitepapers and other material. Here is the first paper published there. You can download the paper in PDF format at the Scribd site.

I hope you find it useful.

Business Battle Mapping