List of Figures.
Chapter 1. Introduction.
1.1 The Retention of Software Jobs.
1.2 Depth of Experience.
1.3 The Scope of This Book.
1.4 The Nature of Computer Science.
1.5 The Future of Computer Science.
1.6 The Essence of Philosophy.
1.7 Why Autonomy?
1.8 An Architecture for Autonomy.
1.9 Other Notes.
Chapter 2. Prologue.
2.1 How This Book Originated.
2.2 The Importance of Management.
2.3 The Tie-in with Autonomy.
2.4 Major Themes of This Book.
2.5 The Challenge of a New Idea.
2.6 The Importance of Visualization.
2.7 The Move Toward Autonomy.
2.8 Why I Wrote This Book.
2.9 Merging Theory and Practice.
2.10 The Pace of Computer Science.
2.11 The Importance of Cognitive Dynamics.
Chapter 3. The Philosophical Foundations of Computer Software Design.
3.1 The Philosophical Origins of Computer Science.
3.2 Influence of the Cognitive Philosophers.
3.3 Abstracting the Human Thought System.
3.4 The Philosophical Foundations of Software Development.
3.5 The Phenomenon of Reality.
3.6 The Phenomenon of Subjectivity.
3.7 Low-Cost Software Development.
3.8 "On Budget and On Schedule."
3.9 The Time to Completion: Schedule.
3.10 Philosophy and Successful Design.
Chapter 4. The Philosophical Imperatives of Architectural Design.
4.1 The Manager as Architect.
4.2 The Manager as Teacher.
4.3 The Manager as Social Worker.
4.4 The Manager as Axman.
4.5 The Philosophical Imperatives of Architectural Design.
4.6 Availability of the Manager.
4.7 Project Manager: 10 Key Attributes and Responsibilities.
4.8 Philosophical Aspects of Engineering.
4.9 The Importance of Finishing the Job.
4.10 Visualizing an Architecture.
4.11 The Role of Intuition in Design.
4.12 ‘‘Sufficient Reality’’ and Inference in the Design Process.
4.13 Dialectics in the Achievement of Sufficient Reality.
4.14 The Relationship of Logic to Software Architectures.
4.15 The Logic of the Systems Design.
Chapter 5. Project and Task Organization.
5.1 The Role of Organization.
5.2 The Ability to Organize.
5.3 The Difficulty of Communication.
5.4 The Title of "Manager."
5.5 The Flat, Nonhierarchical Organization.
5.6 Projects, Tasks, and Work Units.
5.7 Large Organizations and Staffing.
5.8 Staffing Up: The Initial Team.
5.9 Balancing Hardware and Software.
5.10 Incremental Deliveries.
5.11 Functional Organization.
5.12 Interface Protocols of the Organization.
5.13 Completion of the Task.
5.14 Detecting the "Fraud."
Chapter 6. The Philosophy of Communication.
6.1 "Sanity Is an Achievement!"
6.2 Gauging Understanding.
6.3 Internal Team Communication Protocols.
6.4 External Team Communication Protocols.
6.5 Technical English as the Medium.
6.6 Engineers as Technical Writers.
6.7 Documentation: Articulation of the Requirements and Design.
6.8 The SRD: Software Requirements Document.
Chapter 7. Software Management Standards.
7.1 Three Good Standards.
7.2 Aspects Addressed by a Standard.
7.3 Preparing to Select the Standard.
7.4 Standards for Implementation.
Chapter 8. The Estimation of Software Cost.
8.1 Sponsor Costing Issues.
8.2 Types of Cost Estimates.
8.3 ‘‘Lines of Code’’ Metrics.
8.4 The Major Work Areas, Functions, and Tasks that Must be Included in the Estimation of Cost.
8.5 The Detailed Cost Estimate.
8.6 The SRD as a Contract.
Chapter 9. The Exercise of Project Control.
9.1 The Functions of Project Control and Oversight.
9.2 The Requirements Phase.
9.3 Contents of the Software Requirements Document.
9.4 The Design Phase.
9.5 The Implementation Phase.
9.6 The Test and Integration Phase.
9.7 Personnel Issues.
9.8 The Hacker and Other Personalities.
9.9 The Buck Stops at the Top.
9.10 How People Think, Pay Attention, and Remember.
Chapter 10. The Development Process Methodology.
10.1 The "Design Hub" as Implementation Tool.
10.2 The Architecture Definition Process.
10.3 The Use of Large-Scale Representations.
10.4 Design Team Meetings.
10.5 Rapid Development versus Prototyping.
10.6 The Traditional Development Methodology.
10.7 Action Items, Change Requests, and Software Discrepancy Reports.
10.8 Resolving Problems and Impasses.
Chapter 11. The Development of System Architectures.
11.1 Pushing the Architecture.
11.2 The Point of "Acceptable Reality."
11.3 The Importance and Imperative of Visualizing Phenomena.
11.4 Traditional Architectures.
11.5 The Inferred Architecture.
11.6 The Redesign or Upgrading of Existing Systems.
11.7 The Approach to New Systems.
Chapter 12. The Impact of Leadership on Software Development.
12.1 Recognizing Good Leadership.
12.2 The Concepts of Management and Leadership.
12.3 Rewarding Failure.
12.4 The Leader’s Subordinate.
12.5 Indications of Poor Leadership.
12.6 Leadership and Ethics.
12.7 The Attributes of Leadership.
12.8 The Ramifications of Failure.
12.9 The Absence of Leadership.
12.10 The Basis in Leadership for Failure.
12.11 The impact of Poor or Nonexistent Leadership.
Chapter 13. Management of Software Systems Development.
13.1 Self-Respect in the Manager.
13.2 The Ethical Workplace.
13.3 Narcotics Use in the Workforce.
13.4 Spotting Narcotics Addicts.
13.5 Courage and Dynamic Energy in Management.
13.6 The Traveling Manager.
13.7 The Manager as Architect.
13.8 The Phenomenon of Decision Making.
13.9 The Concept of "Ability."
13.10 Manager: Administrator or Leader?
13.11 Authority, Responsibility, and Accountability.
13.12 The Issue of Contempt.
13.13 Management: The Fulcrum of Project Execution.
13.14 The Ascendance of Mediocrity.
13.15 The Pitfalls of Staffing Up.
13.16 Salary Issues.
13.17 Contracting Out Work.
13.18 Evaluating Proposals.
13.19 Cost Bidding too Early.
Chapter 14: Four Case Studies of Low-Cost Systems.
14.1 Case Study One: The Joint Theater Level Simulation (JTLS).
14.2 Case Study Two: The Global Decision Support System (GDSS).
14.3 Case Study Three: The Topex TCCS System.
14.4 Case Study Four: The Jason 1 TCCS System (JTCCS).
Chapter 15. Operations, Operators, and Users: Their Impact on Cost.
15.1 The Operational Requirement.
15.2 The Lack of an Operational Requirement.
15.3 The Operations Scenario.
15.4 The Cost of Operators and Analysts.
15.5 The Voyager Project Operations Center.
15.6 War Gaming.
15.7 The Value of Simulation.
15.8 Funds: A Perspective.
Chapter 16. The Autonomous Cognitive System.
16.2 The Scale of Autonomy.
16.3 "I Will, Because I Can."
16.4 Toward Cognitive Dynamics.
16.5 Building an Autonomous System.
16.6 An Appropriate Model.
16.7 System-Level Requirements for Autonomy.
16.8 Architectural Domains for Autonomy.
16.9 In Summary.
The Science of Computer Science.
The Professional Software Manager.
Cognitive Philosophy in a Modern Technical Context.
Cognitive Dynamics is the Unifying Theory.
The Issue of Software Cost.
The Paradigm Shift of Cognitive Dynamics.
Glossary of Acronyms.