Chunking is a principle that applies to the effective
communication of information between human beings. It is
particularly useful in the domain of written communication. It
was first put forward in the 1950s by a Harvard psychologist
named George A. Miller. He published a landmark journal article
entitled "The Magical Number Seven, Plus or Minus Two".
Miller studied the short term memory. For example, how many
numbers people could be reliably expected to remember a few
minutes after having been told these numbers only once. The
answer was: "The Magical Number Seven, Plus or Minus
Two".

Millers concept goes beyond numbers. For example, most of us
can remember about seven recently learned chunks of similarly
classified data. Keep this in mind when you are presenting
information to other people.

Principle

All information should be presented in
small digestible units.

Digestible unit defined

A digestible unit of information
contains no more than nine separate items of information.

Research suggests that human beings can
understand and remember no more than seven plus or minus
two items of information at a time. This phenomenon is
called the "chunking limit". Further, as the
complexity of the information increases the chunking
limit decreases.

Lessons learned

All information intended for human
consumption should be presented in units that do not
exceed the chunking limit. This principle can be applied
to:

Written documents

Object, data, functional and dynamic models

Computer programs

Benefits

By chunking information the author
improves the reader's comprehension and ability to access
and retrieve the information.

Examples

No more than nine bullet points on a slide

No more than nine bullet points on a bulleted
list - classify the information into smaller
logically related groups and introduce a
subheading

No more than nine bubbles on a single data flow
diagram - consider reducing this further if the
functions are complex

No more than nine classes in an object model
module - consider creation of more super-classes
or a more granular partitioning

No more than nine states in a single state
transition diagram - consider creation of
super-states

This principle statement is chunked into 7 units
of information. No unit has more than 6 thoughts
or sub-chunks.

Non-example

The following bulleted list
has too many chunks presented at once:

System ConceptsDescribe:

The missions, features, capabilities and
functions of the system

Major system components and interactions

Operational environment including manual
procedures required

Operational modes such as production, backup and
maintenance

Interfaces with other systems

Required performance characteristics such as
response time, throughput and data volumes

Quality attributes such as availability,
reliability and usability

Other considerations such as security, audit,
safety and failure modes in emergency situations

Deployment considerations such as acquisition of
business data to support the system including
data cleansing and loading

The classes of users that will interact with the
system

Requirements for support of the system such as
maintenance organization and help desk

The chunking principle requires you to
classify the items into groups to reduce the information
overload as follows:

System ConceptsDescribe:

Functional Requirements

The missions, features, capabilities and
functions of the system

Major system components and interactions

Operational environment including manual
procedures required

Operational modes such as production, backup and
maintenance

Interfaces with other systems

Non-functional Requirements

Required performance characteristics such as
response time, throughput and data volumes

Quality attributes such as availability,
reliability and usability

Other considerations such as security, audit,
safety and failure modes in emergency situations

Deployment and Operational Requirements

Deployment considerations such as acquisition of
business data to support the system including
data cleansing and loading

The classes of users that will interact with the
system

Requirements for support of the system such as
maintenance organization and help desk