Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Imagine that Leonardo da Vinci, Tom Peters, and Robert Fulghum have co-authored a book on software development, and you’ll have an idea of what to expect in Jim McCarthy’s Dynamics of Software Development.
Jim’s book is a visionary, animated, and pragmatic guide to developing great software, maybe even historic software, on time. Every time. Almost. More important, Jim’s book is also about developing great software teams.
Jim McCarthy and I are partners. We work as part of a team that designs and develops software for Microsoft. Our software, Visual C++, is moderately successful by Microsoft standards. Hugely successful by anyone else’s standards. Since we first shooed version 1.0 out the door a little more than two years ago, we’ve sold over a million copies.
This book is not about Visual C++, though, and it’s not about Microsoft. It’s about the lessons we learned while we happened to be working at Microsoft and happened to be working on Visual C++.
Even at Microsoft, which is arguably pretty good at building software, our team has a great reputation for hitting its dates and exceeding expectations. Whereas it’s considered “OK” in some circles to routinely miss schedules—sometimes on the order of years—we’re at the point where we do something that would’ve been unthinkable a few years ago, and that’s still unthinkable for 99 percent of software teams: we ship software by subscription. A few years ago, our product release cycle was something like 12 to 24 months long. Today we’re down to 4 months.
I personally guarantee that if you’ve ever had anything at all to do with software development, you’ll relate to Jim’s stories and see the wisdom in his rules of thumb. Jim’s insight and advice are so perceptive, so appropriate, so right on, that you’ll just feel he knows what he’s talking about.
I also promise that no one will ever accuse Jim of taking an academic or formal approach to software development, or to management. This book comes out of the School of Experience, the School of Hard Knocks, the School of We-Never-Wanna-Lose-Another-Software-Review-Again.
Dynamics of Software Development grew out of a talk entitled 21 Rules of Thumb for Shipping Great Software that Jim has presented to standing room–only audiences around the planet. Altogether, tens of thousands of people have laughed, related to, and then applauded Jim’s simple yet profound approach to building great software and great software teams.
Jim’s rules of thumb, which seem (like Jim himself) to evolve and improve with time, embrace the whole of this business we love so much. It’s chaotic, it’s constantly changing, and it’s limitless. Moreover, it’s really fun. You get to meet colorful characters like Jim McCarthy, for instance.
But I’m getting ahead of myself.
I first met Jim McCarthy when he had but one rule of thumb: When slipping, don’t fall. Or at least that’s what he told me when I interviewed him in 1992. At the time, I had just settled in as the engineering manager for the now-defunct Microsoft Systems Languages group. Jim was from Whitewater and had been involved with the development of an early object-oriented programming language called Actor. What I remember most from the interview was that Jim was wearing cowboy boots. I remember thinking that this was the only interview I’d ever conducted in which both participants were wearing cowboy boots. Must’ve been an omen.
We didn’t make our hiring decision solely on the basis of Jim’s taste in boots, though, or on the basis of his single rule of thumb. Thinking back, I’d have to say that we hired Jim because he had another list in his pocket: The Top Ten Reasons You Should Hire Jim McCarthy.
That’s what Jim does. He makes lists. Lists of lessons, lists of observations, lists of things that work. Over the years, Jim’s pioneering rules of thumb have grown and grown, like Jack’s beanstalk, into this Microsoft Press title and the most sought-after keynote talk on the software circuit.
Jim and I have shared some great adventures in these last few years. We share some of them with you in this book. Enjoy.
Denis Gilbert
Head Coach, Visual C++
Microsoft Corporation
June 1995