FAILURE A Formal Definition of Failure Failure Patterns The Dependability of a Software System Known but Not Followed: Preventing Failure Monitoring Systems Reliability in Software Accountability for Failure Getting Out of Failures Product and Project Failures Summary SYSTEMS Application of Systems Thinking in Software The Law of Requisite Variety Most See, Very Few Observe System Dynamics Going Beyond the Analytical Approach Management by Exception Types of Systems Complexity of Systems Summary STRATEGIES The True System Aligning Information Strategy with Business Strategy Everything Important Is Not Strategic A Few Common Internal Strategic Decisions Using Strategies Failed Strategies Summary REQUIREMENTS Requirements for Products and Projects Stakeholders Stand-Ins The Nature of Requirements Types of Requirements Classifying Requirements A Hierarchy of Requirements Requirements and Process Design and Architecture Changes in Requirements Requirements and QA Summary ARCHITECTURE AND DESIGN Background Architecture versus Design The Importance of Architecture Software Architecture Document Types of Architecture System Design Design Document The Process of Designing A Note on Design Patterns Zachman Framework What It Takes To Be a Good Architect and Designer Occam''s Razor Summary DATA AND INFORMATION Nature of the Data Determining Information Needs Systems of Record Summary LIFE CYCLES Everything Sequential Is Not a Life Cycle Coarse-Grained Process Models Standard Software Life Cycles Using life Cycle As a Model Choosing the Right Life Cycle Prototypes Are Important Life-Cycle Phases Some Places in the Life Cycle Are Better Suited to Terminaary REQUIREMENTS Requirements for Products and Projects Stakeholders Stand-Ins The Nature of Requirements Types of Requirements Classifying Requirements A Hierarchy of Requirements Requirements and Process Design and Architecture Changes in Requirements Requirements and QA Summary ARCHITECTURE AND DESIGN Background Architecture versus Design The Importance of Architecture Software Architecture Document Types of Architecture System Design Design Document The Process of Designing A Note on Design Patterns Zachman Framework What It Takes To Be a Good Architect and Designer Occam''s Razor Summary DATA AND INFORMATION Nature of the Data Determining Information Needs Systems of Record Summary LIFE CYCLES Everything Sequential Is Not a Life Cycle Coarse-Grained Process Models Standard Software Life Cycles Using life Cycle As a Model Choosing the Right Life Cycle Prototypes Are Important Life-Cycle Phases Some Places in the Life Cycle Are Better Suited to Terminamp;lt;BR>Systems of Record Summary LIFE CYCLES Everything Sequential Is Not a Life Cycle Coarse-Grained Process Models Standard Software Life Cycles Using life Cycle As a Model Choosing the Right Life Cycle Prototypes Are Important Life-Cycle Phases Some Places in the Life Cycle Are Better Suited to Terminate a Project Software Shelf Life Data Shelf Life Movies versus Software Summary THE SEMANTICS OF PROCESSES Process and Entropy Developing Good Processes Take Care of the Basics Benefits of Processes Resistance to Processes Processes Degenerate into Bureaucracies Do Processes Help? Introducing New Processes Summary OFF-THE-SHELF SOFTWARE The Involved Parties Buying Off-the-Shelf Software Preparing to Buy Reducing Risk of Failure The Dependency Factor Summary CUSTOMIZATION Customization versus Enhancements Customization and Configuration Customization and Ground-Up Creation Customization Requirements Customization Facilities Handling Upgrades to Customization Why Customization Projects Fail Dominance of the Customization Model Need for a Customization Framework Pros and Cons of Customization Customization and Management Summary MIGRATION What Triggers a Migration? The Strategy of Migration The Use of Tools Risks of Migration Resistance to Migration Scoping Migration Projects Migration in Design Migrating Data The Right Staff Summary QUALITY AND TESTING The Definition of Quality Quality as Feedback Products and Processes Quality Under Constraints QA Effort Sizing Dealing with Poor Specifications Test Plans and Cases Types of Testing Scope of Testing Automation in Testing Test Environments Quality Improvements Over Time Bugs Classification of Bugs Push and Pull: The Equation Between Development and QA Multiple Views of Quality Quality Assurance (QA) and Testing Skills Summary: Quality Matters COMMUNICATION The Objectives of Communication Communication Models The Problem of Miscommunication Information Dynamics Modes of Communication Communication Tools Channels Demos Other Aspects of Communications Communicating Across Fault Lines Escalation Communication Techniques Content Status The Three Popular Vectors Summary REPORTS The History of Reporting Reporting Hierarchy What Is a Good Report? Types of Reports Report Design Quality Queries Queries versus Reports OTS Reports Report: Other Aspects Summary DOCUMENTATION Types of Documentation Problems with Documentation Summary SECURITY The Demand for Security Security Crosses Conventional Application Boundaries The Weaker Links Security Is Linked to Value and Ownership Identifying the Correct Entities to Protect The Business Perspective The Technical Perspective Learning from the Human Security System A Counter-Intuitive Approach from Field Sports The Human Perspective Processes and Procedures Summary CONCLUSION APPENDIX: Discussion of Terms BIBLIOGRAPHY INDEXCustomization Projects Fail Dominance of the Customization Model Need for a Customization Framework Pros and Cons of Customization Customization and Management Summary MIGRATION What Triggers a Migration? The Strategy of Migration The Use of Tools Risks of Migration Resistance to Migration Scoping Migration Projects Migration in Design Migrating Data The Right Staff Summary QUALITY AND TESTING The Definition of Quality Quality as Feedback Products and Processes Quality Under Constraints QA Effort Sizing Dealing with Poor Specifications Test Plans and Cases Types of Testing Scope of Testing Automation in Testing Test Environments Quality Improvements Over Time Bugs Classification of Bugs Push and Pull: The Equation Between Development and QA Multiple Views of Quality Quality Assurance (QA) and Testing Skills Summary: Quality Matters COMMUNICATION The Objectives of Communication Communication Models The Problem of Miscommunication Information Dynamics Modes of Communication Communication Tools Channels Demos Other Aspects of Communications Communicating Across Fault Lines Escalation Communication Techniques Content Status The Three Popular Vectors Summary REPORTS The History of Reporting Reporting Hierarchy What Is a Good Report? Types of Reports Report Design Quality Queries Queries versus Reports OTS Reports Report: Other Aspects Summary DOCUMENTATION Types of Documentation Problems with Documentation Summary SECURITY The Demand for Security Security Crosses Conventional Application Boundaries The Weaker Links Security Is Linked to Value and Ownership Identifying the Correct Entities to Protect The Business Perspective The Technical Perspective Learning from the Human Security System A Counter-Intuitive Approach from Field Sports The Human Perspective Processes and Procedures Summary CONCLUSION APPENDIX: Discussion of Terms BIBLIOGRAPHY INDEXime Bugs Classification of Bugs Push and Pull: The Equation Between Development and QA Multiple Views of Quality Quality Assurance (QA) and Testing Skills Summary: Quality Matters COMMUNICATION The Objectives of Communication Communication Models The Problem of Miscommunication Information Dynamics Modes of Communication Communication Tools Channels Demos Othe.
Building Software : A Practitioner's Guide