A Panegyric on the Number Seven (plus or minus two) for Software Requirements

 “…what about the magical number seven? What about the seven wonders of the world, the seven seas, the seven deadly sins, the seven daughters of Atlas in the Pleiades, the seven ages of man, the seven levels of hell, the seven primary colors, the seven notes of the musical scale, and the seven days of the week? What about the seven-point rating scale, the seven categories for absolute judgment, the seven objects in the span of attention, and the seven digits in the span of immediate memory? For the present I propose to withhold judgment. Perhaps there is something deep and profound behind all these sevens, something just calling out for us to discover it. But I suspect that it is only a pernicious, Pythagorean coincidence.”

- George Miller

 Dr. George Miller’s paper “The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information” was a landmark paper in psychology. It was published in 1956 by the cognitive psychologist, George A. Miller of Princeton University’s Department of Psychology, in the journal Psychological Review. In the article Miller discussed:

  • Information measurement
  • Absolute judgments of unidimensional stimuli
  • Absolute judgments of multidimensional stimuli
  • Subitizing
  • The span of immediate memory
  • Recoding

 The aspects of this article of particular interest to those of us who create models of complex software systems are summarized by Miller in his paper:

“…the span of absolute judgment and the span of immediate memory impose severe limitations on the amount of information that we are able to receive, process, and remember. By organizing the stimulus input simultaneously into several dimensions and successively into a sequence or chunks, we manage to break (or at least stretch) this informational bottleneck.”

 In Miller’s tests, memory span refers to the longest list of items (e.g., digits, letters, words) that a person can repeat back immediately after presentation in correct order on 50% of trials. Miller observed that memory span of young adults is approximately 7 items. Miller further noticed that memory span is approximately the same for stimuli with very different amount of information. For example, binary digits have 1 bit each, decimal digits have 3.32 bits each and words have approximately 10 bits each. The conclusion that Miller drew from this was that memory span is not limited in terms of bits but rather in terms of chunks. A chunk is defined to be the largest meaningful unit in the presented material that the person recognizes and it depends on the knowledge of the person as to what counts as a chunk.

 Miller was suggesting rhetorically that 7 was a “magical” number for chunking. There has been much debate since about what is an optimal number. Some researchers have suggested as low as 3 or 4 and others that it does not apply to some designs at all. For example, 7 +/-2 is not a useful strategy for designing a telephone book. Miller himself wrote the following letter pointing out that he didn’t intend for this to be applied to comprehending printed text:

“From: George Miller

To: Mark Halpern

Subject: Re: citation for your disclaimer

 Many years ago landscape architects used my +/-7 paper as a basis to pass local laws restricting the number of items on a billboard. It was funded by the big motel chains; if you run a mom-and-pop motel you have to put a lot of information on your sign, but if you have a franchise everybody knows you have hot and cold running water, color televisions, free breakfasts, etc. The restriction on billboard content was driving the small motels out of business.

 The same argument was used in the Lady Bird Johnson Act to prohibit billboards within X feet of highways, and the billboard industry (a strange group that deserves an essay of its own) was hurting. They hired a man to travel around from town to town trying to refute the claims that more than 7 items of information could cause accidents. The man’s wife did not like her husband being constantly on the road, so she asked him about it. He told her that the root of his trouble was some damn Harvard professor who wrote a paper about 7 bits of information. She, being herself a psychologist, said that she did not think that that was what Professor Miller’s paper said.

 Armed with this insight, he looked me up and told me the whole story about my career, unknown to me, in the billboard industry. There was much more to it than I have outlined here, and I was shocked. So shocked that I wrote a long letter thing to set the record straight. The letter was published in the monthly journal of the billboard industry and that was the end of it. Unfortunately, I no longer have a copy of the letter and I don’t recall the name of the journal (this was all back in the early 70s) so I cannot quote to you its contents. But the point was that 7 was a limit for the discrimination of unidimensional stimuli (pitches, loudness, brightness, etc.) and also a limit for immediate recall, neither of which has anything to do with a person’s capacity to comprehend printed text.

 If you want to quote the original article, it is on line and you can find a pointer to it at www.cogsci.princeton.edu/~wn. But if that is too time consuming – yes, you are right: nothing in my paper warrants asking Moses to discard any of the ten commandments.

 Good luck, g.”

At Seilevel we have found using the 7 +/-2 rule to be a very useful guideline (but not a dictated rule) for our requirements modeling. Simply put, if the model is as complex as that which is being modeled, it is not useful and in fact is a waste of time. It is not serving its intended purpose of being an abstraction of the system used to derive a comprehensive set of requirements. We find that it is better to take a model with many steps and try to break it into levels. For example, instead of a process flow with 75 nodes crammed onto one page, we break it down to a “level 1” process flow where any given step might be represented by a “level 2” process flow. Of course, breaking a system into 17 layers of hierarchy would be self-defeating. In practice we have modeled very large systems with no more than 3 levels of hierarchy. Color and grouping of model nodes can also be used to “chunk” the information for easier understanding, but color and grouping won’t help if there are just too many nodes.

I have personally found that process flows (data flow diagrams even more so) can become very confusing with too many nodes. I have had ones that started out with 50+ nodes, but I was able to introduce leveling and make the model much easier to understand. Here is a famous bad example of an extremely complex problem captured in one giant, unreadable model.  Looks more like 7 cubed +/-2:

If you want to start your project on the road to success, use 7 +/- 2 for software requirement modeling and help avoid the 7 stages of a loser project:

  • Stage 1: Uncritical Acceptance
  • Stage 2: Premature enthusiasm
  • Stage 3: Dejected disillusionment
  • Stage 4: Total confusion
  • Stage 5: Search for the guilty
  • Stage 6: Punishment of the innocent
  • Stage 7: Promotion of the uninvolved