Righting Software, 1st edition

Published by Addison-Wesley Professional (November 27, 2019) © 2020

  • Juval Löwy
Products list
  • Available for purchase from all major ebook resellers, including InformIT.com
Products list

Details

  • A print text
  • Free shipping
  • Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
Even now, software projects keep failing at an alarming rate, many that make it out the door are rife with defects, and even “reliable” software systems often don’t meet expectations. Rank and file programmers act as mere technicians; software architects are inadequately trained for success, and the information available to them is haphazard, inconsistent, or wrong. In Righting Software, Juval Löwy helps overcome these problems by introducing a structured and highly engineered approach for system and project design that’s proven to work. 

Löwy’s software design methodology integrates two components that are intimately connected: system design (commonly known as architecture) and project design. Together, these comprise software design. For system design, he presents an engineered method for decomposing a system into smaller building blocks, or services – addressing the area where the vast majority of software architects currently fail. Next, he shows how to flow an effective project design from your system design, accurately calculating planned duration, cost, and risk, and devising several good execution options. 
The techniques and ideas in Righting Software apply regardless of software technologies, platforms, project size, company size, or industry – and they’re specifically designed to address today’s core causes of software failure.
Preface xxiii
About the Author xxxiii


Chapter 1: The Method 3
What Is The Method? 4
What The Method Is Not 9

Part I: System Design 11

Chapter 2: Decomposition 13

Avoid Functional Decomposition 14
Volatility-Based Decomposition 30
Identifying Volatility 37

Chapter 3: Structure 55
Use Cases and Requirements 56
Layered Approach 58
Typical Layers 60
Classification Guidelines 65
Subsystems and Services 70
Open and Closed Architectures 75

Chapter 4: Composition 83
Requirements and Changes 83
Composable Design 85
There Is No Feature 91
Handling Change 92

Chapter 5: System Design Example 95
System Overview 96
The Anti-Design Effort 106
Business Alignment 108
The Architecture 111
Design Validation 124
What’s Next? 135

Part II: Project Design 137

Chapter 6: Motivation 139
Why Project Design? 139

Chapter 7: Project Design Overview 145
Defining Success 145
Project Initial Staffing 147
Educated Decisions 151
Services and Developers 153
Effort Estimations 157
Critical Path Analysis 166
Scheduling Activities 176
Project Cost 184
Earned Value Planning 187
Roles and Responsibilities 194

Chapter 8: Network and Float 195
The Network Diagram 195
Floats 199
Floats-Based Scheduling 205

Chapter 9: Time and Cost 207
Accelerating Software Projects 207
Schedule Compression 210
Time–Cost Curve 214
Project Cost Elements 222
Network Compression 231

Chapter 10: Risk 235
Choosing Options 235
Time–Risk Curve 236
Risk Modeling 239
Compression and Risk 248
Risk Decompression 249
Risk Metrics 253

Chapter 11: Project Design in Action 255
The Mission 255
Finding the Normal Solution 265
Network Compression 276
Efficiency Analysis 289
Time–Cost Curve 290
Planning and Risk 293
SDP Review 303

Chapter 12: Advanced Techniques 307
God Activities 307
Risk Crossover Point 308
Finding the Decompression Target 313
Geometric Risk 315
Execution Complexity 320
Very Large Projects 324
Small Projects 331
Design by Layers 332

Chapter 13: Project Design Example 335
Estimations 335
Dependencies and Project Network 339
The Normal Solution 341
Compressed Solution 346
Design by Layers 350
Subcritical Solution 353
Comparing the Options 355
Planning and Risk 355
Preparing for the SDP Review 359

Chapter 14: Concluding Thoughts 361
When to Design a Project 361
General Guidelines 365
Design of Project Design 370
In Perspective 372
The Hand-Off 374
In Practice 377
Debriefing Project Design 378
About Quality 379

Appendix A: Project Tracking 387
Activity Life Cycle and Status 388
Project Status 392
Tracking Progress and Effort 395
Projections 396
Projections and Corrective Actions 398
More on Projections 404

Appendix B: Service Contract Design 407
Is This a Good Design? 407
Modularity and Cost 409
Services and Contracts 411
Factoring Contracts 415
Contract Design Metrics 419
The Contract Design Challenge 423

Appendix C: Design Standard 425
The Prime Directive 426
Directives 426
System Design Guidelines 426
Project Design Guidelines 427
Project Tracking Guidelines 429
Service Contract Design Guidelines 430

Index 431

Need help? Get in touch