Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 1.23 KB

ch3.md

File metadata and controls

47 lines (35 loc) · 1.23 KB

Chapter 3. Measure Twice, Cut Once: Upstream Prerequisites

Importance of Prerequisites

  • Appeal to Logic
  • Appeal to Analogy

Programmers are at the end of the software food chain. The architect consumes the requirements; the designer consumes the architecture; and the coder consumes the design.

  • Appeal to Data

Determine the Kind of Software You're Working On

Choosing Between Iterative and Sequential Approaches.

Problem-Definition Prerequisite

The penalty for failing to define the problem is that you can waste a lot of time solving the wrong problem. This is a double-barreled penalty because you also don't solve the right problem.

Requirements Prerequisite

Output: "Checklist: Requirements".

Architecture Prerequisite

  • Program Organization
  • Major Classes
  • Data Design
  • Business Rules
  • User Interface Design
  • Resource Management
  • Security
  • Performance
  • Scalability
  • Interoperability
  • Internationalization/Localization
  • Input/Output
  • Error Processing
  • Fault Tolerance
  • Architectural Feasibility
  • Overengineering
  • Buy-vs.-Build Decisions
  • Reuse Decisions
  • Change Strategy
  • General Architectural Quality

Output: "Checklist: Architecture".

Amount of Time to Spend on Upstream Prerequisites