Righting Software

Righting Software

$49.99

In stock
0 out of 5

$49.99

SKU: 9780136524038 Category:
Title Range Discount
Trade Discount 5 + 25%

Description

Right Your Software and Transform Your Career

Righting Software presents the proven, structured, and highly engineered approach to software design that renowned architect Juval Löwy has practiced and taught around the world. Although companies of every kind have successfully implemented his original design ideas across hundreds of systems, these insights have never before appeared in print.

Based on first principles in software engineering and a comprehensive set of matching tools and techniques, Löwy’s methodology integrates system design and project design. First, he describes the primary area where many software architects fail and shows how to decompose a system into smaller building blocks or services, based on volatility. Next, he shows how to flow an effective project design from the system design; how to accurately calculate the project duration, cost, and risk; and how to devise multiple execution options.

The method and principles in Righting Software apply regardless of your project and company size, technology, platform, or industry. Löwy starts the reader on a journey that addresses the critical challenges of software development today by righting software systems and projects as well as careers–and possibly the software industry as a whole. Software professionals, architects, project leads, or managers at any stage of their career will benefit greatly from this book, which provides guidance and knowledge that would otherwise take decades and many projects to acquire.

Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Righting Software presents the proven, structured, and highly engineered approach to software design that renowned architect Juval Löwy has practiced and taught around the world. Although companies of every kind have successfully implemented his original design ideas across hundreds of systems, these insights have never before appeared in print.

Based on first principles in software engineering and a comprehensive set of matching tools and techniques, Löwy’s methodology integrates system design and project design. First, he describes the primary area where many software architects fail and shows how to decompose a system into smaller building blocks or services, based on volatility. Next, he shows how to flow an effective project design from the system design; how to accurately calculate the project duration, cost, and risk; and how to devise multiple execution options.

The method and principles in Righting Software apply regardless of your project and company size, technology, platform, or industry. Löwy starts the reader on a journey that addresses the critical challenges of software development today by righting software systems and projects as well as careers–and possibly the software industry as a whole. Software professionals, architects, project leads, or managers at any stage of their career will benefit greatly from this book, which provides guidance and knowledge that would otherwise take decades and many projects to acquire.

  • Targets the specific reasons so many software projects still fail, even when they’re carefully architected and developed with agile methods
  • Helps students integrate the two key elements of software design that must work together: system design and project design
  • Includes a complete, start-to-finish case study
  • By Microsoft Software Legend Juval Löwy, one of the world’s leading experts in effective software engineering

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

Juval Löwy, founder of IDesign, is a master software architect specializing in system and project design. He has helped countless companies around the world deliver quality software on schedule and on budget. Recognized by Microsoft as one of the world’s top experts and industry leaders, he participated in internal strategic design reviews for C#, WCF, and related technologies, and was named a “Software Legend.” He has published several best-sellers and numerous articles on almost every aspect of modern software development. Löwy speaks frequently at major international software development conferences and conducts Master Classes around the world, teaching thousands of professionals the skills required of modern software architects and how to take an active role as design, process, and technology leaders.

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.
 
 
  • Targets the specific reasons so many software projects still fail, even when they’re carefully architected and developed with agile methods
  • Helps students integrate the two key elements of software design that must work together: system design and project design
  • Includes a complete, start-to-finish case study
  • By Microsoft Software Legend Juval Löwy, one of the world’s leading experts in effective software engineering
A true Master Class in software design: first principles and comprehensive techniques that apply to software systems of all sizes and types
  • Targets the specific reasons so many software projects still fail, even when they’re carefully architected and and how to correctly design the system based on volatility
  • Helps you integrate the two key elements of software design that must work together: system design and project design
  • Includes a complete, start-to-finish case study
  • By Microsoft Software Legend Juval Löwy, one of the world’s leading experts in effective software engineering

Additional information

Dimensions 0.90 × 7.00 × 9.00 in
Imprint

Format

ISBN-13

ISBN-10

Author

Subjects

professional, higher education, software engineering, Employability, IT Professional, Y-AN SOFTWARE ENGINEERING, software architecture, software design, decomposition, software design validation, software risk, system design, software project design, mythical man month, why software projects fail