Professional Documents
Culture Documents
Presentation Outline
Introduction Background Past Breakthroughs Silver Bullets Hope Summary Discussion
Introduction Author
Fred Brooks Project Manager for OS/360 1999 Turing Award winner Founder of UNC-Chapel Hill CS Department
Introduction Topic
Silver Bullets? Werewolves? Essence [of garlic]?
Introduction Evolution
It is! Behold the evolution of software
Software Project
Introduction What
What is the werewolf? Missed Deadlines Blown Software Budgets Flawed Products
Introduction How
The werewolf derives its strength from software difficulties Essential Difficulties Difficulties inherent to the nature of software (i.e., conceptual construct) Accidental Difficulties Difficulties not inherent to the nature of software (i.e., implementing the construct)
Introduction Why
Software is difficult to build correctly Conceptual Specification difficult Conceptual Design difficult Conceptual Testing difficult Implementation and testing of the system metaphor is the easy part!
10
11
12
Past Breakthroughs
High-level Languages Addresses accidental complexities Abstract operations Abstract data types Abstract sequences Abstract communication models Time-Sharing Preserves the immediacy of the problem Unified Programming Environments Unifies the individual programming tools
13
Graphical Programming Coding with graphical objects Program Verification Error-proof programs Programming Environment and Tools IDEs Workstations Compile time improvements
15
16
A disciplined, consistent effort to develop, propagate, and exploit these [essential complexity] innovations should indeed yield an order-ofmagnitude improvement. There is no royal road, but there is a road.
17
Hope Analogues
Compare to medicine Throw out unproven fixes for demon-possession and sickness Apply persistent effort over time to slowly eradicate the disease Compare to chemistry Throw out alchemy Spend considerable effort to understand atoms, then synthesize gold
18
Summary
No single advance will yield an 10x improvement Accidental difficulties are [mostly] solved Essential difficulties remain [mostly] unsolved
Were making incremental progressand thats all we can hope for in the near future.
19
Discussion
What accidental and essential difficulties have you encountered? Did Brooks predict the buy vs. build solution correctly? Do you agree that great designers are the key to attacking essential difficulties? Have you seen any examples of silver bullets in todays software world?
20