Contents

Preface

About the Author

Chapter 1 The Method

What Is The Method?

Design Validation

Time Crunch

Eliminating Analysis-Paralysis

Communication

What The Method Is Not

Part I System Design

Chapter 2 Decomposition

Avoid Functional Decomposition

Problems with Functional Decomposition

Reflecting on Functional Decomposition

Avoid Domain Decomposition

Faulty Motivation

Testability and Design

Example: Functional Trading System

Volatility-Based Decomposition

Decomposition, Maintenance, and Development

Universal Principle

Volatility-Based Decomposition and Testing

The Volatility Challenge

Identifying Volatility

Volatile versus Variable

Axes of Volatility

Solutions Masquerading as Requirements

Volatilities List

Example: Volatility-Based Trading System

Resist the Siren Song

Volatility and the Business

Design for Your Competitors

Volatility and Longevity

The Importance of Practicing

Chapter 3 Structure

Use Cases and Requirements

Required Behaviors

Layered Approach

Using Services

Typical Layers

The Client Layer

The Business Logic Layer

The ResourceAccess Layer

The Resource Layer

Utilities Bar

Classification Guidelines

What’s in a Name

The Four Questions

Managers-to-Engines Ratio

Key Observations

Subsystems and Services

Incremental Construction

About Microservices

Open and Closed Architectures

Open Architecture

Closed Architecture

Semi-Closed/Semi-Open Architecture

Relaxing the Rules

Design “Don’ts”

Strive for Symmetry

Chapter 4 Composition

Requirements and Changes

Resenting Change

Design Prime Directive

Composable Design

Core Use Cases

The Architect’s Mission

There Is No Feature

Handling Change

Containing the Change

Chapter 5 System Design Example

System Overview

Legacy System

New System

The Company

Use Cases

The Anti-Design Effort

The Monolith

Granular Building Blocks

Domain Decomposition

Business Alignment

The Vision

The Business Objectives

Mission Statement

The Architecture

TradeMe Glossary

TradeMe Areas of Volatility

Static Architecture

Operational Concepts

Workflow Manager

Design Validation

Add Tradesman/Contractor Use Case

Request Tradesman Use Case

Match Tradesman Use Case

Assign Tradesman Use Case

Terminate Tradesman Use Case

Pay Tradesman Use Case

Create Project Use Case

Close Project Use Case

What’s Next?

Part II Project Design

Chapter 6 Motivation

Why Project Design?

Project Design and Project Sanity

Assembly Instructions

Hierarchy of Needs

Chapter 7 Project Design Overview

Defining Success

Reporting Success

Project Initial Staffing

Architect, Not Architects

The Core Team

Educated Decisions

Plans, Not Plan

Software Development Plan Review

Services and Developers

Design and Team Efficiency

Task Continuity

Effort Estimations

Classic Mistakes

Estimation Techniques

Overall Project Estimation

Activity Estimations

Critical Path Analysis

Project Network

The Critical Path

Assigning Resources

Scheduling Activities

Staffing Distribution

Project Cost

Project Efficiency

Earned Value Planning

Classic Mistakes

The Shallow S Curve

Roles and Responsibilities

Chapter 8 Network and Float

The Network Diagram

The Node Diagram

The Arrow Diagram

Arrow versus Node Diagrams

Floats

Total Float

Free Float

Calculating Floats

Visualizing Floats

Floats-Based Scheduling

Float and Risk

Chapter 9 Time and Cost

Accelerating Software Projects

Schedule Compression

Working with Better Resources

Working in Parallel

Parallel Work and Cost

Time–Cost Curve

Points on Time–Cost Curve

Discrete Modeling

Avoiding Classic Mistakes

Project Feasibility

Finding Normal Solutions

Project Cost Elements

Direct Cost

Indirect Cost

Accounting versus Value

Total, Direct, and Indirect Costs

Compression and Cost Elements

Staffing and Cost Elements

Fixed Cost

Network Compression

Compression Flow

Chapter 10 Risk

Choosing Options

Time–Risk Curve

Actual Time–Risk Curve

Risk Modeling

Normalizing Risk

Risk and Floats

Risk and Direct Cost

Criticality Risk

Fibonacci Risk

Activity Risk

Criticality versus Activity Risk

Compression and Risk

Execution Risk

Risk Decompression

How to Decompress

Decompression Target

Risk Metrics

Chapter 11 Project Design in Action

The Mission

The Static Architecture

The Call Chains

List of Activities

Network Diagram

Planning Assumptions

Finding the Normal Solution

Unlimited Resources (Iteration 1)

Network and Resource Problems

Infrastructure First (Iteration 2)

Limited Resources

Going Subcritical (Iteration 7)

Choosing the Normal Solution

Network Compression

Compression Using Better Resources

Introducing Parallel Work

End of Compression Iterations

Throughput Analysis

Efficiency Analysis

Time–Cost Curve

Time–Cost Correlation Models

The Death Zone

Planning and Risk

Risk Decompression

Rebuilding the Time–Cost Curve

Modeling Risk

Risk Inclusion and Exclusion

SDP Review

Presenting the Options

Chapter 12 Advanced Techniques

God Activities

Handling God Activities

Risk Crossover Point

Deriving the Crossover Point

Finding the Decompression Target

Geometric Risk

Geometric Criticality Risk

Geometric Fibonacci Risk

Geometric Activity Risk

Geometric Risk Behavior

Execution Complexity

Cyclomatic Complexity

Project Type and Complexity

Compression and Complexity

Very Large Projects

Complex Systems and Fragility

Network of Networks

Designing a Network of Networks

Small Projects

Design by Layers

Pros and Cons

Layers and Construction

Chapter 13 Project Design Example

Estimations

Individual Activity Estimations

Overall Project Estimation

Dependencies and Project Network

Behavioral Dependencies

Nonbehavioral Dependencies

Overriding Some Dependencies

Sanity Checks

The Normal Solution

Network Diagram

Planned Progress

Planned Staffing Distribution

Cost and Efficiency

Results Summary

Compressed Solution

Adding Enabling Activities

Assigning Resources

Planned Progress

Planned Staffing Distribution

Cost and Efficiency

Results Summary

Design by Layers

Design by Layers and Risk

Staffing Distribution

Results Summary

Subcritical Solution

Duration, Planned Progress, and Risk

Cost and Efficiency

Results Summary

Comparing the Options

Planning and Risk

Risk Decompression

Recalculating Cost

Preparing for the SDP Review

Chapter 14 Concluding Thoughts

When to Design a Project

The Real Answer

Getting Ahead in Life

General Guidelines

Architecture versus Estimations

Design Stance

Optionality

Compression

Planning and Risk

Design of Project Design

In Perspective

Subsystems and the Timeline

The Hand-Off

Junior Hand-Off

Senior Hand-Off

Senior Developers as Junior Architects

In Practice

Debriefing Project Design

About Quality

Quality-Control Activities

Quality-Assurance Activities

Quality and Culture

Appendix A Project Tracking

Activity Life Cycle and Status

Phase Exit Criteria

Phase Weight

Activity Status

Project Status

Progress and Earned Value

Accumulated Effort

Accumulated Indirect Cost

Tracking Progress and Effort

Projections

Projections and Corrective Actions

All Is Well

Underestimating

Resource Leak

Overestimating

More on Projections

The Essence of a Project

Handling Scope Creep

Building Trust

Appendix B Service Contract Design

Is This a Good Design?

Modularity and Cost

Cost per Service

Integration Cost

Area of Minimum Cost

Services and Contracts

Contracts as Facets

From Service Design to Contract Design

Attributes of Good Contracts

Factoring Contracts

Design Example

Factoring Down

Factoring Sideways

Factoring Up

Contract Design Metrics

Measuring Contracts

Size Metrics

Avoid Properties

Limit the Number of Contracts

Using Metrics

The Contract Design Challenge

Appendix C Design Standard

The Prime Directive

Directives

System Design Guidelines

Project Design Guidelines

Project Tracking Guidelines

Service Contract Design Guidelines

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset