What is a system?
by Tom DeMarco
Imagine you are at a conference of people associated with the plastics industry and you ask each person there to write down a concise definition of the word plastic on an index card.
 |
Tom DeMarco |
You collect the cards and what do you find? Well, some variance perhaps in how different people approached the definition, but nobody would come up completely blank. Now imagine you do the same thing at a conference of systems people (say the ICSE or INTEROP or Agile2009), asking each attendee to define the word system. I suggest you'd get half the cards handed in blank and the rest would be definitions that dealt with some kinds of system but not the others and not even most.
We use the word system to describe many things that at first glance seem to have little to do with each other:
- the electoral system
- our system of government
- your digestive system
- the entertainment system in your car
- the propulsion system of a rocket or plane
- the social security system
- the health care system
- the weather system
- your system for beating the dealer at Blackjack
- Windows
- MacOS
- Microsoft Word
- the software system your project is building
- the project itself (system for building the system)
As system builders, it seems likely to me that we work at a disadvantage if we can't even define the word in a fairly rigorous way. I propose we adopt a trick from Aristotle to separate the words we use and know from those that are used all the time but that -- under scrutiny -- turn out to be only vaguely understood. Aristotle was a bear about definition, so keen on the subject that he began by defining definition. He asserted that rigorous definition is made up of two steps, and that the two are necessary and sufficient:
1. Name a class that the thing being defined belongs to
2. Supply distinguishing characteristics that separate it from all other members of the class
The class that definition belongs to is two-step process, and the distinguishing characteristics are the two steps as described above.
Aristotle's example of a well formed definition is his definition of man:
Man is the animal possessed of the capacity for articulate speech.
The class that contains man is animal, and the distinguishing characteristic is possessed of capacity for articulate speech. In Aristotle's terms, the class is called the word's genus, and the characteristics that distinguish it from all other members of that genus are called its differentia.
OK, so to define the word system we first have to figure out its genus, a class of things that it belongs to. There is no single correct answer: a word might belong to many different classes; the larger genus you start off with, the more differentia you'll need to complete the definition. A useful tactic is to look for the smallest genus that contains the word.
To form my definition of system, I choose genus = connected set. After all, every system that is worthy of the name is made up of discrete parts that interact. That's why the operating system in your laptop qualifies, but a shovel doesn't. The operating system consists of kernel, drivers, real-time executive, scheduler, dispatcher, memory management, etc. The shovel, on the other hand has no interacting parts.
There are many non-system connected sets, i.e. collections of discrete elements that are in some sense interacting, but don't qualify as systems. Consider a few of them:
the students in a Spanish class
Republicans
Mothers Against Drunk Drivers
the 10 to the 27th air molecules that fill a medium sized room
The differentia that will distinguish systems from other connected sets is this: whose parts interact to accomplish some common purpose. The complete definition is:
A system is a set of interconnected parts which act together to accomplish some purpose.
Past Perspectives
The Summer 2009 perspective entitled Fear of Failure was written by James Robertson
The Winter 2008/09 perspective entitled IT Financing was written by Tom DeMarco
The Sumer 2008 perspective entitled Groundhog Day Part II was written by Tom DeMarco
The Winter-Spring 2008 perspective entitled Groundhog Day was written by Tom DeMarco
The Winter 2007 perspective entitled Teams Don't Move
was written by Steve McMenamin
The Fall 2006 perspective entitled Three Hours to Three Years
was written by Peter Hruschka.
The Spring 2006 perspective entitled The Web Undone by Tom DeMarco.
The Winter 2006 perspective entitled Have We Finished Yet?
was written by Suzanne Robertson.
The Fall 2005 perspective entitled Adult Behavior on Projects
was written by Tim Lister.
The Summer 2005 perspective entitled No Great Leaps Forward?
was written by Steve McMenamin.
The Spring 2005 perspective entitled Mastering Software Architectures
was written by Peter Hruschka.
The Winter 2004 perspective entitled Early Involvement of Testers
was written by James Robertson.
Links from this site to Amazon.com or Amazon.co.uk are done
using Amazon's associates program. That means,
that if you use one of the links and end up buying the book, we get a cut.
We are not getting rich on this, but thought that you should know that
it is happening.
The contents of this site are copyright © 1995-2010 Atlantic
Systems Guild Inc. and Atlantic Systems Guild Limited. Material may
be reproduced provided this copyright notice is attached and the source
is acknowledged. Please pay us the courtesy of notifying the author if
you wish to use material from this site.
|
Happenings
2010
Peter Hruschka
and Gernot Starke again organized the OOP-architecture day and will talk about Process Patterns for Software Architects OOP 2010 in Munich, January 28.
Peter Hruschka
teaches the course along the award-winning Guild book: "Adrenalin-Junkies und Formular-Zombies: Typisches Verhalten in Projekten" in Vienna, January 29
(in German).
Contact CONECT for details
Peter Hruschka
teaches the 3-day seminar "Mastering Software Architecture" in Vienna, March 31 - April 2
(in German). You can take the exam to become a "Certified Professional for Software Architecture" right after the seminar.
Contact CONECT for details
Peter Hruschka
teaches the 4-day certification seminar for requirements engineers in Vienna, February 9 - 12 (in German).
Contact CONECT for details
James
Robertson teaches Mastering
the Requirements Process in Brussels, February 22-24. Please
contact
I.T.Works for details.
Brussels, February 25, 26. James
Robertson teaches Becoming an Innovator . Please
contact
I.T.Works.
Suzanne Robertson presents Mastering
the Requirements Process in London, February 23-25. Contact IRM UK Strategic IT
Training
Suzanne Robertson presents
Mastering the Requirements Process part 2
in Oslo, March 1,2. Contact Oslo Computer Society Tove
Skeie for details
Hilversum, March 2-4. James
Robertson teaches Mastering
the Requirements Process . Please
contact
Array Seminars for details.
Suzanne Robertson presents
Mastering the Requirements Process
in Oslo, March 3-5. Contact Oslo Computer Society Tove
Skeie for details
The Netherlands, March 9. Suzanne
Robertson presents the Keynote "Overweight or Anorexia: Requirements for a Balanced Diet" at the Atos Origin DREAM Conference.
Peter Hruschka
teaches the 3-day certification seminar for requirements engineers in Karlsruhe, March 10 - 12 (in German). The (optional) exam to become a "Certified Professional in Requirements Engineering" is held right at the end of the seminar.
Contact andrena objects for details
Peter Hruschka
teaches the NEW 3-day certification seminar about requirements modeling in Vienna, March 17 - 19 (in German).
Contact CONECT for details
April 12-14, James Robertson is in Trondheim for Mastering
the Requirements Process sponsored by Den Norske Dataforeningen
Suzanne Robertson teaches Mastering the
Requirements Process in Rome, April 12-14. Contact Technology
Transfer.
Apr 12-14 Tim Lister
teaches
Mastering the Requirements Process in Chicago
for Software Quality Engineering.
April 15, 16 Tim Lister
is also in Chicago for
Requirements Modeling.
Contact Software Quality Engineering for details.
Peter Hruschka
teaches the 4-day certification seminar for requirements engineers in Vienna, April 20 - 23 (in German).
Contact CONECT for details
Brussels, April 20-22. James
Robertson teaches Mastering the Requirements Process. Please
contact
I.T.Works.
April 27-29, Suzanne Robertson is in Tromso for Mastering
the Requirements Process . Contact Norwegian Computer Society, Tromso Aase Tveito for details.
James Robertson and James Archer present the new course Mastering
Business Analysis in London, April 26, 27. Contact IRM UK Strategic IT
Training
May 17-19, Tim Lister
is in Boston to teach
Mastering the Requirements Process for Software Quality Engineering.
May 20, 21 Tim Lister
is also in Boston for
Requirements Modeling.
Contact Software Quality Engineering for details.
In
Auckland, James
Robertson teaches Mastering
the Requirements Process May 19-21. For details please contact
Software Education
James and Suzanne
Robertson teach Mastering
the Requirements Process in Wellington, May 24-26. For details
please contact Software
Education
James and Suzanne
Robertson present their popular Requirements Evening in Wellington, May 27. For details of this free evening talk, please contact Software
Education
Suzanne Robertson teaches
Mastering the Requirements
Process part 2 May 27,28 in Wellington. Contact Software
Education for details of this advanced class.
Suzanne Robertson teaches
Mastering the Requirements
Process part 2, May 31-June 1 in Sydney. Contact Software
Education for details of this advanced class.
May 31, Suzanne and James
Robertson present another of their popular Requirements Evenings in Sydney. This free event is sponsored by Software
Education
Suzanne Robertson teaches
Mastering the Requirements
Process part 2 June 2-4 in Canberra. Contact Software
Education for details of this advanced class.
James Robertson is in
Brisbane on June 2-4 to present Mastering
the Requirements Process. For details please contact Software
Education
Suzanne Robertson presents
Mastering the Requirements Process in Melbourne June 7-9 for Software
Education
Peter Hruschka
teaches the 4-day certification seminar for requirements engineers in Vienna, June 8 - 11 (in German).
Contact CONECT for details
Suzanne Robertson teaches
Mastering the Requirements
Process part 2 June 10,11 in Melbourne. Contact Software
Education for details of this advanced class.
The dynamic duo Peter Hruschka
and Gernot Starke teach the 4-day seminar "Mastering Software Architecture" in Cologne, June 16 - 19 (in German).You can take the exam to become a "Certified Professional for Software Architecture" right after the seminar.
Contact www.arc42.com for details
June 16-18, Suzanne and James
Robertson are in Sydney for Mastering
the Requirements Process sponsored by Software
Education
Peter Hruschka
teaches the 3-day certification seminar for requirements engineers in Karlsruhe, June 22 - 24 (in German). The (optional) exam to become a "Certified Professional in Requirements Engineering" is held right at the end of the seminar.
Contact andrena objects for details
|
In Depth
Video interview on Requirements with Suzanne Robertson by Robert de Ruiter of Software Release Magazine in the Netherlands.
Listen to parts 1 and 2 of Suzanne Robertson's Interview on Requirements Traceability with Tom Cagley of Software Process and Measurement Podcast (SPAMCAST).

See what all the fuss is about. Tom DeMarco's article in the summer issue of IEEE Software
seems to have annoyed practically everyone: "Software Engineering, an idea whose time has come and gone?"
Adrenaline Junkies and Template Zombies has won the 2009 Jolt Awards best general book.
The Guild's new book Adrenaline Junkies and Template Zombies - Understanding Patterns of Project Behavior is now available. Orders at Dorset House Publishing and Amazon.com
NEWS: IEEE Software magazine has selected "Provoking Creativity: Imagine What Your Requirements Could Be Like" by Neil Maiden, Alexis Gizikis and Suzanne Robertson as one of the Top Picks for influential articles over the 25 years of IEEE Software. Download pdf.
See video commentary about the Adrenaline Junkies book project.
NEWS: Adrenaline Junkies and Template Zombies has been adopted by the Copenhagen Business School for Prof. Rob Austin's course, "The IT Manager as a Business Leader."
The new Guild book has been published in German Adrenalin-Junkies und Formular-Zombies - Typisches Verhalten in Projekten. The book demonstrates the effect of behavior on project success.
Please visit Hanser or
Amazon.de for more details.
Platicando con Tom DeMarco: interview (in Spanish) with Mexico's Software Guru Magazine. "Creo que todos hemos comprendido que el aspecto sociologico de los proyectos es igual o mas importante que el tecnologico ..."
Suzanne Robertson has written an Executive Report "Requirements for Managing
Requirements" for the Cutter Consortium's Agile Product and Project
Management advisory service. Download a free copy
The Microsoft Store on Microsoft's Redmond campus will for the first time start carrying books from publishers other than Microsoft Press. Mastering the Requirements Process is one they have chosen to stock in this initial test phase.
The Volere Requirements Specification
Template has been translated to Spanish. Thanks to Paul Babic of Smartmatic for the translation. A Microsoft Word version is available from the Volere site.
Suzanne and James Robertson announce the publication of the second edition of their best selling Mastering the Requirements Process
In response to many requests we have started a Volere Requirements discussion group.
|