james nowotarski 12 september 2006 se 425 principles and practices of software engineering autumn...
Post on 21-Dec-2015
220 views
TRANSCRIPT
![Page 1: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/1.jpg)
James Nowotarski
12 September 2006
SE 425Principles and
Practices of Software Engineering
Autumn 2006
![Page 2: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/2.jpg)
2
Understand what the course is about (i.e., course objectives)
Understand how the course will achieve its objectives Get acquainted Level set:
What is software engineering Why use a software engineering process What are the key vocabulary terms to understand Why does any of this matter
Today’s Objectives
![Page 3: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/3.jpg)
3
Topic Duration
Questionnaire & Intros 30 minutes
Core concepts 45 minutes
*** Break 10 minutes
Core concepts (cont.) 20 minutes
Course overview 30 minutes
Software categories 30 minutes
Does software engineering matter? 30 minutes
Today’s Agenda
![Page 4: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/4.jpg)
4
Topic Duration
Questionnaire & Intros 30 minutes
Core concepts 45 minutes
*** Break 10 minutes
Core concepts (cont.) 20 minutes
Course overview 30 minutes
Software categories 30 minutes
Does software engineering matter? 30 minutes
Today’s Agenda
![Page 5: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/5.jpg)
5
Software Engineering
• The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines (Fritz Bauer, 1969)
• Computer science discipline that covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting (webopedia.com)
Core Concepts
![Page 6: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/6.jpg)
6
Technology
ProcessPeople
The software engineering discipline consists of people, process, and technology components
Core Concepts
![Page 7: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/7.jpg)
7
Technology
ProcessPeople
The focus of SE 425 is the process component of software engineering
Core Concepts
Technology
ProcessPeople
… for the delivery of technology-enabled business solutions
![Page 8: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/8.jpg)
8
Process
• Sequence of steps performed for a given purpose
• “A specific ordering of work activities across time and place with a beginning, an end, and clearly identified inputs and outputs” -- Tom Davenport
• An overloaded term, can apply at multiple levels (macro, micro)
Core Concepts
![Page 9: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/9.jpg)
9
software process (also known as “method”)
• Within the context of software engineering, a formalized approach or series of steps for performing some significant portion of software development
Software Process (aka “Methodology”)
• A collection of methods based on a common philosophy that fit together in a framework called the systems development life cycle
-- Ken Orr
Core Concepts
![Page 10: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/10.jpg)
10
• A systematic way of doing something
• Typically consists of these key content pieces:
1. Processes (what)2. Deliverables (what)3. Techniques (how)4. Roles (who)5. Estimating guidelines (how long)
In SE 425, we will use the terms “software process” and “Software Process” interchangeably
Core Concepts
![Page 11: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/11.jpg)
11
Key Question: Deliverables
Steps Techniques
What does the system need to do?Functional requirementsQuality requirementsData modelProcess model
1. Gather requirements2. Create data model3. Create process model
InterviewingObservationEntity-relationship modelingNormalizationData flow modeling
Example: Analysis
Roles Estimating guidelines
Business analystEnd useretc.
8 hours per data entityetc.
![Page 12: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/12.jpg)
12
Broad categories of software processes
• Structured methods• Information engineering• Object-oriented methods• Lightweight/Agile methods
Core Concepts
![Page 13: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/13.jpg)
13
Systems development life cycle (SDLC) A description of the phases of an
information system
Planning Modeling Construction Deployment
Example
Core Concepts
![Page 14: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/14.jpg)
14
Life cycle model
• The iteration and control strategy adopted by a systems development organization
• Examples- Waterfall- Iterative/Evolutionary/Spiral- Incremental
Core Concepts
![Page 15: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/15.jpg)
15
The waterfall model is the granddaddy of life cycle models
Core Concepts
Planning
Modeling
Construction
Deployment
![Page 16: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/16.jpg)
16
Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases
M C DVersion 1
M C DVersion 2
M C DVersion 3
Core Concepts
![Page 17: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/17.jpg)
17
Incremental life cycle models advocate delivering the end product piecemeal
M C DVersion 1
M C DVersion 2
M C DVersion 3
Core Concepts
![Page 18: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/18.jpg)
18
Routes
• A “route” is a preconfigured specialization of a methodology, depending on a variety of factors:
- custom vs. packaged solution- degree of project team distribution- project team size- technology platform- application type
• Examples- Custom Client/Server: Large Project- Custom Client/Server: Small Project- Rapid Application Development (RAD)- Packaged Systems Development- Data Warehouse- SAP implementation
Core Concepts
![Page 19: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/19.jpg)
19
Rapid Application Development (RAD)
• A shortened route with the following characteristics:- high degree of development tool usage and code
generation- Joint Application Development (JAD) workshops
instead of interviewing- assumes reuse of existing technical architecture and
standards- time-boxing (90-day implementation schedule)- highly iterative
Core Concepts
![Page 20: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/20.jpg)
20
RAD vs. Traditional
Traditional
Req’ts Analysis UserDesign
ConstructTechDesign
RAD
Req’ts UserDesign
Construct
Core Concepts
![Page 21: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/21.jpg)
21
Techniques
• Provide detailed how-to guidelines• Fall into 2 main categories:
- Process techniques- Modeling/Diagramming techniques
Core Concepts
![Page 22: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/22.jpg)
22
1. Review existing data models2. Define entities
a. Independentb. Dependent, including Intersection entities
3. Define attributes and keys (primary, foreign)4. Define relationships5. Finalize ERD6. Normalize7. Integrate data models as required8. Verify completeness of the data model
9. Validate the data model a. With usersb. With the enterprise’s data administrator
Process for Building Data Models
Process technique availableDiagramming technique available
Core Concepts
![Page 23: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/23.jpg)
23
Modeling/DiagrammingTechnique
Core Concepts
![Page 24: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/24.jpg)
24
1NF = No repeating groups
2NF = 1NF + no partial dependencies (non-key attribute dependent on portion of primary key)
3NF = 2NF + no transitive dependencies (non-key attribute dependent on another non-key attribute)
Normalization (Process Technique)
Core Concepts
![Page 25: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/25.jpg)
25
Topic Duration
Questionnaire & Intros 30 minutes
Core concepts 45 minutes
*** Break 10 minutes
Core concepts (cont.) 20 minutes
Course overview 30 minutes
Software categories 30 minutes
Does software engineering matter? 30 minutes
Today’s Agenda
![Page 26: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/26.jpg)
26
Course Objectives
SE 425 will enable you to explain, develop, use, and improve software engineering practices
![Page 27: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/27.jpg)
27
Your grade
Homework Assignments 50%
Midterm/Final 40%
Participation/Discussion 10%
--------
100%
![Page 28: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/28.jpg)
28
Course Map
http://facweb.cti.depaul.edu/jnowotarski/se425/default.htm
![Page 29: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/29.jpg)
29
Course Assignments
• Assignment 1 – Critique of article on the spiral approach to systems development
• Assignment 2 – Risk management exercise
• Assignment 3 – Project plan
• Assignment 4 – TBD
• Assignment 5 - Summary of marketplace development
![Page 30: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/30.jpg)
30
My role
Facilitate learning Plan, prepare, and conduct lectures and learning activities
Assess student progress and provide feedback
Relate concepts to real-world problems Provide classroom environment conducive to learning
Clearly state expectations Gather and implement suggestions for improving the class Keep it fun
![Page 31: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/31.jpg)
31
email: [email protected] phone: 312-261-3838 office hours: Tuesdays, immediately
before and after class
My coordinates
![Page 32: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/32.jpg)
32
Your role
Be proactive
Share your experience
Come to class prepared
Collaborate with other students as appropriate
Ask if you don’t understand or if I’m not clear
Provide constructive feedback (“This class would be better if . . .”)
![Page 33: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/33.jpg)
33
Class Participation
Subjective evaluation of participation:
A Consistently asks good questions, makes valuable observations, and answers questions effectively
B Frequent participant, but not all questions, answers, and observations are effective, or not consistently active
C Participates infrequently, or questions/answers do not reflect adequate preparation, or late to class
D Very rare participation, or questions/answers reflect little or no preparation, or very late to class
F Displays no sign of life, or absent for entire class
![Page 34: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/34.jpg)
34
Topic Duration
Questionnaire & Intros 30 minutes
Core concepts 45 minutes
*** Break 10 minutes
Core concepts (cont.) 20 minutes
Course overview 30 minutes
Software categories 30 minutes
Does software engineering matter? 30 minutes
Today’s Agenda
![Page 35: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/35.jpg)
35
Activity – Software categories
In small groups, develop a 1-minute summary of one of the following: System software Application software (custom) Application software product Engineering/Scientific software Embedded software Web-based applications
For each, describe and discuss software engineering challenges
![Page 36: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/36.jpg)
36
System software
Description
Foundational software, operating system, utilities, compilers, tools, driver,
Challenges
Robustness, interoperability, efficiency, reliability, testing, change management, configuration management, scarce skill set
![Page 37: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/37.jpg)
37
Application software (custom)
Description
Building application from ground up, tailored to org’s specific needs, focused,
Challenges
Need for good documentation, want internal people working on this, cost effectiveness, extensibility
![Page 38: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/38.jpg)
38
Application software product
Description
Business process or industry focused, SAP, Peoplesoft, Microsoft Office
Challenges
Variety of end user types, update cycle, software piracy prevention,
![Page 39: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/39.jpg)
39
Engineering/Scientific software
Description
Number crunching, astronomy, weather prediction, computer-aided design, simulation
Challenges
Numerical precision, understanding of scientific domain, performance, extremely data sets, regulatory/legal compliance
![Page 40: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/40.jpg)
40
Embedded software
Description
Software embedded in a device,
Challenges
Testing, change management, scarce skills, limited hardware resources, security
![Page 41: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/41.jpg)
41
Web-based applications
Description
eCommerce (B2C), educational, financial, maps, gis, “network is the computer”
Challenges
Security, performance, browser inconsistencies, language compatibility, global, usability, legal, censorship,
![Page 42: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/42.jpg)
42
Topic Duration
Questionnaire & Intros 30 minutes
Core concepts 45 minutes
*** Break 10 minutes
Core concepts (cont.) 20 minutes
Course overview 30 minutes
Software categories 30 minutes
Does software engineering matter? 30 minutes
Today’s Agenda
![Page 43: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/43.jpg)
43
IT OutsourcingBest jobs in America
1. Software engineer
2. College professor
3. Financial adviser
4. Human resources manager
5. Physician’s assistant
6. Market research analyst
7. Computer/IT analyst
8. Real estate appraiser
9. Pharmacist
10. Psychologist
Source:Kalwarski, T., Mosher, D., Paskin, J. & Rosato, D. (2006, May) 50 best jobs in America. Money. Retrieved September 8, 2006, from http://money.cnn.com/magazines/moneymag/bestjobs/
![Page 44: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/44.jpg)
44
Does SE matter?As noted by Carr, IT is often viewed as a commodity and, thus, not “core”
• IT is like electric power -- a commodity that is required by all but provides distinction to none
• IT capability is broadly accessible and affordable
• New or proprietary technologies offer opportunity for companies to gain a step, but this advantage is short-lived
• Further evidence of IT commoditization:– overcapacity– price drops– vendors positioning selves as “utilities”
Source: Carr, N. (2003, May). IT doesn’t matter. Harvard Business Review, 81(5), 41-49.
![Page 45: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/45.jpg)
45
Buy vs. buildLease (utility model) vs. buy
• Open source vs. lease
Software as a commodity?
Does SE Matter?
![Page 46: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/46.jpg)
46
IT Outsourcing
Buy
Build
Commodity Differential
Critical
Useful
StrategicImportance
Potential for Differentiation
Buy vs. build
![Page 47: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/47.jpg)
47
Read Pressman Chapters 1-4 Read Royce article Assignment 1- Critique the Royce article
For September 19
![Page 48: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/48.jpg)
48
Extra slides
![Page 49: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/49.jpg)
49
Software process engineering
• Developing and/or selecting and/or tailoring software process for a particular business situation
• “Configuring one-of-a-kind methodology from common building blocks” -- Gezinus Hidding, Loyola University
Core Concepts
![Page 50: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/50.jpg)
50
Justifying a Methodology
• Vendors and consultants have not done much to substantiate quantitatively the value of their methodologies
• What would you say if asked to provide justification?
![Page 51: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/51.jpg)
51
Common Drivers Behind Methodology Adoption
• Project failure leads to realization that “we need a more formal process”
• Codify best practices, so as to increase predictability and reliability of software development process
• especially as IT organization grows
• Continued pressure on time to market and quality (web services)
• Certification (e.g., Capability Maturity Model)
• Desire to stay current and/or sustain/develop competitive edge
• Need to support distributed development teams (multi-site and/or multi-organization)
![Page 52: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006](https://reader036.vdocuments.net/reader036/viewer/2022062407/56649d6d5503460f94a4d27a/html5/thumbnails/52.jpg)
52
Methodology - Who needs it?
“Any first attempt at converting folklore into knowledge, and a guessing game into a discipline, is liable to be misread as a downgrading of individual ability and its replacement by a rule book. Any such attempt would be nonsense, of course. No book will ever make a wise man out of a donkey or a genius out of an incompetent. The foundation in a discipline, however, gives to today’s competent physician a capacity to perform well beyond that of the ablest doctor of a century ago, and enables the outstanding physician of today to do what the medical genius of yesterday could hardly have dreamt of. No discipline can lengthen a man’s arm. But it can lengthen his reach by hoisting him on the shoulders of his predecessors. Knowledge organized in a discipline does a good deal for the merely competent; it endows him with some effectiveness. It does infinitely more for the truly able; it endows him with excellence.”
From Managing for Results, by Peter F. Drucker