Description
Book SynopsisJuval 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.
Trade ReviewPraise for Juval Löwy’s Software Architect Course
“I attended both the Architect’s Master Class and the Project Design Master Class. Before these two classes I had almost lost all hope of ever being able to figure out why the efforts of my team were never leading to a successful end, and I was struggling to find a working solution to stop the insane death march we were on. The Master Classes opened my eyes to a world where software development is elevated to the level of all other engineering disciplines and is conducted in a professional, predictable, and reliable manner, resulting in high-quality working software developed on time and within budget. The knowledge gained is priceless! From revealing how to create a solid and sound architecture, which withstands ever-changing user requirements, to the intricate details on how to plan and guide the project to a successful end—all this was presented with expertise and professionalism that are hard to match. Considering that every bit of distilled truth Juval shared with us in class is acquired, tested, and proven in real life, it transforms this learning experience into a powerful body of knowledge that is an absolute necessity for anyone who aspires to be a Software Architect.”
–Rossen Totev, software architect/project lead
“The Project Design Master Class is a career-changing event. Having come from an environment where deadlines and budgets are almost pathologically abused, having the opportunity to learn from Juval was a godsend. Piece by piece he provided the parts and the appropriate tools for properly designing a project. The result is that costs and timelines are kept in check in the dynamic and even chaotic environment of modern software development. Juval says that you are going to engage in asymmetric warfare against overdue and over cost, and you walk away truly feeling that you have a gun to take to a knife fight. There is no magic—only the application of basic engineering and manufacturing tenets to software—but you will go back to your office feeling like a wizard.”
–Matt Robold, software development manager, West Covina Service Group
“The software project I work on was plagued with breakneck deadlines for years. Trying to understand software development methodologies and proper process felt like an energy drain because I had to battle management’s unwillingness to change, on top of meeting the unreasonable demands of my clients. I was fighting a war on two fronts and felt hopeless. I felt like a rMnin. The Master Class provided a rush of clarity I never knew existed. It taught the exact knowledge that I was searching for. I learned profound techniques that transformed my understanding of how software projects operate. I now have the tools to efficiently and effectively navigate my project in a torrent of never-ending requirement changes. In a world of chaos this class brought order. I am forever grateful to IDesign. My life will never be the same.”
–Aaron Friedman, software architect
“Life changing. I feel like a tuned piano after collecting dust for a couple of decades.”
–Jordan Jan, CTO/architect
“Fantastic experience. Changed my way of thinking on how to approach software development. I always knew some of what I was thinking was right with regard to design and coding. I never could express it in words but now I have them. It not only affects my way of thinking about software design but also other types of design.”
–Lee Messick, lead architect
“The course was amazing. Easily this was the most intense but rewarding week of my professional life.”
–Stoil Pankov, software architect
“Learning from Juval Lowy has changed my life. I went from being just a developer to being a true software architect, applying engineering principles from other disciplines to design not just software, but also my career.”
–Kory Torgersen, software architect
“The Architect Master Class is a life lesson on skills and design—which I took twice. It was so transformational the first time I attended that I wished I had taken this class decades back, when I started my career. Even taking it for the second time has only gotten me to 25% because the ideas are so profound. The required brain rewiring and unlearning is really painful, but I needed to come back again with more of my colleagues. Finally, every day that goes by I reflect back on what Juval said in the classes and use that to help my teams implementing even the small things so that we can all eventually call ourselves Professional Engineers. (P.S. I took 100 pages of notes second time around!)”
–Jaysu Jeyachandran, software development manager, Nielsen
“If you are frustrated, lacking energy, and demotivated after seeing and experiencing many failed attempts of our industry, the class is a boost of rejuvenation. It takes you to the next level of professional maturity and also gives you the hope and confidence that you can apply things properly. You will leave the Project Design Master Class with a new mindset and enough priceless tools that will give you no excuse to ever fail a software project. You get to practice, you get your hands dirty, you get insight, and experience. Yes, you CAN be accurate when it is time to provide your stakeholders with the cost, the time, and the risk of a project. Now, just don’t wait for a company to send you to this class. If you are serious about your career, you should hurry to take this or any IDesign Master Classes. It is the best self-investment you can make. Thank the entire great team of IDesign for their continuous efforts in helping the software industry become a solid engineering discipline.”
–Lucian Marian, software architect, Mirabel
“As someone in their late twenties, relatively early in their career, I can honestly say that this course has changed my life and the way I view my career path. I honestly expect this to be one of the most pivotal points of my life.”
–Alex Karpowich, software architect
“I wanted to thank you for a (professional) life-changing week. Usually I can’t sit at class more than 50% of the time–it is boring and they don’t teach me anything I couldn’t teach myself or already know. In the Architect’s Master Class I sat for nine hours a day and couldn’t get enough of it: I learned what my responsibilities are as an architect (I thought the architect is only the software designer), the engineering aspect of software, the importance of delivering not only on time but also on budget and on quality, not to wait to ‘grow’ to be an architect but to manage my career, and how to quantify and measure what I previously considered as hunches. I have much more insight from this week and many pieces are now in place. I can’t wait to attend the next Master Class.”
–Itai Zolberg, software architect
Table of ContentsPreface 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