Rethinking Systems Analysis and Design
5/5
()
About this ebook
Systems analysis and design have solved many problems, but they have also created many problems. This unique book tackles crucial analysis and design issues that are glossed over in conventional texts. It recognizes that while many problems are solved with systems analysis and design, many problems are also created.
Using a short, highly readable essay format, Rethinking Systems Analysis & Design presents readers with both the logical and the more intuitive aspects of the analysis/design process. The book is intended as an alternative for those who must deal with the less structured processes of analysis and design.
A witty and illustrative fable concludes each of this engaging book's seven parts. Among the informative topics are
- mastering complexity
- general systems thinking
- observing and interviewing
- trading off quality versus cost
- understanding the designer's mind
- design philosophy.
Computerworld said, "This isn't just another systems analysis and design book, but one about the problems and possible solutions encountered when implementing a structured approach."
Managing End-User Computing said: "Almost everything in this book translates directly into your own environment. . . . [You'll] find more wonderful stories, anecdotes, and fables in this book than you're likely to find even in a book on a more interesting subject than systems analysis!"
The International Journal of General Systems wrote: "For over twenty years, Gerald Weinberg has been enlivening the often solemn scene of design methodology with his distillations of experience into expertise. His collections of essays, anecdotes, and consolidated wisdom are always inspiring and entertaining: his new work in this tradition will be good reading not only for designers but for anyone wanting to understand design, particularly the users and managers of information systems. . . . Until we do have the Grand Unified Theory of Design (if this is even possible), life lessons such as those in this book will continue to be the most useful guide there is, both for introducing prospective practitioners and for reminding the old hands of what they may occasionally forget."
An Amazon.com reviewer concluded, "This is a wonderful and timeless book. Mr. Weinberg's style, wit and intellectual breadth is a rare treat in the technology world, dominated by undertrained and narrow-minded professionals. It is a pleasure to read any of his writings and this book is no exception.
Gerald M. Weinberg
Gerald M. Weinberg (Jerry) writes "nerd novels," such as The Aremac Project, Aremac Power, First Stringers, Second Stringers, The Hands of God, Freshman Murders, and Mistress of Molecules—about how brilliant people produce quality work. His novels may be found as eBooks at or on Kindle. Before taking up his science fiction career, he published books on human behavior, including Weinberg on Writing: The Fieldstone Method, The Psychology of Computer Programming, Perfect Software and Other Fallacies, and an Introduction to General Systems Thinking. He also wrote books on leadership including Becoming a Technical Leader, The Secrets of Consulting (Foreword by Virginia Satir), More Secrets of Consulting, and the four-volume Quality Software Management series. He incorporates his knowledge of science, engineering, and human behavior into all of writing and consulting work (with writers, hi-tech researchers, and software engineers). Early in his career, he was the architect for the Mercury Project's space tracking network and designer of the world's first multiprogrammed operating system. Winner of the Warnier Prize and the Stevens Award for his writing on software quality, he is also a charter member of the Computing Hall of Fame in San Diego and the University of Nebraska Hall of Fame. The book, The Gift of Time (Fiona Charles, ed.) honors his work for his 75th birthday. His website and blogs may be found at http://www.geraldmweinberg.com.
Read more from Gerald M. Weinberg
Teaching People Teaching Dogs Rating: 0 out of 5 stars0 ratingsLove Poems After Fifty Years Rating: 0 out of 5 stars0 ratings
Related to Rethinking Systems Analysis and Design
Titles in the series (4)
An Introduction to General Systems Thinking Rating: 5 out of 5 stars5/5Rethinking Systems Analysis and Design Rating: 5 out of 5 stars5/5Passive Regulation: General Systems Design Principles Rating: 5 out of 5 stars5/5Active Regulation: General Systems Design Principles Rating: 5 out of 5 stars5/5
Related ebooks
Passive Regulation: General Systems Design Principles Rating: 5 out of 5 stars5/5Active Regulation: General Systems Design Principles Rating: 5 out of 5 stars5/5Exploring Requirements 1: Quality Before Design Rating: 0 out of 5 stars0 ratingsExploring Requirements 2: First Steps into Design Rating: 0 out of 5 stars0 ratingsHow to Observe Software Systems Rating: 0 out of 5 stars0 ratingsThink in Systems: The Art of Strategic Planning, Effective Rating: 4 out of 5 stars4/5Understanding the Professional Programmer Rating: 4 out of 5 stars4/5Roundtable on Technical Leadership Rating: 1 out of 5 stars1/5The Psychology of Computer Programming: Silver Anniversary eBook Edition Rating: 4 out of 5 stars4/5The Essence of Software: Why Concepts Matter for Great Design Rating: 3 out of 5 stars3/5Managing Yourself and Others Rating: 0 out of 5 stars0 ratingsWhy Software Gets In Trouble Rating: 0 out of 5 stars0 ratingsRefactoring for Software Design Smells: Managing Technical Debt Rating: 4 out of 5 stars4/5The Systems Thinker - Mental Models: Take Control Over Your Thought Patterns. Rating: 0 out of 5 stars0 ratingsThe Systems Thinker - Mental Models: The Systems Thinker Series, #3 Rating: 0 out of 5 stars0 ratingsLeaders in Computing: Changing the digital world Rating: 3 out of 5 stars3/5Learn to Think in Systems: The Systems Thinker Series, #4 Rating: 0 out of 5 stars0 ratingsThe People Problem: A Primer on Architecting the Enterprise as an Enterprise Architect Rating: 0 out of 5 stars0 ratingsSystems Concepts in Action: A Practitioner's Toolkit Rating: 5 out of 5 stars5/5An Introduction to General Systems Thinking Rating: 5 out of 5 stars5/5Becoming a Technical Leader Rating: 4 out of 5 stars4/5Systems Thinking: Managing Chaos and Complexity: A Platform for Designing Business Architecture Rating: 4 out of 5 stars4/5Systems Analysis: Made Simple Computerbooks Rating: 5 out of 5 stars5/5Recommender System based on linked Data Rating: 0 out of 5 stars0 ratingsRoundtable on Project Management Rating: 0 out of 5 stars0 ratingsThe Mikado Method Rating: 0 out of 5 stars0 ratingsSoftware Developer Rating: 0 out of 5 stars0 ratingsSoftware Design Methodology: From Principles to Architectural Styles Rating: 5 out of 5 stars5/5
Programming For You
Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Python QuickStart Guide: The Simplified Beginner's Guide to Python Programming Using Hands-On Projects and Real-World Applications Rating: 0 out of 5 stars0 ratingsGrokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 0 out of 5 stars0 ratingsPython Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards Rating: 0 out of 5 stars0 ratingsSQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Mastering Windows PowerShell Scripting Rating: 4 out of 5 stars4/5Python Machine Learning By Example Rating: 4 out of 5 stars4/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5Learn JavaScript in 24 Hours Rating: 3 out of 5 stars3/5Hacking: Ultimate Beginner's Guide for Computer Hacking in 2018 and Beyond: Hacking in 2018, #1 Rating: 4 out of 5 stars4/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Python Essentials Rating: 5 out of 5 stars5/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5HTML in 30 Pages Rating: 5 out of 5 stars5/5Photoshop For Beginners: Learn Adobe Photoshop cs5 Basics With Tutorials Rating: 0 out of 5 stars0 ratings
Reviews for Rethinking Systems Analysis and Design
2 ratings0 reviews
Book preview
Rethinking Systems Analysis and Design - Gerald M. Weinberg
Rethinking Systems Analysis and Design
by
Gerald M. Weinberg
SMASHWORDS EDITION
PUBLISHED BY:
Gerald M. Weinberg on Smashwords
Rethinking Systems Analysis and Design
(the fourth book in the General Systems series)
Copyright © 2011 by Gerald M. Weinberg
All rights reserved. Without limiting the rights under copyright reserved above, no part of this publication may be reproduced, stored in or introduced into a retrieval system, or transmitted, in any form, or by any means (electronic, mechanical, photocopying, recording, or otherwise) without the prior written permission of both the copyright owner and the above publisher of this book.
Smashwords Edition License Notes
This ebook is licensed for your personal enjoyment only. This ebook may not be re-sold or given away to other people. If you would like to share this book with another person, please purchase an additional copy for each person you share it with. If you're reading this book and did not purchase it, or it was not purchased for your use only, then you should return to Smashwords.com and purchase your own copy. Thank you for respecting the author's work.
To Sir Geoffrey Vickers
for teaching me a new way of thinking
Contents
Preface
Part I The New World of Systems Analysis and Design
Mastering Complexity
Problems, Solutions, and Systems Analyst/Designers
The Education of a Systems Analyst/Designer
Beyond Structured Programming
The Three Ostriches: A Fable
Part II General Systems Thinking
What Is General Systems Thinking?
What Is the System—and Why Does the Question Count?
Interdisciplinary Learning
The Two Philosophers: A Fable
Part III Observation
The Black Box Method
Can Observation be Learned in the Classroom?
The Natural History of White Bread
The Railroad Paradox
The Dog Who Read Fables: A Fable
Part IV Interviewing
A Surefire Question
Self-Validating Questions
The Question Is ...
Avoiding the Plop Problem
Avoiding Communication Problems through Generalization
The Fairy and the Pig: A Fable
Part V Design Philosophy
A Simple View of Design
Thing versus Process—The Grand Dichotomy
The Three Bs
Design for Understanding
On the Origins of Designer Intuition
The Goat and the Hippo: A Fable
Part VI Tradeoffs
Optimitis and the Tradeoff Concept
Tradeoffs—Quality versus Cost
Trading Analysis for Design
A Tradeoff View of Error Correction
A Cribbage Lesson
The Water Moccasin and the Waterproof Moccasin: A Fable
Part VII The Designer's Mind
Design as a Human Activity
Design—The Reality and the Romance
How to Find Miracles
A Postscript on Miracles
The Confusion Technique
WIGGLE Charts—A Sketching Tool for Designers
Featuring Failure
A Rose and a Rose: A Fable
Part VIII Epilogue
Appendices
Appendix A: The Diagram of Effects
Appendix B: The Software Engineering Cultural Patterns
Appendix C. The Satir Interaction Model
Appendix D. Control Models
Appendix E. The Three Observer Positions
Appendix: Description of the Black Box System
FURTHER READING
Notes
Bibliography
Jerry's Books in Ebook Formats
Preface
Systems analysis in the human field is not primarily concerned with solving problems. Its business is the understanding of situations which are relevant to the concerns of human minds.—Sir Geoffrey Vickers
There seems to be no cure for congenital worrying. I used to worry because nobody knew how to do systems analysis, but now I worry because everybody knows.
And I used to worry because there weren't any good books on systems analysis or design, but now I worry because there are several. Why should several books worry me? Because the books are so good people will imagine they can learn analysis or design from a book.
In other words, I worry because you can't learn certain things from a book, but I also worry because you can. As a professional author, would I be held responsible if someone fails to learn analysis and design from this book? From other books you can learn to draw a data flow diagram, construct a decision table, or build a queueing model, but this book promises nothing of the sort. As a matter of fact, if this book succeeds, you will know less of analysis and design than you knew before!
If you're still with me, you'll understand why I'm worried you might not want to buy this book. And if you don't buy it, then others won't buy it, and I won't be able to feed my dogs and they'll turn vicious and attack me and. . . .
Perhaps you'll buy the book out of kindness to animals—there are some nice animal stories inside you might read to your children—but I doubt it. So I'd better explain why you'll know less after reading this book than you know now.
In the past decades the potential power of information systems over our lives has grown. Our understanding of analysis and design has also grown—but not as fast. In short, we are losing the race. Perhaps I shouldn't worry about it, but there are many rumblings on the political horizon. I'm afraid the public isn't going to put up with us much longer.
I'm also worried the race won't be won simply by going faster or spending more money on the sorts of things we're now doing. The job of analysis and design has not just grown bigger, it's also become qualitatively different.
So, if you retain the same narrow view of analysis and design, your knowledge is growing smaller every day, relative to the problems you face. Of course, if you take the ostrich approach, you can imagine you're keeping up. But if you pull your head out of the sand—by reading this book, for example—you're going to start being a worrier, like me.
This book is not an alternative to the growing movement towards more structured
design and analysis. These methods are excellent for the parts of the process to which they apply. But as they succeed, we will see more clearly there are other parts we've been ignoring—parts which we'll then see are our major problems. This book is, therefore, a supplement to the more structured processes of analysis and design—an early warning system about the problems we'll have even when we do all the well-structured parts properly.
And those remaining parts are both big and important. As Vickers observes:
It seems to me obvious that policy making at all levels from the personal to the planetary involves processes which are not merely logical, though they are equally neither random nor arbitrary. And it seems equally obvious that these processes cannot be explicitly and fully described, though they can be recognized, respected, and even influenced. Reluctance to accept these conclusions is, in my view, part of the unhappy legacy which technology has brought to the regulation of human affairs, a legacy derived from the fact that until the recent past its concern has lain with solving problems, where both the problem and the criteria for comparing possible solutions were already given or set by someone else.
I worry because parts of the analysis/design process are almost entirely logical, for these are the parts we technologists love to do. Because these parts are well treated by the structured
methods, we gravitate to them and exclude the remainder—the parts that cannot be explicitly and fully described.
These parts can be recognized, respected, and even influenced,
which is what this book is trying to do. But I worry because such parts can never be mastered in the way decision tables or data flow diagrams can be mastered. Instead, they need constant rethinking. By every analyst and every designer. On every job. Every day.
And of course I worry because thinking is something none of us likes to do every day, least of all analysts and designers. If we think about matters we've put aside as settled, we may turn up worrisome aspects we overlooked the first time. And who but a worrier likes to worry?
But perhaps you're a worrier, like me. You worry if you don't think about some of the less structured processes of systems analysis and design, you'll soon be eaten by starving dogs. At least you'll be out of a job, or in a less rewarding one. If you've lost your job, Rethinking Systems Analysis and Design might be the cure you need. Taken in conjunction with a dose of the more structured material, it should relieve the torment of worry—and also help you become a more complete analyst or designer.
But will reading this book help relieve the unhappy legacy which technology has brought to the regulation of human affairs
? Not to worry!
Acknowledgment
I wish to express my appreciation to Don Gause who co-wrote portions of this book. His assistance was invaluable.
Part I. The New World of Systems Analysis and Design
Systems analysis is a new wine in an old bottle. In the early days, a few decades ago, the analyst's job was converting existing systems to new technologies. For such tasks, the title of analyst
was reasonably appropriate, but now the situation has changed. Today's analyst still converts and refines existing systems, but increasingly the job is to apply technology to do new things—things the previous systems never dreamed of.
As the job changes, the analyst's burden grows. When we aren't replacing an existing system, design no longer follows directly from analysis. Two separate jobs become inseparable, for analysis of what exists yields insufficient information to design what will come to exist.
Today there is a new job, but the old names persist. I would prefer to replace the misleading appellation of systems analyst/ designer,
but we love our old bottles, even as we delight in our new wines. A new name might force us to rethink systems analysis. Without it, we'll have to think without being forced.
We need new thoughts on what the analyst does—observing, modeling, designing, thinking—and how the analyst becomes a better analyst—education, professional behavior, and personal development.
Mastering Complexity
We live in an age of unmastered complexity. One symptom of such ages is the popularity of slogans, for slogans are simple, soothing substitutes for thought, lust as a physician diagnoses diseases of the human body by studying symptoms, so can we diagnose the ills of the political body by studying slogans.
Scale
But when there are so many symptoms from which to choose, how do we begin? One idea is to seek contradictions—two slogans expressing a fundamental, and thus not easily resolved, tension. For instance, the economists have an idea called economy of scale,
sometimes reduced to the slogan, Bigger is better,
or Big is bountiful.
For the first half of the twentieth century, in business and industrial production, this idea seems to have been largely unchallenged.
These days, though, we frequently hear a contradictory idea, sometimes expressed as diseconomy of scale,
but more eloquently as Small is beautiful.
Indeed, we sometimes hear two opposite slogans from the same source, like the barfly who observed: we'll just have to make a choice between standard of living and quality of life.
How can we resolve such contradictions? Because they come from the same culture, or even the same mind, contradictory slogans must share something useable as a clue. But what can Bigger is better
and Bigger is worse
possibly have in common?
How about Bigger is different
? There's a slogan the two sides obviously agree on, so why not start the discussion there? Instead of competing for the greatest decibel rating, the sloganeers might describe the specifics of how bigger is different from smaller.
Historically it takes some species of disaster to shake sense into out heads. The Smaller is better
people trek barefoot back to the five-acre vegetable farm, blissful until someone develops a serious case of hookworm. The Bigger is better
people build refineries larger and larger until one explodes and cannot ever be made to work again.
The newspapers (being naturally aligned on the Bigger is better
side) are never short of stories of The Back-to-Nature Experiment and Why It Failed.
On the other hand, when something big fails, it is usually spectacular enough to sell papers, so we also read about How the Supertanker Smothered the Beautiful Beach, but the Birds Were Saved by the Audubon Society.
In neither case do we glean much useful insight from the newspapers. Journalists believe their readers prefer slogans to analysis. They may be right.
But you can be sure the owners of the supertanker and the refinery are making analyses, though the would-be peasants may not be so inclined. And when the owners make their analyses, they discover there is much to be learned by asking, How is bigger different from smaller?
The Cost of Not Producing
For instance, some years ago the people who build refineries and other chemical plants began to notice a trend in failures. Although a bigger plant was more economical when in production, it naturally cost more to have it out of production. Moreover, because it was bigger, more things could go wrong, so things went wrong more often—and could take it out of production. And finally, because it was bigger, it was generally more difficult to figure out what had gone wrong, so each time it failed, it was out of production for a longer tune.
Now, just as you can compute the cost of producing one unit, you can also compute the cost of not producing one unit. This cost of lost production because of the failures of your production facility must be amortized and added to the production cost of each unit. In Figure 1, we see the two costs plotted versus plant size. The plant could be an oil refinery or a chemical processing plant of any kind. When the plant is small, the production curve is orders of magnitude bigger than the failure curve, so failure is merely a minor nuisance. The plant is simple, so it doesn't fail often, and is easily fixed when it does fail. But even while it is out of action the loss of production is small, so the net effect is usually ignored.
The effect of failure will continue to be ignored as plant size is increased by a factor of ten or even 100. At a certain point, the failures will be noticed by the operating people. But at the higher levels of management there is no recognition of the problem, for it doesn't affect the overall profit-and-loss statement by any noticeable amount.
As plant size increases once more, upper management may finally become aware of the cost of failure, but will attribute it to loose operating procedures,
or worker indifference,
or poor quality control.
All of these may be factors affecting the slope of the failure curve, but the general nature of the curve has to do only with the ultimate difference between bigness and smallness.
Figure 1. Cost of Production and Cost of Failure to Produce
Not understanding the general nature of this relationship, the executives will put a Scale-4 or Scale-5 plant on the drawing boards. They are merely doing what they have always done—the very actions making them into high executives in the first place.
Not until the plant has been built, failed many times, and been written off, will they seek the analysis limiting the size of future plants. They will then make up some other slogan, such as Never more than Scale Four,
and begin a new cycle of non-analysis.
Mastering Complexity with General Systems Thinking
There are several morals to this story. The most obvious: analysis can be cheaper than blind extrapolation. But more careful reading of the story may show how such analysis can be guided by general principles.
For example, although the story comes from chemical engineering, it has nothing to do with the nature of chemicals. The same story has been repeated, or will be repeated, in manufacturing industries of all kinds, including the industry manufacturing information—the computer industry, or information processing industry. Thus an analyst might learn valuable lessons from outside a particular type of business. This lesson runs counter to the trend toward making the systems analyst a specialist in one particular industry, or even in one particular factor in one particular industry.
Another point: although the story seems to be about chemical plants, or plants of some kind, it's not about plants at all—it's about people. It's about how people think, or how they fail to think. It's also about how their thinking combines with their observations and their preconceptions to form their actions. The story tells us about human inertia, which happens to be one of the most general laws governing human behavior, called Weinberg's Law of Twins. (See Passive Regulation: General Systems Design Principles.)
The story also says a would-be analyst may find it may be particularly useful to study people more than machines. After all, a chemical plant might be very different from an information plant, but one executive is pretty much like another executive. And more like a janitor than like a chemical plant.
Yes, ours is a time of unmastered complexity. Following Weinberg's Law of Twins, we are trying to master this complexity by applying what has worked for us in