The Collaborative Design Imperative The Twentieth(!) OOP: January 26, 2011 Copyright © 2011 by Tom DeMarco, The Atlantic Systems Guild What do they have in common? the telephone system the digestive system the monetary system the health care system Linux the electoral system MacOS the global weather system Microsoft Word the political system at work Photoshop your respiratory system your car’s entertainment system your system for winning at blackjack What is a system? Aristotle to the Rescue Aristotle invented: biology logic (epistemology) taxonomy definition and gave names to: metaphysics ethics philosophy Aristotle -384 to -322 Definition of definition “Man” Definition is a t wo-step process that first establishes a class that contains the word to be defined, and then differentiates it from all other members of that class. Defining . . . Definition = genus + differentia EG: Man is the animal possessed of the capacity for articulate speech. Definition of “system” System A system is a complex interconnected set of components that act together to achieve some end. Two things that qualify . . . as systems: the soft ware product that your team is building the project that builds it Why are systems so hard to understand? Code is a message . . . Project Message Computer More messages: Project Message Computer Scary Observation: Every bit that is in any of these messages has to have been inside a human brain at one time or another. How much can you know? Specifically, how much accessible memory is there in the human computer? How much can you know? Specifically, how much accessible memory is there in the human computer? 20 Human Memory = 10 bits –John von Neumann [1930s] Meet Thomas Landauer Professor Thomas K. Landauer Institute of Cognitive Sciences, University of Colorado A few approximations: (Almost) everything we know came in through our input channels We are so visual that our total input capacity is more or less what we can receive through the eyes Bandwidth of the eye is about 10 Mbps No input while sleeping There are approximately π x 10 to the 7th seconds in a year So do the math: You’re awake about 20 million seconds per year By the time you’re 50 years old, you’ve been awake about one billion seconds 16 one billion seconds times 10 mbps = 10 bits (And that assumes you remember everything you’ve ever seen.) Read it and weep: Landauer concluded that the human mind absorbs approximately 2 bits per second while awake 2 bps x 1 billion seconds = less than 1 gigabyte Well then, how do we deal with complex systems at all? Natural vs. Man-Made: Man-made systems are composed of: small pieces loosely joined Natural systems, on the other hand, are composed of: large pieces tightly joined System Design in Two Parts: Conceptual Design: How a proposed system fits into, interacts with, and alters the reality that surrounds it. Internal Design: Derivation of an optimal piece structure to achieve the chosen conceptual design System Design in Two Parts: Conceptual Design: How a proposed system fits into, interacts with, and alters the reality that surrounds it. Internal Design: Derivation of an optimal piece structure to achieve the chosen conceptual design The optimal piece structure is always Small Pieces Loosely Joined Aside: New from Fred Brooks The Design of Design: Addison-Wesley Professional (April 1, 2010) System Design in Two Parts: Conceptual Design: How a proposed system fits into, interacts with, and alters the reality that surrounds it. Internal Design: Derivation of an optimal piece structure to achieve the chosen conceptual design The optimal piece structure is always Small Pieces Loosely Joined A System: α β The Story So Far: Digital systems are large compared to our capacity to know them. We’re building ever larger systems. So, the amount of collaboration is ever increasing. The optimal SPLJ piece structure divides the product into human-sized pieces. Ownership of the piece structure has to be collaborative. Partitioning of human effort is isomorphic to the piece structure of the product. How Much Collaboration? The basic quantum of collaboration is: one bit passed from one mind to another Total Project Collaboration >> Message Size of Project What are the key skills of system building? In order of importance: 1. Collaboration 2. Design . . . . Karl-EriK Sveiby “Trust is the bandwidth of communication.” Recap: Your system may be bigger than you Small Pieces Loosely Joined Collaboration and Design “Trust is the bandwidth of communication.” Recap: Your system may be bigger than you Small Pieces Loosely Joined Collaboration and Design “Trust is the bandwidth of communication.” Give trust before demonstrated trust worthiness.
© Copyright 2025 Paperzz