Index

A

Absolute criticality, color coding floats, 203204, 267

Abstract structural dependencies. See also Activity dependencies, 339

Actions, corrective. See Corrective actions

Activities. See also Activity dependencies; Scheduling activities

activity network. See Project network

color-coding for risk, 240243

creating a list of, 158, 260261

formula for effort of an activity for tracking, 392

god. See also God service, 15, 30, 68, 307308

life cycle and project tracking, 388392

quality-assurance activities, 381382

quality-control activities, 380381

TradeMe project design case study, 346347

what is an activity, 195

Activity dependencies. See also Project network

arrow versus node diagrams, 197198

critical path analysis, 168169

dummy activities, 197

and milestones, 262

in the network diagram, 195

the node diagram/arrow diagram, 196

project design, TradeMe project design case study, 339341

resources and, 176

working in parallel, removing, 211212

Activity diagrams. See also Use cases

the business logic layer, 6263

introduction to, 5758

TradeMe system design case study, 105

Activity life cycle

activity status, 391392

definition, 388389

phase exit criteria, 389390

phase weight, 390391

Activity risk

adjusting outliers, 295, 356

calculation pitfall, 247

versus criticality risk, 248

geometric activity risk, 317320

introduction to and formula, 245246

project design, in action, 293294

TradeMe project design case study, 356

Actor model, future-looking design, 121

Amos Tversky. See Prospect theory (Kahneman, Tversky)

Analysis, avoiding paralysis in, 78

Anti-design effort

functional decomposition, 2021

TradeMe system case study, 106108

Architects

importance of having a single, 147148

job description, 150

junior architects, 148, 376

role and responsibility, 194

Architecture. See System design

Arithmetic risk, versus geometric risk, 316319

Arrow diagram

introduction to, 196197

versus the node diagrams, 197198

project design, in action, 261262, 272, 273, 278, 287, 351

project design in action, 283

TradeMe project design case study, 342, 347

Assembly, instructions, project design, 141

Assigning resources. See Resources

Atomic business verbs, 64, 69, 81, 93, 115, 417

Atomic business verbs, in naming, 66

Axes of volatility. See also Volatility-based decomposition

decomposition of a house, 3940

design factoring, 3739

introduction to, 3738

volatilities list and, 42

B

Bad habits. See Siren song of bad habits

Behavioral dependencies. See also Activity dependencies

TradeMe project, 339340

versus values, 370

Behaviors, required. See also Use cases

business logic layer and implementing required, 6162

classification guidelines, 65

not values, risk tipping point, 370

rather than required functionality, 5657

Best practices. See also Design standard

to accelerate projects, 207210

importance of following, 159

quality-assurance and, 381382

risk metrics, 253

Big projects. See Large projects

Broadband estimation

in design of project design, 370

overview of, 163164

in TradeMe project design case study, 338

Brooks, Frederick Dr., 89, 401

Business logic

architecture layer, 6163

calling ResourceAccess by, 78

in clients with functional decomposition, 1516, 29

in clients with open architecture, 75

service in Trade Me case study, 117119

C

Calculating floats, 202203

Calendar dates, scheduling activities, 176

Call chain diagrams. See also Use cases

architecture validation and, 8788

and creating dependencies, 339

project design in action, 257259

TradeMe system design case study, 124135

Changes, in requirements. See Requirements analysis

Chimera, multiple architects issue, 148

Classification guidelines

in design standard, 426427

the four questions, 6667

introduction to, 65

key observations, 6870

Managers-to-Engines ratio, 6768

service names, 6566

Clients

bloat and coupling in functional decomposition, 1517, 107

client designs and working in parallel, 278279

the client layer, 6061

compression with simulators, 284285

design don’ts, 8081

infrastructure and client designs first, 280283

integration process, 146

open architecture example, 7576

opening the architecture, 79

relevant design questions, 6667

TradeMe system design case study, 117, 119120

volatility decreases top-down, 68

volatility in TradeMe system design case study, 114115

Closed architecture. See also Open architecture

calling Utilities, 7778

introduction to, 76

opening, 79

semi-closed architecture, 7677

Color-coding

activities by risk, 240243, 271, 316

floats, 203204

Communication

with developers and managers, 89, 55, 65, 68, 198

optionality, 366367

optionality, in design standard, 428

through network diagrams, 198

Competitors, identifying volatilities, 5051

Complexity, project

compression and, 323324

cyclomatic. See Cyclomatic complexity

parallel work, 213

project type and, 322323

reducing for TradeMe project, 340341

reducing with The Method, 76

Components. See Services

Composable design

definition, 8587

definition, in complexity, 326

definition, in TradeMe project design case study, 129

in design standard, 425

Composition. See also Requirements analysis

composable design, 8587

introduction to, 83

requirements and changes, 8385, 9293

smallest set of components, 8990

validation, 8789

when no feature, 9192

Compression, of schedule. See also Parallel, working in; Project network

benefits of, 367368

compared with normal solution, 287289

and complexity, 323324

compression flow, 231233

full compression solution, 216

infrastructure and client designs first, 280283

introduction to, 210

maximum, 216, 232, 367, 429

network compression, 231

parallel work and cost, 213214

project cost and, 224228

risk and, 237, 248249

with simulators, 284286

with top resources, 368

TradeMe project design case study, 346350

trimming the fuzzy front end, 369

using a second top developer, 278

using a top developer, 276278

working in parallel, 211213, 278280, 322

working with better resources, 210211

Connection volatility, trading system, 43

Connectivity, cyclomatic complexity, 321

Constraints, through design decision tree, 8

Construction

benefits of incremental, 7072

layers and, 334

Contracts, designing service contracts. See Service contract design

Conventions, naming services, 6566

Conway’s law (Melvin Conway), countering, 331

Core team

cost elements, 229

designing the fuzzy front end, 151

initial project staffing, 149150

mission, 150151

and staffing distribution, 177178

TradeMe project, normal solution, 341

Core use cases. See also Use cases

diagrams supporting support of, 8889

introduction to, 8586

smallest set of components, 8687, 8990

TradeMe system design case study, 104105

Corrective actions

introduction to, 398399

overestimating and, 402403

resource leak and, 401402

underestimating and, 400401

Correlation models, time-cost, 291292

Cost. See Direct cost; Project costs

Coupled client, functional decomposition, 1517, 107

Coupled design, tight vs. loose, 156

Coupled services, functional decomposition, 14, 1719

Critical path analysis. See also Effort estimations

compressing activities, 231232

history of, 199

introduction to, 170171

network diagrams. See Network diagrams

prerequisites, 166167

proactive project management, 204

resource assignment, 171176

Criticality risk. See also Risk

versus activity risk, 248

decompression and, 250251

geometric, 316317

introduction to and formula, 241244

metrics, 253

project design in action, 295

subcritical solution, 353354

subcritical staffing, 272274, 322

TradeMe project solution comparison, 355

visualizing total floats by, 203204

Crossover point, of risk

acceptable risk and design options, 312

deriving, 309312

introduction to, 308309

Culture, and quality, 382383

Customers

interview using axes of volatility method, 3738

product managers relationship with, 150

Cyclomatic complexity

in design standard, 429

designing a network of networks, 329

designing by layers to reduce, 333, 350

formula for, 321

measuring service contracts, 420

problems with functional design, 1617

project type and complexity, 322

in TradeMe project design case study, 350, 360

D

Da Vinci effect, 238, 303

Deadlines

best practices, 207210

importance of staying on the plan, 399

overestimating, 403

underestimating, 400

Death zone, in time-cost curve, 218220, 223

in project design in action, 292

Debriefing, project design, 378379

Decision-making, educated decisions, 151152

Decomposition. See also Domain decomposition; Functional decomposition; Volatility-based decomposition

introduction to, 13

maintenance and development and, 3233

Decompression target. See also Risk decompression

finding, 313315

recommended ideal, 301

risk and, 251252

TradeMe project, 358359

Demarco, Tom, 174

Dependencies. See Activity dependencies

Dependency chart. See also Network diagrams

project activity network, 167168

project design in action, 258260

Design don’ts, 7981

Design, project. See Project design

Design standard

directives, 426

introduction to, 425

project design guidelines, 427429

project tracking guidelines, 429430

service contract design guidelines, 430

system design guidelines, 426427

Design, system. See System design

Developers

assigning services to, 153155

assigning to critical path activities, 172173

design and team efficiency, 155157

float-based assignment, 173, 205206

importance of design communication, 8

junior versus senior developers, 210211

junior versus senior project hand-off, 374376

project managers relationship with, 149

senior developers as junior architects, 376377

training and improving skills new technology, 208209, 381382

Diagrams

activity. See Activity diagrams

network. See Network diagrams

Direct cost

versus indirect cost, 229

introduction to, 222

and risk, 241

risk crossover point, 309312

and risk decompression, 297

risk models and minimum, 301

time-cost curve and minimum, 299300

total, direct and indirect costs, 223224

Discrete modeling, time-cost curve, 217

Domain decomposition

building a domain house, 2324

faulty motivation, 2425

introduction to, 2223

testability and design, 2526

TradeMe system design case study: anti-design effort, 108

Dummy activities, 197

Dunning-Kruger effect, 36

Duration, project. See Project duration

E

Earned value planning

discerning mistakes through, 189190

in project design in action, 266, 271, 274

as a project design tool, 187189

shallow S curve, 190194

in throughput analysis, 287289

for tracking with project progress, 393394

TradeMe project compressed solution, 348

TradeMe project normal solution, 344

TradeMe project subcritical solution, 353

Educated decisions, making, 151152

Efficiency. See Project efficiency

Effort estimations. See also Critical path analysis

activity estimations, 165166

architecture versus estimations, 365366

classic mistakes, 158159

estimation dialog, 165166

estimation techniques, 160162

estimation tools, 163

importance of debriefing, 378

overall project estimation, 162165, 394

overestimating and corrective actions, 402403

overview of, 157158

resource leak and corrective actions, 401402

TradeMe project design case study, 335338

underestimating and corrective actions, 400401

Effort, versus scope calculations, 372373

Elasticity of staffing, project efficiency and, 186

Emulators development. See also Simulators, 212

Engines

the business logic layer, 6263, 117

design don’ts, 8081

to Manager ratio, 6768

naming conventions, 6566

relevant design questions, 6667

in TradeMe system design, 114117

Estimations, effort. See Effort estimations

Execution complexity, resulting from compression. See also Complexity, project; Cyclomatic complexity, 213, 228, 249

Experts, external

providing access to, 209

TradeMe project design case study, 342

Exponential criticality, visualizing floats, 203

Extensibility, benefits of, 72

External service protocols, 74

F

Facets, contracts as, 412

Factoring contracts

factoring down, 416417

factoring sideways, 417418

factoring up, 419

introduction to, 415416

Feasibility, time-cost curve and. See also Death zone, in time-cost curve, 218220

Feast or famine cycles, staffing distribution, 177

Feed Me/Kill Me meetings. See also Educated decisions, making; SDP Review, 153

Fibonacci risk

compared with criticality and activity risk, 248

formula for and introduction, 244245

geometric, 317

Financial analysis, project, 364

Fixed costs, 230231

Floats

assigning resources, 173

calculating, 202203

dedicated resources and, 275

float-based assignment, 173, 175, 205206

free float, 201202

proactive project management, 204

and risk, 206, 240241, 370

total float, 200201, 204

types of, 199200

visualizing, 203204

Formulas

activity risk, 246

criticality risk, 242

cyclomatic complexity, 321

effort of an activity, 392

Fibonacci risk, 244245

geometric activity risk, 318

geometric criticality risk, 316

geometric Fibonacci risk, 317

The Method, 4

PERT (Program Evaluation and Review Technique), 162

planned earned value, 187

progress of an activity, 391

project cost, 184

project effort, 394

project progress status, 392

time for completing an activity, 169

total cost, 223

Free float, 201202

Functional decomposition

anti-design effort, 2021

avoid, in design standard, 426

compared with volatility-based decomposition, 3233

example of functional house, 2122

example of functional trading system, 2730

faulty motivation, 2425

handling requirement changes, 92

physical versus software systems, 2627

problems, 1419

reflecting on, 1921

testability and design, 2526

TradeMe system design case study: anti-design effort, 106108

Fuzzy Front End

compressing, 369

core team responsibilities, 151

with cost elements, 229

gathering assumptions, 265

with hand-off, 375, 376

introduction, 151

parallel work, 278279

pitfalls in assigning resources, 174, 279

in staffing distribution chart, 177178

G

Gantt chart, 176177

GE (General Electric), time-cost curve history, 225

Geometric risk

activity risk, 317318, 320

criticality risk, 316317

Fibonacci risk, 317

introduction to, 315316

risk behavior, 318320

God activities. See also Geometric risk; God service, 307308, 319320, 429

God service, 15, 30, 68, 106

Golden ratio. See also Phi

in decomposition 67, 426

in Fibonacci risk, 244

Guidelines, classification. See Classification guidelines

Guidelines, design standard, 426430

H

Hand-off, design

with contract design, 423

in design standard, 430

introduction to, 374

junior hand-off, 375

senior developers as junior architects, 376377

senior hand-off, 375

Hierarchy of needs, project design, 141144

Historical records, project estimation, 163

Homer’s Odyssey. See Siren song of bad habits

HTTP, microservices, 74

I

IDesign

customer network drawing tool, 197

introduction to, 3

managers to engines ratio, 68

number of core use cases, 86

TradeMe project design case study, 95

TradeMe system design case study, 335

Indirect costs

versus direct cost, 229

introduction to, 222223

and quality, 380381

and risk, 228

versus total cost, 230

total, direct and indirect costs, 223224

tracking, 394396

Infrastructure

at the beginning of the project, 267268, 341

and client designs first, 280283

first, with limited resources, 269

investing in, 208

working in parallel, 278279

Inherited dependencies

introduction, 258

in TradeMe project, 341

Interaction rules. See Design don’ts

Internal service protocols, 7475

J

Junior architects

senior developers as, 376377

supporting the architect, 149

Junior developers

compared with senior developers, 211212

project hand-off, 374375, 376377

K

Kahneman, Daniel. See Prospect theory (Kahneman, Tversky)

Kelley, James, 199, 225

L

Large projects

complex systems and fragility, 325327

designing a network of networks, 328331

introduction to, 324325

Layered design

business logic layer, 6163

client layer, 6061

design don’ts, 8081

introduction to, 5859, 332333

layers and construction, 334

open and closed architectures, 7579

pros and cons, 333334

ResourceAccess layer, 6364

reuse, 69

services, 5960

TradeMe system design case study, 116119

typical layers in The Method, 6061

volatility, 6869

Life cycle, of activity

activity status, 391392

introduction to, 388389

phase exit criteria, 389390

phase weight, 390391

Load leveling, 184

Locale volatility

TradeMe system design case study, 115

trading system example, 44

Logistic function

compression and complexity, 323

decompression target, 251252, 313

overview of, 192

time-risk curve and, 236238

Longevity, volatility and, 5152

M

Management

communicating in optionality to, 366367

presenting multiple project plans, 153

presenting projections, 404405

quality and trust, 382383

Manager, product, job description, 150

Manager, project, job description, 149

Managers

almost expendable, 6970

calling Engines, 78

compression with simulators, 284285

containing changes, 9293

creating subsystems, 70

design don’ts, 8081

introduction, 6263

queued calls, 7879

in TradeMe system design, 114117

Megaprojects. See Large projects

Message bus

definition, 117119

for extensibility and flexibility, 109

in Message Is (application), 120

for notification, 115

in TradeMe project design case study, in abstract dependencies, 339

in TradeMe project design case study, in nonstructural activities, 337

in TradeMe project design case study, in overriding dependencies, 340341

in TradeMe project design case study, in structural activities, 336

in TradeMe system design case study operational concepts, 119121

in utilities bar, 7778

Message Is (application)

with actor model, 121

definition, 120121

in TradeMe system design case study, 131

Metcalfe’s law, 326

The Method

classification guidelines, 6570

communication, 89

design validation, 56

eliminating analysis-paralysis, 78

introduction to, 24

reporting success, 146147

time crunch, 6

typical layers in The Method, 6061

what it is, 45

what it is not, 910

Metrics

collecting and analyzing, 382

contract design metrics, 419423

risk metrics, 253

Microservices

history and concerns, 7375

introduction to, 7273

Microsoft Project, 170, 176, 202

Milestones

arrow diagrams and, 197

project design in action, 262

public and private milestones, 262

TradeMe project design case study, 341

Minimum cost, services, 411, 412

Minimum direct cost

in project design in action, 299300, 301

with risk, 237238, 251252

in TradeMe project design case study, 310, 358–-359

Minimum duration solution, time-cost curve, 216, 218

Models

project design in action risk models, 300302

project design in action time-cost model, 291292

TradeMe project design case study risk models, 356

TradeMe project design case study time-cost models, 358–-359

Modules. See Services

N

Naming conventions, services, 6566

Network compression. See Compression, of schedule

Network diagrams. See also Critical path analysis

arrow diagram, 196197

arrow versus node diagrams, 197198

introduction, 167

node diagram, 196

overview of, 195196

project design in action, 261262, 271, 273, 278, 283, 287

TradeMe project case study, 342, 347, 351

Network of networks

benefits of, 328

countering Conway’s law, 331

creative solutions, 330331

designing, 328331

Network, project. See Project network

Node diagram

versus the arrow diagram, 197198

introduction to, 196

Nonbehavioral dependencies, TradeMe project, 340

Noncoding activities, TradeMe project, 338

Nonstructural coding activities, TradeMe project, 336337

Normal solution

decompression, 250

finding, 220221

introduction to, 215

and minimum direct cost, 251252

and minimum total cost, 225228

project design in action, 265276

and the risk curve, 238

risk metric guideline, 253

time-cost curve, 220221

TradeMe project design case study, 341346

O

On the Criteria to Be Used in Decomposing Systems into Modules (Parnas), 34

Open architecture. See also Closed architecture

introduction to, 7576

issues of calling up and sideways, 107

semi-open architecture, 7677

Operational concepts, TradeMe project, 119122, 340

Operational dependencies. See also Activity dependencies, 339340

Optimal project design point

with risk, 252

in project design in action, 301

in TradeMe project design case study, 359360

Optionality, communication with management, 366367

Outliers floats, adjusting

with geometric activity risk, 318

project design in action, 295

in TradeMe case study, 356

Overestimating, project, 158, 402403

P

Parallel life cycles, 374

Parallel, working in

compression with simulators, 284285

high compression and, 248249

infrastructure and client designs first, 280283

multiple developers per service, 154

parallel work candidates, 212213

project complexity and, 322

project design in action, 278280

senior developers as junior architects, 376

splitting activities, 211, 280

TradeMe project design case study, 346347

work and cost, 213

Parkinson’s law

increased risk, and, 239

overestimation and, 158

probability of success, and, 159

time crunch, 6

Parnas, David. See On the Criteria to Be Used in Decomposing Systems into Modules (Parnas)

Peer reviews, importance of, 148, 210, 381

PERT (Program Evaluation and Review Technique), 162, 422

Phases, project

project design in action, 264

TradeMe project design case study, 342

Phi. See also Golden ratio, 244245, 317

Planning assumptions

calendar dates and, 176

in debriefing, 378

in design of project design, 271272

in design standard, 428

in project design in action, 263265

in TradeMe project design case study, 341

Plans/planning. See also Earned value planning; SDP (Software Development Plan) review

benefits of having multiple, 152

importance of staying on, 399

STP (service test plan), 389

Practicing

identifying areas of volatility, 3436, 5253

in project design, 377378

Presentation layer, architecture, 6061

Process improvement, 209210

Process lead. See Architects

Product manager, job description, 150

Program Evaluation and Review Technique (PERT), 162, 422

Progress. See Project progress; Project tracking; Reporting progress

Project complexity

compression and, 323324

cyclomatic. See Cyclomatic complexity

drivers, 326327

project type and, 322323

reducing for project design in action, 259, 267

reducing for TradeMe project, 340341

reducing with The Method, 76

Project costs. See also Compression, of schedule; Effort estimations

compression and, 224228

decompression targets relation to, 251252

financial analysis, 364

fixed cost, 230231

importance of educated decisions, 151152

importance of having multiple plans, 152153

modular system design and, 409411

in project design in action, 265, 274, 278, 283, 285286

project efficiency, 186

staffing and, 228230

staffing distribution chart and calculating, 184185

total, direct and indirect costs, 222224

in TradeMe project design case study, 345346, 349350, 354, 358359

Project design

call chain diagrams, 257258

choosing the normal solution, 275276

communicating with developers/managers, 89

compression, throughput analysis, 287289

creating a design for the project design, 370372

critical path analysis. See Critical path analysis

the death zone, 218220, 223, 292293

defining success, 145147

dependency chart, 258260

design risk, 240241

earned value planning, 187194

educated decisions, 151153

efficiency analysis, 289290

effort estimations. See Effort estimations

general guidelines, 365

hierarchy of needs pyramid, 141144

importance of debriefing, 378379

importance of practice, 377378

initial staffing, 147151

introducing parallel work, 278280

introduction to, 139

The Method, 45

modeling risk, 300302

network diagram, 261263

planning assumptions, 263265

project cost/efficiency, 184187

quality. See Quality

risk. See Risk

risk crossover point. See Crossover point, of risk

roles and responsibilities, 194

scheduling activities, 176183

services and developers, 153157

standard design guidelines, 427429

time-cost curve, 290292

validation, 56

when to design a project, 361363

why project design? 139141

Project design, in action

call chain diagrams, 257259

compression using a second top developer, 276278

dependency chart, 258260

diagrams, 283

earned value planning in, 271

efficiency analysis, project design in action, 289290

milestones, 262

network diagrams, 261262, 278, 287

normal solution, 265276

outliers floats, adjusting, 295

parallel, working in, 278280

planning assumptions in, 263265

project costs in, 265, 274

risk, 293295, 302303

risk decompression, 295298

risk models, 300302

SDP (Software Development Plan) review, 303304

simulators, 284286

staffing, 266

static architecture, 256257

subcritical staffing, 272274

time-cost curve, 290292, 298300

Project design, TradeMe case study

comparing the options, 355

compressed solution, 346350

dependencies and project network, 339341

design by layers, 350352

individual activity estimations, 335338

introduction to, 335

normal solution, 341346

overall project estimation, 338

planning and risk, 355359

planning assumptions, 341

preparing for the SDP review, 359360

subcritical solution, 353354

Project duration

accelerating software projects, 207210

parallel work and cost, 213

schedule compression introduction, 210

time-cost curve. See Time-cost curve

working in parallel, 211213

working with better resources, 210211

Project efficiency

efficiency analysis, project design in action, 289290

introduction, 185186

in TradeMe project, 345346, 349350, 354

Project hand-off. See Hand-off, design

Project life cycles, 374

Project managers

assigning floats, 204

estimations and tracking, 160161

overview of job description, 149

Project metrics, collecting and analyzing, 382

Project network

network compression, 231233

network diagrams. See Network diagrams

overview of, 167170, 195

project efficiency and, 187

and resources, 175176

Project phases, 264

Project plans. See Plans/planning

Project progress. See also Tracking projects

combined with tracking effort, 395396

formula for, 392393

progress and earned value, 393

tracking progress and effort, 395396

Project tracking. See Tracking projects

Projections. See also Tracking projects

building trust with management, 404405

corrective actions, 398399

overestimating and corrective actions, 402403

progress and effort, 396398

project tracking and, 404

resource leak and corrective actions, 401402

staying on the plan, 399

underestimating and corrective actions, 400401

Projects, large. See Large projects

Property-like operations, service contracts and, 421

Prospect theory (Kahneman, Tversky), 236

Protocols, internal and external service protocols, 7475

Pub/Sub

in closed architecture, 78, 79

introduction, 46

in message bus, 118

in project design in action, 267, 281

in Utilities bar, 65

Pyramid, hierarchy of needs, 141144

Q

Quality

accelerating the project through quality assurance, 207208

culture and, 382383

failure of large projects, 327

importance of, 379380

quality-assurance activities, 381382

quality-control activities, 380381

Queueing

design don’ts, 80

between managers, 7879

message bus, 118

R

Ratio

developers to services, 153155

direct cost to indirect cost, 229

golden, 244

Managers-to-Engines, 6768

Regression testing

impossibility in functional system, 26

with infrastructure investment, 208

quality-control activities and, 381

with test engineers, 208

volatility-based decomposition, 34

Relative criticality, visualizing floats, 203

Repeatability level, hierarchy of needs, 142143, 209

Reporting progress

integration versus features, 146147

project manager’s function, 149

Required behaviors. See also Use cases

business logic layer and, 6162

classification guidelines, 65

rather than required functionality, 5657

Requirements analysis

axes of volatility, 3740

changes in requirements, 8385, 9293

creating a volatilities list, 42

functional decomposition, 14

functional trading system example, 2730

questions, 6667, 112

solutions masquerading as requirements, 4042

TradeMe system design case study, 112116

volatility-based decomposition, 3435

volatility-based example, 4247

ResourceAccess layer

architecture, 6364

closed architecture problems, 77

compression with simulators, 284

design don’ts, 8081

naming conventions, 6566

open architecture example, 7576

relevant design questions, 6667

reuse increases top-down, 69

TradeMe system design case study, 115

volatility decreases top-down, 6869

Resources

assigning services to developers, 153157

classic pitfalls, 174175

compressing with top resources, 368

core team. See Core team

critical path analysis, 171173

efficiency and staffing elasticity, 186

floats-based scheduling, 205206

initial staffing, 147151

leaks and corrective actions, 401402

network and, 175176

reasons for project design, 139141

staffing and cost elements, 228230

staffing distribution chart, 177179

staffing distribution mistakes, 179183

subcritical staffing, 272274

task continuity and, 157

TradeMe project design case study, 341342, 345346, 348350, 351352

underestimating and adding, 401

working with better, 210211

REST/WebAPI, microservices, 74

Return on investment (ROI)

debriefing project design, 378

network compression, 231

when to design a project, 361

Reuse

contracts as elements of, 414415

factoring contracts and, 415419, 422

increases top down, 69

ResourceAccess reuse, 64

Reviews, system level, 381

Risk

activity risk. See Activity risk

compression and, 248249

criticality risk. See Criticality risk

crossover point. See Crossover point, of risk

and direct cost, 241

execution risk, 249

Fibonacci risk. See Fibonacci risk

and floats, 199200, 203204, 206, 240241

geometric activity risk, 317318

geometric criticality risk, 316317

geometric Fibonacci risk, 317

geometric risk. See Geometric risk

importance of having an architect, 147148

and indirect cost, 228

introduction to, 235

metrics, 253

modeling, 235236, 300302

planning and, 370

project design in action, 293294, 302303

reasons for project design, 139141

time-risk curve, 236239

TradeMe project design case study, 355359

Risk decompression

compression and risk, 248249

decompression target, 251252, 313315

how to, 250

introduction to, 249250

project design in action, 295298

TradeMe project design case study, 355359

ROI. See Risk

Roles and phases table

project design in action, 264

TradeMe project design case study, 342

S

S curve, shallow. See Shallow S curve

Scheduling activities. See Compression, of schedule; Critical path analysis; Effort estimations; Floats; Project network

Scope

educated decisions, 151152

versus effort, 372373

projections and changes in, 404405

SDP (Software Development Plan) review

cost elements, 229

overview of, 153

project design in action, 262, 303304

shallow S chart, 190192

staffing distribution chart, 177178

TradeMe project design case study, 341, 359360

Security

in TradeMe system design case study, 115

in Utilities bar, 65

volatility, trading system example, 4243, 47

Semi-closed/open architecture, 7677

Senior developers

hand off projects, 374376

as junior architects, 376377

working with better resources, 210211

Sequence diagrams

introduction to, 8889

TradeMe system design case study, 133

Service contract design

design challenge, 423

design standard guidelines, 430

factoring contracts introduced, 415416

factoring down, 416417

factoring sideways, 417418

factoring up, 419

good designs, 407409

introduction to, 412

metrics, 422423

modularity and cost, 409411

services and contracts, 411415

size metrics, 420421

Service protocols, internal and external, 7475

Service requirement specification (SRS), 389

Service test plan (STP), 389

Services

assigning developers to, 153157

bloating and coupling, functional services, 1719

business logic service, 117119

clients: bloating and coupling, 1517

and contracts, 411415

development life cycle, 388389

granular in actor model, 121

service-level testing, 380

service names, 6566

size and quantity, 407411

smallest set of components, 8990

and subsystems, 7075

too many or too big, 1415

using services to cross layers, 5960

Shallow S curve. See also Earned value planning

earned value, 190194

in project design in action, 266, 271, 274

throughput analysis, 287

tracking project progress, 395

in TradeMe project design case study, 344, 349, 353

Simulators

compared with the normal solution, 286

in compression, 212, 280

compression using the, 284286

for god activities, 308

removing dependencies, 212

simulators solution in project design in action, 284286

Siren song of bad habits, 4748

Skills

identifying areas of volatility, 3436, 5253

improving development skills, 208209

practicing project design, 377378

Small projects, 331332

Smoke tests, daily, 380

Software architect. See Architects

Software Development Plan review. See SDP (Software Development Plan) review

Splitting activities, 211, 280

SRS (service requirement specification), 389

Staffing. See also Resources

calculating project cost, 184185

as cost element, 228230

distribution charts, 177183

distribution mistakes, 179183

elasticity of, 186

initial staffing in project design, 147151

planning requirements, 263265

project design in action, 266, 285286

smooth staffing distribution, 183

TradeMe project design case study, 341342, 345346, 348350, 351352

Standard operating procedures (SOPs), quality assurance, 382

Standards

for design. See Design standard

importance of, 209, 382

Static architecture

The Method structure, 6061

project design in action, 256257

TradeMe system design case study, 116

Status, of projects. See Project progress

Status reports. See Reporting progress

Storage volatility, trading system example, 43, 46

STP (service test plan), 389

Structural activities, TradeMe project, 336337

Structural dependencies, abstract. See also Activity dependencies, 339

Structure

classification guidelines, 6570

client and business logic layers, 6063

design don’ts, 8081

introduction to, 55

layered approach, 5860

open and closed architectures, 7579

ResourceAccess layer, 6364

subsystems and services, 7075

typical layers in The Method, 6061

use cases and requirements, 5658

Subcritical staffing

compared with load leveling, 183

introduction, 172

project complexity and, 322

project design in action, 272274

in staffing distribution chart, 180

TradeMe project design case study, 353354

Subsystems

and services, 7075

and the timeline, 373374

Success

defining, 145147

probability as a function of estimation, 158159

Swim lanes, activity diagrams, 105, 112, 124130

System design. See also Layered design; Requirements analysis

anti-design effort, 2021

architecture versus estimations, 365366

benefits of extensibility, 72

composition. See Composition

decomposition. See Decomposition

design decision tree, 78

design standard guidelines, 426427

introduction to The Method, 45

modular system design, 409411

structure. See Structure

validation, 56

System design, TradeMe case study

anti-design effort, 106108

business alignment, 108111

business objectives, 110111

core use cases, 104105

design validation, 124

glossary: four classic questions, 112

identifying areas of volatility, 112116

introduction to, 95

legacy system, 9799

legacy system: use cases, 100104

Message Is (application), 120121

new system/the company, 99

operational concepts, 119122

static architecture, 116119

system overview, 9697

use cases, 124132

workflow manager, 122123

System-level reviews, quality-control activities and, 381

T

Target, decompression

finding the, 313315

project design in action, recommended, 301

risk and, 251252

TradeMe project and finding the, 358359

Task continuity, assigning resources, 157

Team. See also Core team

debriefing, 379

design and team efficiency, 155157

and management trust, 382383

Technical manager. See Architects

Technology, training developers in new technology, 208209, 381382

Test engineers

accelerating the project, 208

in quality control activities, 380

Testing. See also Quality

functional and domain decomposition, 2526

quality-control activities, 380381

software testers, 208

STP (service test plan), 389

system testing, 380

volatility-based decomposition, 34

The Method. See Method

Thermodynamics, law of, 20

Throughput analysis, compression and, 287289

Time-cost curve

avoiding classic mistakes, 217218

discrete modeling, 217

finding normal solutions, 220221

first actual time-cost curve, 225226

introduction to, 214

points on the, 214216

project design in action, 290292, 298300

project feasibility, 218220

Time crunch, benefits of a, 6

Time, project. See Project duration

Time-risk curve

actual time-risk curve, 237239

introduction to, 236237

project design in action, 295298, 300301, 303

TradeMe project design case study, 356358

Timeline, subsystems and, 373374

Tools, estimation, 163

Total cost

versus indirect cost, 230

normal solution and minimum, 225228

total, direct and indirect costs, 223224

Total float. See also Floats

introduction to, 200201

proactive project management, 204

Tracking projects

accumulated effort, 394

accumulated indirect cost, 394396

activity life cycle and status introduction, 388389

activity status, 391392

effort estimations and, 160161

introduction to, 387388

overestimating and corrective actions, 402403

phase exit criteria, 389390

phase weight, 390391

project progress and earned value, 392

projections and corrective actions, 398399

projections introduction, 396398

resource leak and corrective actions, 401402

standard design guidelines, 429

tracking progress and effort, 395396

underestimating and corrective actions, 400401

TradeMe case study. See Project design, TradeMe case study; System design, TradeMe case study

TradeMe project design case study. See Project design, TradeMe case study

Training developers, in new technology, 208209, 381382

Transparency, communication and, 8

Trend lines

project design in action, time cost, 291

project design in action, time risk, 300

TradeMe project design case study, time risk, 357

U

UI (user interface) development, task continuity, 157

UML activity diagram. See Activity diagrams

UML sequence diagram. See Sequence diagrams

Underestimating projects

classic mistakes, 158159

corrective actions, 400401

Uneconomical zone, time-cost curve, 216

Unit testing, decomposition, 2526

Universal principles

design iteratively, build incrementally, 71

features as aspects of integration, 91

Never design against the requirements, 84

volatility-based decomposition, 3233

Use cases

business logic layer, 6163

call chain diagrams and, 8788

distilling dependencies from, 339

introduction to, 5658, 8586

introduction to swim lanes, 105

sequence diagrams and, 8889

smallest set of components, 8687, 8990

TradeMe system design case study, 100105, 124135

User interface (UI) development, task continuity, 157

Utilities

introduction, 65

problems in a closed architecture, 7778

TradeMe system design case study, 115

V

Validation. See also Call chain diagrams; Sequence diagrams

architecture, 87

system/project, 56

TradeMe system design case study, 124

Values, behavior vs., 370

Variable, volatile vs., 37

Vision, TradeMe system design case study, 109110

Volatility-based decomposition

axes of volatility, 3739

compared with functional decomposition, 3233

containing changes, 9293

definition and benefits of, 3032

design for your competitors, 5051

in design standard, 426

house (axes of volatility) example, 3940

layered approach, 5863

longevity, 5152

practicing, 5253

solutions masquerading as requirements, 4042

testing, 34

TradeMe system design case study, 112116, 122123

volatile versus variable, 37

volatility and the business, 4850

volatility-based trading system example, 4247

volatility challenge, 3437

Von Moltke, Helmuth. See Tracking projects

W

WCF (Windows Communication Foundation), 73

Wideband Delphi estimation technique, 163164

Windows Communication Foundation (WCF), 73

Workdays, calendar dates to, 176

Workflow Manager

choosing a workflow tool, 123

definition, 122

TradeMe system design case study, 122123

Workflow volatility, 44, 46

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

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