Many of the designations used by manufacturers and sellers to Associate Publisher distinguish their products are claimed as trademarks. Where Greg Wiegand those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been Senior Acquisitions Editor printed with initial capital letters or in all capitals. Katherine Bull Photo of Steve Wozniak by Al Luckow. Development Editor Photo of Diane Greene by Sunny Scott. Kendell Lumsden The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any Marketing Manager kind and assume no responsibility for errors or omissions. No Judi Morrison liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or Publicist programs contained herein. Heather Fox The publisher offers excellent discounts on this book when Technical Reviewers ordered in quantity for bulk purchases or special sales, which Joseph Hellerstein may include electronic versions and/or custom covers and content particular to your business, training goals, marketing Rasekh Rifaat focus, and branding interests. For more information, please Danny Sadinoff contact: Managing Editor U.S. Corporate and Government Sales Kristy Hart (800) 382-3419 [email protected] Senior Project Editor For sales outside the United States please contact: Lori Lyons International Sales Copy Editor [email protected] Hansing Editorial Services Visit us on the Web: informit.com/ph Indexer Library of Congress Cataloging-in-Publication Data Publishing Words Lightstone, Sam. Making it big in software : get the job—work the org.— Proofreader become great / Sam Lightstone. Language Logistics, LLC p. cm. Includes index. Publishing Coordinator ISBN 978-0-13-705967-6 Cindy Teeters 1. Computer programming—Vocational guidance. 2. Cover Designer Computer software industry—Vocational guidance. 3. Computer software developers—Interviews. I. Title. Alan Clements QA76.25.L54 2010 Compositor 005.1023—dc22 2010000235 Nonie Ratcliff Copyright ©2010 Sam Lightstone. Copyright claimed in entire Manufacturing Buyer work exclusive of the reproduction of US Patent No. 6,161,223 Dan Uhrig All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to: Pearson Education, Inc Rights and Contracts Department 501 Boylston Street, Suite 900 Boston, MA 02116 Fax (617) 671 3447 ISBN-13: 978-0-137-05967-6 ISBN-10: 0-137-05967-1 Text printed in the United States on recycled paper at R.R. Donnelley & Sons, Crawfordsville, Indiana First printing March 2010 Preface

“Thus the sage Chaninah would say: Much have I learned from my teachers and even more from my friends but from my students I have learned the most of all” —Ethics of the Fathers, circa 200 CE

You went to university to study a profession, but they were hell-bent on giv- ing you an education instead. Unfortunately, there’s a gap between the for- mal education we receive in school and the skills we need to build truly successful careers. Not only are many of the basic skills for professional growth not taught in school, but to a large degree they aren’t taught any- where. The dynamic and somewhat bohemian quality of the software indus- try introduces unique career challenges. Our industry includes many of the trappings of corporate American culture, but many odd divergences. It’s a domain where teenage hackers compete head-to-head with MIT Ph.D. gradu- ates and where crinkled T-shirts and unlaced running shoes coexist with stock options and executive titles. Making it Big in Software is my attempt to share strategies for traversing these unique dynamics and maximizing your professional potential. This book also includes interviews with some of the most influential software innovators and leaders of the past 30 years—people who literally changed the world. In 1991, I was a fourth-year electrical engineering student at Queen’s University, trying to finish up my degree and get a job. Every Friday after- noon the electrical engineering school invited a guest speaker to inspire and enlighten our young, impressionable minds. These talks covered a wide range of technological topics; we discussed everything from high voltage transmis- sion lines to CMOS VLSI circuit design. I confess that most of these sessions were less than inspirational for me. One day, a guest speaker arrived with a radically different message. He spoke to us about “life in the real world” and what we could expect after we graduated. I was riveted. This is the only fourth-year seminar from which I still have the notes. Most of my class- mates, like me, were in the dark about what our lives might be like after grad- uation. Even those students who had managed to find summer positions in XII MAKING IT BIG IN SOFTWARE engineering were limited in their experiences by the normal constraints of student positions. I decided then that if I ever could, I would return the professional courtesy and volunteer to speak to university students. In the late 1990s and early 2000s, I began a series of career talks at leading universities. The lecture notes from my talks, often delivered to capacity-filled auditoriums, became the basis for this book. Some of the ideas are my own, but many are culled from the leading business thinkers and software development evangelists of the past three decades. Hopefully, this book succeeds in providing you what school and daily work life generally cannot: the tools with which to make it BIG.

Audience

This is a book for software professionals of all ages and levels, whether they’re just trying to break into the field or have decades of experience. Writing a book with that range isn’t easy; every age group and community has a different set of concerns that affect what’s interesting to them. After nearly two decades of recruiting, managing, and mentoring software profes- sionals, there are some common themes I’ve found that cross most boundaries of age and experience. I’ve tried to make those themes central to the book. I hope this book will also be of interest to students and teachers of computer science, providing a colorful look into the less mathematical aspects of the profession.

Organization of This Book

The book is divided into three major sections: fundamentals, leadership, and greatness. “Part I, Fundamentals,” discusses the major building blocks of a great career in software, including the fundamentals of good software prod- ucts, major skills and leading programming languages, how to land a job, and how to operate effectively within a software team (including some pitfalls to avoid). “Part II, Leadership,” takes the reader into a series of topics around driving and leading change and operating in a much more harried profes- sional environment. Leaders, almost by definition, need to multitask and drive parallel agendas forward while deflecting myriad forces of negativity. This section covers important topics related to “working an organization,” how to build and pitch successful project proposals, career advancement, time PREFACE XIII management, avoiding software project overruns, work-life balance, and higher-level management and leadership insights. “Part III, Greatness,” dis- cusses topics around innovation—how to reach the pinnacle of the profession (becoming a software visionary or guru), how to start your own business, a review of compensation rates, and a retrospective on things I wish I had known earlier in my career. Between the chapters you’ll find a number of interviews I did with leading personalities. These interviews deliberately include a mix of business execu- tives, researchers, and industry leaders. I feel it’s important for readers to get perspectives broader than my own. To enhance the structure of the book, the interviews are all marked with a gray bar along the leaf edge of their pages, including the interviewee’s name. I’ve made a moderate effort to place the interviews near related chapters (for example, two startup sensations, Marc Benioff CEO and founder of Salesforce.com and Diane Greene past CEO and co-founder of VMware, frame the chapter on software startups). Some inter- views didn’t have a clear correlation to a specific topic, so there’s an admit- tedly arbitrary aspect in the placement of a few. It’s absolutely not the case that interviews placed in the Fundamentals section are any less profound than those in the Greatness section. I think it’s fair to say that everyone I interviewed has reached the heights of the profession. After all, that’s what made them such interesting people to speak with.

Feedback

If you have feedback on the book or find any errors, please contact me. You can send feedback to [email protected]. Although I can’t guarantee a reply to every email, I’ll make sure that every email is read.

Sam Lightstone

To learn more about Making it Big in Software, including upcoming events and additional publications, please go to: www.MakingItBigCareers.com CHAPTER 1 Making It Big

“Success didn’t spoil me, I’ve always been insufferable.” —Fran Lebowitz (1950– )

Software is an amazing place to build a professional career. In few other domains can you have so much fun with so much positive potential to change the world, while pulling down a decent living to boot. Software has made complex technology accessible, and allowed us to control systems and processes in a way that manual operators could once only dream about. We’ve shrunken the world, brought people and societies to greater common understanding, and allowed families and friends to connect when they are apart. Business and researchers have faster and more accurate access to strategic business information, historical records, data analysis, and mathe- matical optimization. The world is creating nearly 15 petabytes of digital information daily, and by 2011 an estimated 2 billion people will be con- nected to the Internet.1 Almost everything that has an electrical power source, from handheld phones to refrigerators, is running software. That’s what I call demand. All that demand means a world of opportunity for software profes- sionals. With all that potential, it’s worth knowing what it takes to evolve your career to its highest possible potential for impact, leadership, innova- tion, freedom, financial compensation, and fun. Making It Big in Software is a book about maximizing your career success and your professional impact. From getting a job and honing key skills to becoming a leader and innovator, this book walks you through the skills,

1 Steve Mills, Senior Vice President IBM Software Group, Keynote address, IBM Analyst Connect Symposium, Stamford CT, Nov 2009. CHAPTER 1 MAKING IT BIG 3 behaviors, and personal qualities you need to reach your professional poten- tial. In addition to my own thoughts, stories, and metrics, I’ve included a number of interviews with industry-leading luminaries between the chapters. These interviews with major executives, innovators, and researchers provide fresh insights into the art and business of the software professional. Their ideas are often profound and sometimes controversial. Having gone through the extraordinary process of interviewing all of them, I found it profoundly interesting to see the points of convergence and variation among them on topics from time management to the value of graduate degrees. One of the major points of convergence is that all these leaders and innovators clearly love what they do. It’s both a cause and an effect: Loving what you do is the most necessary of all ingredients for success, but it’s also true that being suc- cessful allows people to spend more of their time on things they love.

What Do “Big Shots” in Software Do?

Success means different things to different people. For many people, the first and most important meaning of success is financial compensation. The more money you earn for what you do, the more “successful” you are. “He’s a very successful lawyer, a partner in the firm.” “She’s a successful entrepreneur. Her business grew into an international conglomerate.” “He’s a successful sur- geon. He earns enough in six months to spend the rest of the year traveling.” We’re all accustomed to that way of thinking about success. Make no mistake about it, financial rewards are indeed a very significant part of what most people consider career success, and for some this is the most important com- ponent. However, it’s a shallow mind indeed that considers it the only com- ponent. Beyond financial rewards lie several other measures of success, and the relative value of each varies from one person to the next. Here are some other hallmarks of success gleaned from the interviews in this book, as well as from decades of discussion with industry leaders at major software com- panies around the world:

. Fun and interesting work . Corporate and industrial influence . The betterment of society . Freedom to work on what you want, when you want . Fame . Travel 4 MAKING IT BIG IN SOFTWARE

Successful people in software are defined by some or all of the attributes in this list, and financial rewards follow as a result. For example, most of the software giants interviewed in this book define their own success by their contributions to the industry and their impact on society rather than by their bank balances. Even so, several of them are very wealthy. Although relatively few people in the software industry become fabulously rich, it’s a surprising and hopeful fact that the short list of the world’s wealthiest people contains several notable software gurus: founder Bill Gates, founders and , Oracle founder Larry Ellison, and Facebook founder Mark Zuckerberg, just to name a few. Microsoft’s success created many millionaires in the 1980s and 1990s through employee stock option programs, as did several other high-flying software firms of the period. Indeed, if becoming rich is your goal, there’s precedent for doing it through a career in software. Many a software millionaire has been made by software developers just doing their thing, writing great code and marking just the right time to “cash out.” Corporate and industrial influence comes after you have made a reputa- tion for yourself as an industry expert in a technical field or as an executive with a track record of leading great success. When that happens, your opin- ion is sought to direct the strategic investments in new technologies, to approve standards, and to help foster industrial research efforts. This gives you significant influence over how technology evolves, not only in your own company, but also across the world. Technology aids in the betterment of society, though many people feel that it continues to be our downfall and that in some pockets of life technology will always do more harm than good. Even so, the general purpose of tech- nology is the betterment of society: reducing humankind’s labor and suffer- ing, engendering freedom, and advancing our exploration and understanding of the universe. Software big shots, our business strategists and technical architects, are the people who have the greatest influence on technology. Okay, it takes a village to raise a child, and it takes a wide range of profes- sionals to successfully bring good software to market, including wise investors, savvy managers, salespeople and sales channels, and a lot of luck. But nobody influences the shape of technology more than those who create it. Having read this, the venture capitalists are now red-faced and fuming, the salespeople are pounding their tightened fists, and the project managers are rolling their eyes, but I stand by it. Certainly, without these people, most proj- ects never achieve lift-off. But although they enable, they do not shape, define, or mold the creative expression of the engineering team the way the technical and executive visionaries do. CHAPTER 1 MAKING IT BIG 5

Follow Your Bliss

Software is one of the few professions that allows its practitioners to come to work and dream, solve puzzles, surf the Internet, and then collect a handsome paycheck at the end of the day. Whether you’re writing your very first “Hello world” program in a new computer language or putting the finishing touches on a new cloud computing infrastructure for your corporate data center, every programmer has enjoyed the remarkable sensation of seeing technol- ogy spring to life when their software runs for the first time. Not only is soft- ware fun, but having fun in software is a catalyst for a successful career. It was striking to me how often this theme came up in the interviews for this book. Almost everyone I interviewed commented on the importance of find- ing enjoyable work. If all the gurus seemed to agree on one piece of advice, this was it. Check out the consistency across these statements:

“If you are entering the field, find something that you really love doing and get excited about doing, so that you almost feel as if you should be paying them to come to work. I think you need to be happy to be successful, not successful to be happy.” —David Vaskevitch, Microsoft CTO “Be sure that you like what you do at work and that you like the people you work with—you’ll have to live with them for a long time.” —Bjarne Stroustrup, inventor of C++ “The more you can merge what you want to do with your job, the better.” —Steve Wozniak, inventor of the Apple computer “One piece of advice I would give people is to always make sure you’re in an environment that leaves you feeling empowered to fully use your talents, and that you feel appreciated for the work you do.” —Diane Greene, co-founder and past CEO of VMware “I believe that I just work better if I enjoy what I’m doing. I suspect that if anybody wants to be ‘the best’ at whatever they do, they have to realize that it takes decades of hard work. And the main way to actually keep doing decades of hard work is to simply enjoy it so much that you don’t want to stop.” —Linus Torvalds, original author of GNU/Linux 6 MAKING IT BIG IN SOFTWARE

“…if you can find a job that you really like, the better you’re gonna be. You’re gonna be more productive. You’re going to be happier. You’re going to be more satisfied in general with what’s going on.” —Ray Tomlinson, inventor of email “Follow your bliss.” —Jon Bentley, author of Programming Pearls “For me, work is really enjoyable, making it hard to define where work ends and fun begins.” —Marissa Mayer, Google VP “That’s what’s great—my career is a lot of fun. I don’t view it as work. Computers have always been my hobby. The fact that I get to go to work and work on my hobby and get paid for it is just fantastic.” —Mark Russinovich, Microsoft Technical Fellow “What is really important is to make sure that they are growing, contributing, and enjoying what they do.” —John Schwarz, CEO Business Objects “My number one piece of advice is to have fun.” —James Gosling, inventor of Java, Sun VP and Fellow “…follow your passion. Most of all, be sure you have fun in the process.” —Grady Booch, IBM Fellow “Any career is a marathon race, not a sprint. For it to be rewarding over years and decades, it has to be something you like to do. As you consider career decisions, listen to your heart as well as your head. Your head will tell you how to succeed in a traditional sense. Your heart will tell you what fulfills you, what you find fun. Here is a simple metric: Ask yourself how fast the time passes at work. If you “lose yourself” in your work—that is, if time passes quickly—that is a powerful, positive message.” —Tom Malloy, Chief Software Architect for Adobe Systems

Having fun is critical to career success in any profession; those of us in software are fortunate to be in a place where having fun is easy. When you’re having fun, you’ll work with more enthusiasm and more energy, and you’ll get more done. The natural frustrations of professional life will slide past you, paled by the enthusiasm and excitement of your work. As Grady Booch told CHAPTER 1 MAKING IT BIG 7 me in my interview with him, “I can’t think of any other industry that has impacted every other business in the way that we as humans and civilizations connect. What a cool business to be in.”

Why Bother?

But with long hours, considerable stress, and no guarantees, the obvious question is whether it’s even worth trying to make it big. I believe the answer is unequivocally yes. The most compelling reason is that, in most cases, you have to show up to the office and work like a lunatic anyway—it’s really not optional (if you want to eat). So if the difference between being a midlevel career programmer and making it big is an incremental strategic investment of time and energy, then it’s more than worth it for you and for your family. In the long run, the benefits are significant: a more satisfying career, greater influence and impact within your company and the industry, more fun, and more money. And while there may not be less “crap” to do, at least it’s strate- gic work rather than “grunt” work. How much more money is there really, after all that effort? According to data at PayScale.com and the United States Bureau of Labor Statistics, in 2007, the lowest-paid software engineers earned approximately $38,000, while senior architects earned more than $211,000, a difference of 5.55 times. If you add to this the benefits from bonuses, pre- ferred stock, and stock options that are always dolled out more generously to the senior staff, the variance in compensation between the ends of the job performance spectrum can be pretty astounding. Plus, making it big gives you the freedom to work on what you want to. That broad statement is true in degrees, depending on just how big you make it. The higher up the totem pole of technology you climb, the more freedom you can have in what you work on. The late computer scientist Jim Gray, who was one of the founders of modern database systems and a leader in scalable computing before his mysterious disappearance in a boating accident on a clear, calm day in 2007, was a great example. Before recruiting Gray, Microsoft had always resisted the pressure to establish R&D sites outside of their core location in Redmond, Washington. Gray just wasn’t interested in living there. No problem. In 1995, they built their new laboratory, called the Microsoft Bay Area Research Center (BARC), around him. Some may believe that Microsoft had decided to finally tap into the incredible pool of software talent and dynamism in the Bay area, but in truth, the move to open BARC was motivated heavily by a desire to attract Gray to Microsoft. According to Senior Vice President of Microsoft Research Rick Rashid, “If Jim had wanted a lab in Monte Carlo, we would have built a lab in Monte Carlo.” That’s the 8 MAKING IT BIG IN SOFTWARE freedom to work not only on what you want, but where you want! Why does this happen? This kind of freedom comes with the value you provide through your creativity, insight, and industrial influence. Big shots in technology have more “eureka moments” per unit time than the little shots. They are leaders and connectors. They are the charismatic inspirations for new ideas who build consensus to forge ahead on new tech- nology initiatives. They have the ideas that create and shape the technology of the future. This makes them sensationally valuable assets to any enterprise. The more valuable you are, the more control you have over your destiny. Your employer, colleagues, and industrial associates will do more for you and give you that freedom, to keep you happy and focused on what you have excelled at. Notice that I said “freedom to work on what you want,” but I did not say the freedom to work the amount you want. In software, successful people generally work hard. The climb to fame and fortune in software gen- erally exacerbates this fate until you decide you have climbed enough, done enough, and earned enough, that you’re willing to let your contributions plateau. Fame awaits those who make it big. When eWeek, TechWorld, and other magazines want to get the inside scoop on emerging technology, they turn to the technical gurus. Big shots in software write the books, publish the papers, present the lectures, and are interviewed for columns that present technology to the world. Fame isn’t all it’s cracked up to be, but whatever it is, the big shots get a larger share. Finally, I contend that those who make it big have more meaningful and fulfilling jobs. More satisfying work means you’ll have more enthusiasm for what you do. Enthusiasm means you’ll work harder and be more profoundly inspired. As a result, you’ll not only be more successful, but you’ll have a good time doing it. Why is that?

. The most successful people have larger degrees of control on what they work on, so they can bias their work toward the things they enjoy. Perhaps just as important, when you work on the things you enjoy, your enthusiasm will rub off on others, and that’s a kind of leadership, too. . Big shots don’t do grunt work. The least pleasant and lower-skilled tasks are delegated to the junior employees, while senior folks focus on the strategic items. This is a gross oversimplification. After all, senior staff also gets involved in decisions to cancel technology proj- ects, meetings to lay off staff (possibly including co-workers they have known for years), and painful arguments over technical strategy. CHAPTER 1 MAKING IT BIG 9

It’s definitely not all fun and games. Some of these responsibilities include miserable experiences you wouldn’t wish on your worst enemy, even after he’d stabbed you in the back, kicked your dog, stolen your life savings, and burned down your home. As miserable as some of the tasks of senior staff can be, they tend to be strategic in nature. Their influence is large and profound. The process of execut- ing these tasks can be gut-wrenching, but there’s a concomitant sense of accomplishment of having made a radical and profound difference. Okay, it’s hell, but it’s hell that matters. In contrast, some of the mis- erable tasks relegated to junior staff are more likely described as just plain miserable.

One constant runs throughout: Nobody makes it big without a large and sustained outlay of effort. Success in achieving your long-term goals always means hard work for several years.

It’s Not as Hard as You Think

Throughout the chapters ahead, you’ll see that making it big isn’t the impos- sible elusive dream that some people think it is. Making it big requires a mod- erately consistent effort and the careful and strategic use of time to focus your energy and talents in meaningful ways. Yes, it’s true that most success- ful people in software tend to work longer hours than career journeymen, but you don’t need to be a workaholic to get to the top. Working smart is always more important than working hard. In fact, although the most successful peo- ple work hard, long hours, their career success is gated more by what they do than by how much of it. The chapters ahead tell the tale. Index

Symbols life impacts work, 247-248 Malloy, Tom, 256 @ symbol, 100, 105-106 Mayer, Marissa, 29 “2008 Compensation and Entrepreneurship Norvig, Peter, 125 Report in IT,” 379 organizational culture, 246-247 repartitioning time, 245 A Russinovich, Mark, 197 Schwarz, John, 159 accomplishments Stallman, Richard, 83 Bentley, Jon, 38 stressors, 248 Booch, Grady, 238 Stroustrup, Bjarne, 65 communicating, 179-180 tips, 246 Greene, Diane, 397 Tomlinson, Ray, 108 Kahn, Dr. Robert, 325 Torvalds, Linus, 174 Malloy, Tom, 251-252, 257 Vaskevitch, David, 217 Mayer, Marissa, 26 work environment, 247 Norvig, Peter, 123 working backward, 249 Russinovich, Mark, 195 acquisition of startups Schwarz, John, 156 benefits, 392 Stallman, Richard, 81 categories, 392-393 Stroustrup, Bjarne, 63 getting the word out to potential Tomlinson, Ray, 102 buyers, 394 Torvalds, Linus, 171 growth comparison, 390-392 Wozniak, Steve, 355 problems, 394-395 achieving work-life balance, 249 adaptability (startups), 389-390 assessing, 249 Advanced Logistics Project (ALP), 101 Benioff, Marc, 377 advancement Bentley, Jon, 40 accomplishments, communicating, Booch, Grady, 241 179-180 defining yourself, 245 credibility, 178 Gosling, James, 285 evaluations, 177 Greene, Diane, 401 goal-oriented careers, 181-184 Kahn, Dr. Robert, 330 management peer impact, 187-188

418 INDEX 419

manager influence, 185 personal future, 357 career discussions, 186-187 personal success, 356 helping managers look good, 185 pet peeves, 355 technical/organizational assistance, 185 Tetris, playing, 357 promotibility inversion, 189-191 time management, 357 promoting others, 189 trends/innovations, 358 advice viewing self as hardware person, executives 353-354 Benioff, Marc, 372-373 architects, 112 Greene, Diane, 399 The Art of Japanese Management field opportunities, 30 (Pascale), 302 startups, 372 assertions, 89 success assessing, work-life balance, 249 Benioff, Marc, 371, 375, 378 attracting new customers, 15 Bentley, Jon, 41-42 audiences. See customers Booch, Grady, 242-243 authority Gosling, James, 286-287 leadership, 291-294 Greene, Diane, 403 visionaries, 333-334 Kahn, Dr. Robert, 328, 331 world-class status, 334 Malloy, Tom, 257-259 awards (resumés), 47 Mayer, Marissa, 27 Norvig, Peter, 126 Russinovich, Mark, 198-200 B Schwarz, John, 159-160 bad projects, 11-12 Stallman, Richard, 83 balancing work-life, 244 Stroustrup, Bjarne, 66 achieving by working backward, 249 Tomlinson, Ray, 106, 109 assessing, 249 Torvalds, Linus, 175 Benioff, Marc, 377 Vaskevitch, David, 216-218 Bentley, Jon, 40 Wozniak, Steve, 358-359 Booch, Grady, 241 affiliative leadership, 292 defining yourself, 245 affinitizing, 319 Gosling, James, 285 aggressive estimates, 228 Greene, Diane, 401 agile development process methodology, 272 Kahn, Dr. Robert, 330 agreements, 151-153 life impacts work, 247-248 All the President’s Men, 300 Malloy, Tom, 256 ALP (Advanced Logistics Project), 101 Mayer, Marissa, 29 angel funding, 384 Norvig, Peter, 125 Apple organizational culture, 246-247 computer development, 336 repartitioning time, 245 iPhone, 310 Russinovich, Mark, 197 Jobs, Steve Schwarz, John, 159 academics, 53 Stallman, Richard, 83 business fluency, 337 stressors, 248 stock growth, 337 Stroustrup, Bjarne, 65 Wozniak, Steve tips, 246 accomplishments, 355 Tomlinson, Ray, 108 advice, 358-359 Torvalds, Linus, 174 biography, 352-353 Vaskevitch, David, 217 debugging, 354 work environment, 247 future of software, 357 BARC (Microsoft Bay Area Research Center), 7 inspirations, 356 believing in yourself, 336-337 420 MAKING IT BIG IN SOFTWARE benefits bloggers, 342 big shots, 7-9 bonus plans, 408 CEOs, 379 Booch, Grady publishing, 342 accomplishments, 238 startup acquisitions, 392 advice for success, 242-243 Benioff, Marc biography, 236-237 advice for success, 371, 375, 378 future of software, 241-242 attraction to software as a service, 371 getting started, 237 biography, 369-370 knowledge, 239 future of software, 377 personal success, 239 getting started, 370 pet peeves, 240 graduate degrees, 376 Rational Software beginnings, 238 listening to customers, 21 time management, 240 philanthropy, 373-374 trends/innovations, 239 platform independence, 375 work-life balance, 241 SaaS, 374 book publishing, 342 software executives, 372-373 brainstorming, 312-313 startups, 372 Brin, Sergey, 380 time management, 377 Brooks, Frederick, 225, 349 trends/innovations, 376 browser engines, rendering, 25 work-life balance, 377 buggy code, writing, 133 Bentley, Jon building accomplishments, 38 emotional caches, 189 advice for success, 41-42 teams, candidates, 295 biography, 37-38 attracting, 295 future of software, 41 filtering, 296 getting started, 38 interviewing successfully, 296-298 personal success, 39 keeping best people happy, 298-299 pet peeves, 39 mix, 299 time management, 40 prima donnas/superstars, 300 trends/innovations, 40 trust, 140 work-life balance, 40, 249 burning bridges, 128 writing code, 39 business of software, learning, 70 best and worst programmers differences, 295 business plans, 381-382 betterment of society, 4 business skills, 337-338 big shots, 7-9 biographies Benioff, Marc, 369-370 C Bentley, Jon, 37-38 C/C++, 63, 87 Booch, Grady, 236-237 The C++ Programming Language Gosling, James, 281 (Stroustrup), 64 Greene, Diane, 396 candidates Kahn, Dr. Robert, 323-325 attracting, 295 Malloy, Tom, 252 filtering, 296 Mayer, Marissa, 23-24 interviewing successfully, 296-298 Norvig, Peter, 122-123 careers Russinovich, Mark, 192-193 advancement Schwarz, John, 154-155 accomplishments, communicating, Stallman, Richard, 79-80 179-180 Stroustrup, Bjarne, 62-63 credibility, 178 Tomlinson, Ray, 100-101 evaluations, 177 Torvalds, Linus, 170 goal-oriented careers, 181-184 Vaskevitch, David, 214-216 management peer impact, 187-188 Wozniak, Steve, 352-353 manager influence, 185-187 INDEX 421

promotibility inversion, 189-191 climbing the corporate ladder, 45 promoting others, 189 cloud computing services, 383 early years co-opetition, 115 business of software knowledge, 70 coaching career paths, choosing, 74 interviews, 60 expertise, 70 leadership, 291-292 job satisfaction, 76-78 code low-level programming skills, 71 debugging, 88-90 mentors, 74-75 reuse networking, 72-73 innovation, 320 tradecraft skills, 69-70 schools versus industry, 34 watching leaders, 72 writing, 39 paths, choosing, 74 coercive leadership, 291-292 planning/placement, 49 cold calling, 50 roles collaboration architects, 112 agreements, 151-153 CEOs, 111 communication, 149 channel salespeople, 114 development environment, 238 chief architects, 112 innovation, 317 CTOs, 111 columnists, 342 department managers, 113 commercially available components direct salespeople, 114 (COTS), 320 directors of engineering, 111 communication directors of marketing, 111 effective, 117-118 fellows, 111 email, 117 function verification testers, 114 four modes of in-person, 118-120 product managers, 113 importance, 116 program managers, 113 interviews, 57 programmers, 113 managers, 121 release managers, 112 near-real-time, 179 research staff members, 113 personal accomplishments, 179-180 second-line managers, 112 personal requests, 118 system verification testers, 114 post-factum, 180 technical evangelists, 115 working the org, 149 technical managers, 112 companies. See also industry technical salespeople, 114 choosing, 43-46, 411-412 usability engineers, 113 communication Vice Presidents, 111 effective, 117-118 visibility, 116 email, 117 satisfaction, 8, 76-78 four modes of in-person, 118-120 statistics, 416 importance, 116 success. See success managers, 121 CDAs (confidential disclosure agreements), 381 personal requests, 118 CEOs, 111 core competencies, 162-163 benefits, 379 culture salary ranges, 409 core competencies, 163 changing career goals, 183 work-life balance, 246-247 channel salespeople, 114 high/low performer differences, 115 chief architects, 112 impressions, 121 choosing roles, 110 career paths, 74 architects, 112 companies, 43-46, 411-412 CEOs, 111 Circles of Concern/Influence, 205-206 channel salesperson, 114 422 MAKING IT BIG IN SOFTWARE

chief architects, 112 contacts CTOs, 111 building, 72-73 department managers, 113 finding jobs, 49 direct salespeople, 114 Convolution Principle, 227 directors of engineering, 111 coop students, 266 directors of marketing, 111 core competencies, 162-163 fellows, 111 corporate influence, 4 function verification testers, 114 costs product managers, 113 patents, 338 program managers, 113 software defects, 276, 279 programmers, 113 startups, financing, 383-385 release managers, 112 COTS (commercially available research staff members, 113 components), 320 second-line managers, 112 creating opportunities, 366-367 system verification testers, 114 credibility, 121 technical evangelists, 115 career advancement, 178 technical managers, 112 project proposal success, 164 technical salespeople, 114 critical success factors (CSFs), 203 usability engineers, 113 cross-disciplinary studying, 334-336 Vice Presidents, 111 crossing the chasm, 386-389 visibility, 116 customer focus, 387 visiting, 51 demos, 388 working the org Internet, leveraging, 388 agreements, 151-153 looking big, 389 communication, 149 Crossing the Chasm (Moore), 17, 368 dressing for success, 150-151 CSFs (critical success factors), 203 emotional motivators, 140-143 CTOs, 111, 409 getting people on-side, 140 culture (companies) negotiations, 144-149 core competencies, 163 problems, 130 work-life balance, 246-247 social networking, 143 curriculum, 32 compensation customers bonus plans, 408 attracting new, 15 companies criteria, 18 choosing, 411-412 existing, 15 differences, 405 feedback, 21-22 financial focus, 16 industrial, 33 listening, 21 rewards, 3-4 product development influence, 16 salary ranges 2010–2013, 409 startup focus, 387 schools versus industry, 35 types, 16 graduate degrees, 405-406 indirect, 409-411 larger companies, 405 D preferred stock, 407 databases, 10 retirement plans, 408 debugging, 88-89 startups, 405 assertions, 89 stock options, 406-407 code inspections, 90 competitive offerings, 18 Design by Contract, 89 complainers, 129 Wozniak, Steve, 354 confidence in interviews, 57 decision making, market-driven, 14 confidential disclosure agreements (CDAs), 381 defects, 276, 279 constraints (time and resource), 319 delegation, 303 INDEX 423 democratic leadership, 291-292 early majority adopters, 17 demos, 388 education. See school department managers, 113 EI (emotional intelligence), 95, 99 dependency management, 227 developing, 98-99 Design by Contract, 89 maturity and common sense, 96 developing personalities, 98 emotional intelligence, 98-99 self-assessment, 98 goals, 183 side-by-side comparison example, 96-97 growth skills, 92-94 Eisner, Michael, 319 hard skills, 84 elevator pitches, 164, 381 soft skills, 84, 95, 99 Ellison, Larry, 53 technical skills, 85 email debugging, 88-90 @ symbol, 100, 105-106 programming languages, 86-88 discussions, 117 reviews, 91-92 evolution, 102 time-management skills, 93-94 future, 104 development invention of networked, 103-104 based on existing customers, 15 length, 117 customer criteria, 18 managing, 210-213 customer focus, 16 emotional caches, building, 189 defects, 276, 279 emotional intelligence. See EI maturity, testing, 275-276 emotional motivators, 140-143 methodologies, 270-274 face time, 142 popularity, 416 giving something for nothing, 141 quality, 18, 279-280 inspiring self-worth in others, 141 SaaS example, 19-21 sharing glory, 142 technical skills, 85 employment agencies, 49 technologies, 17-18 engines, rendering in browsers, 25 user feedback, 21-22 enjoying work, 5-6 value, 16 enthusiasm, 8, 58 direct salespeople, 114 estimates, 227-228 directed career path example, 181 evaluations (employee), 177 directing others, 304 executives directors of engineering, 111 advice directors of marketing, 111 Benioff, Marc, 372-373 disruptive technology, 18 Greene, Diane, 399 domain expertise skills, 86 salary ranges, 409 dressing for success, 150-151 schedule overruns, 221 drivers, schools versus industry, 35 existing customers, 15 expertise defined, 190 E early career, 70 early adopters, 17 external business plans, 382 early career years extracurricular activities business of software knowledge, 70 resumés, 48 career paths, choosing, 74 value, 54-55 expertise, 70 job satisfaction, 76-78 low-level programming skills, 71 F mentors, 74-75 face-saving exits, 265 networking, 72-73 face-to-face private meetings, 118 tradecraft skills, 69-70 Fagan, Michael, 90 watching leaders, 72 424 MAKING IT BIG IN SOFTWARE failures Russinovich, Mark, 199 rates, 12 Schwarz, John, 158 startups, 380 Stallman, Richard, 83 success, 416 Stroustrup, Bjarne, 66-67 visionaries, 348 Tomlinson, Ray, 108 fame, 8 Torvalds, Linus, 174 feedback, 21-22 Vaskevitch, David, 217 fellows, 111 Wozniak, Steve, 357 financing startups, 383 angel funding, 384 fourth-stage, 385 G investment capital, 385 Gates, Bill second-stage, 384 academic grades, 53 third-stage, 385 business fluency, 337 finding Gerstner, Lou, 13, 208 innovation opportunities, 311-312 getting people on-side, 140 jobs. See job searches getting started mentors, 74-75 Benioff, Marc, 370 first few months at work, learning curve, Bentley, Jon, 38 361-362 Booch, Grady, 237 colleagues, 364 Gosling, James, 282-283 good mentors, 362 Greene, Diane, 397 managers, 362-363 Kahn, Dr. Robert, 325 managing your boss, 366 Malloy, Tom, 252 opportunities, creating, 366-367 Mayer, Marissa, 24 pushing yourself, 368 Norvig, Peter, 123 following the money, 301 Russinovich, Mark, 193 formal code reviews, 90 Schwarz, John, 155 FORTRAN, 86 Stallman, Richard, 80 four modes of in-person communication, Stroustrup, Bjarne, 63 118-120 Tomlinson, Ray, 101 face-to-face private meetings, 118 Torvalds, Linus, 171 large group presentations, 119-120 Vaskevitch, David, 216 small group discussions, 118 getting to revenue, 385-386 small group presentations, 118 Gladwell, Malcolm, 73, 334 fourth-stage funding, 385 goal-centric time management, 202-203 free software, 82 goal-oriented careers, 181-184 freedom of motion, 35 changing with time, 183 fun work environments, 76-78 developing, 183 function verification testers, 114 directed career path example, 181 fundamental technical skills, 85 trying different jobs, 183 future undirected career path example, 181 email, 104 working backward, 184 software, 416 goal-oriented project management, 261-264 Benioff, Marc, 377 goals, 226-227 Bentley, Jon, 41 good ideas versus good business, 380-381 Booch, Grady, 241-242 good software Gosling, James, 285-286 market embracing, 12 Greene, Diane, 402 market-driven, 14-15 Kahn, Dr. Robert, 330 Google Malloy, Tom, 258 founders, 380 Mayer, Marissa, 29 successful innovation, 315 Norvig, Peter, 125 work environment, 247 INDEX 425

Gosling, James H advice, 286-287 halo-effect, 121 biography, 281 Hamilton, James, 12, 211-212 future of software, 285-286 hard skills, 84 getting started, 282-283 high performers, 115 graduate degrees, 287 higher-level programming languages, 87 Java inspirations, 283 human nature, managing, 264-266 personal success, 284 face-saving exits, 265 pet peeves, 284 making people feel loved, 264 time management, 285 status reports, 265 trends/innovations, 284 humility in interviews, 57 work-life balance, 285 gossiping, 128 government agencies, 50 I GPS, value perception cycle, 314 IBM graduate degrees Gerstner, Lou’s guiding principles, 13 Benioff, Marc, 376 IMS, 10 compensation, 405-406 patents, 341 Gosling, James, 287 successful innovation, 315 Greene, Diane, 403 identifying successful innovations, 309 Malloy, Tom, 255 images, revitalizing, 121 Mayer, Marissa, 28 impressions, 121 Russinovich, Mark, 199 IMS, 10 Schwarz, John, 160 In Search of Excellence, 303 Stroustrup, Bjarne, 65 incremental improvements, 18 Tomlinson, Ray, 106 indecision (time management), 207 Vaskevitch, David, 216 indirect compensation, 409-411 graphical user interface, 340 individual work (schools), 32 Gray, Jim, 7 industry. See also companies Greene, Diane compared to schools, 34-36 accomplishments, 397 code reuse, 34 advice for success, 403 drivers and shapers, 35 architecture degree, 397 financial compensation, 35 biography, 396 freedom of motion, 35 future of software, 402 innovation, 35 getting started, 397 interpersonal networking, 35 graduate degrees, 403 leadership, 35 influences/inspirations, 399 learning/doing, 35 leading software companies, 399 personal portfolios, 36 personal success, 400 productivity, 36 pet peeves, 397 recognition, 36 starting VMware, 398-399 risks, 36 time management, 401 teamwork, 34 work-life balance, 401 compensation. See compensation growth culture problems, 135-137 core competencies, 163 skills, 92-94 work-life balance, 246-247 startup acquisition comparison, 390-392 early careers statistics, 416 business of software knowledge, 70 gurus. See visionaries career paths, choosing, 74 expertise, 70 426 MAKING IT BIG IN SOFTWARE

job satisfaction, 76-78 Tomlinson, Ray, 107 low-level programming skills, 71 Torvalds, Linus, 173 mentors, 74-75 Vaskevitch, David, 217 networking, 72-73 Wozniak, Steve, 358 tradecraft skills, 69-70 opportunities, 311-312 watching leaders, 72 resumés, 48 four modes of in-person communication, schools versus industry, 35 118-120 self-made innovators, 336-337 influence, measure of success, 4 successful, 309-311 leaders, watching, 72 identifying, 309 limited field of vision, 33-34 iPhone example, 310 publications, 341 marketing, 309 influences OS/2 flop example, 310 Greene, Diane, 399 value perception cycle, 313-315 managers on employee success, 185-187 inspections (code), 90 Mayer, Marissa, 24 inspirations Vaskevitch, David, 216 Greene, Diane, 399 informal code walkthroughs, 90 Wozniak, Steve, 356 innovation, 17 interface designs (Mayer, Marissa), 26 2005 McKinsey report on corporate internal business plans, 382 success concerns, 307 Internet benefits, 306 finding jobs, 50 brainstorming, 312-313 frequency of top 24 programming business advantage, 308 languages and platforms, 87 fostering successful leveraging for startups, 388 affinitizing, 319 release cycles, 29 avoiding dictating solutions, 318 server warehouses, 30 best people, 316 internship students, 266 carrying through, 322 interpersonal networking, 35 collaboration, 317 interviews, 56-61 current state of the art, 321 candidates, 296-298 data, 319 coaching, 60 Google, 315 communication, 57 IBM, 315 company negativity, 59 iteration, 318 confidence/humility, 57 market as source, 321 enthusiasm, 58 Microsoft, 315 falsifying information, 60 reusing existing components, 320 follow-up etiquette, 60 rewards, 316 interest in software, 57 studying other fields, 321 knowing the competition, 58 time and resource constraints, 319 Norvig, Peter, 124 keeping up personal/medical information, 59 Benioff, Marc, 376 positive, 58 Bentley, Jon, 40 research, 56 Booch, Grady, 239 selling yourself, 59 Gosling, James, 284 skill-testing questions/brainteasers, 56 Malloy, Tom, 255 investment capital, 385 Mayer, Marissa, 28 iPhone, 310 Norvig, Peter, 125 IQ, 96 Russinovich, Mark, 197 iteration Schwarz, John, 157-158 development methodology, 271 Stallman, Richard, 82 innovation, 318 Stroustrup, Bjarne, 65 INDEX 427

J selling yourself, 59 skill-testing questions/brainteasers, 56 Java, 87. See also Gosling, James newspaper postings, 51 Jericho, 101 professors, 50 job roles, 110 resource effectiveness, 51-52 architects, 112 resumés, 46-48 CEOs, 111 mailing, 51 channel salespeople, 114 school performance, 46 chief architects, 112 student positions, 55 CTOs, 111 visiting companies, 51 department managers, 113 Jobs, Steve direct salespeople, 114 academics, 53 directors of engineering, 111 business fluency, 337 directors of marketing, 111 fellows, 111 function verification testers, 114 K product managers, 113 Kahn, Dr. Robert program managers, 113 accomplishments, 325 programmers, 113 advice for success, 328, 331 release managers, 112 biography, 323-325 research staff members, 113 future of software, 330 second-line managers, 112 getting started, 325 system verification testers, 114 networking contributions, 326 technical evangelists, 115 personal success, 327 technical managers, 112 pet peeves, 326 technical salespeople, 114 pivotal career point, 326 usability engineers, 113 software scale, 327 Vice Presidents, 111 technology/trends, 329 visibility, 116 time management, 329 job satisfaction, 8, 76-78 work-life balance, 330 job searches Kay, Alan, 350 career planning/placement offices, 49 Kennedy, John F., 261 choosing companies, 43-46 cold calls, 50 employment agencies, 49 L extracurricular activities, 54-55 laggards, 17 friends/contacts, 49 large group presentations, 119-120 government agencies, 50 late majority adopters, 17 importance of grades, 52-54 lateness. See overruns Internet searches, 50 Law of the Few, 143 interviewing, 56-61 leadership. See also visionaries coaching, 60 authority, 293-294 communication, 57 delegation, 303 company negativity, 59 directing others, 304 confidence/humility, 57 following the money, 301 enthusiasm, 58 innovation falsifying information, 60 2005 McKinsey report on corporate follow-up etiquette, 60 success concerns, 307 interest in software, 57 affinitizing, 319 knowing the competition, 58 avoiding dictating solutions, 318 personal/medical information, 59 benefits, 306 positive, 58 best people, 316 research, 56 brainstorming, 312-313 428 MAKING IT BIG IN SOFTWARE

business advantage, 308 opportunities, creating, 366-367 carrying through, 322 pushing yourself, 368 collaboration, 317 length current state of the art, 321 emails, 117 data, 319 resumés, 48 Google, 315 life impacts work, 247-248 IBM, 315 Lightstone’s Convolution Principle, 227 identifying valuable, 309 limited field of vision, 32 iPhone example, 310 industry, 33-34 iteration, 318 school, 33 market as source, 321 school as, 32 marketing, 309 Linux, 173. See also Torvalds, Linus Microsoft, 315 LogAD (Logistics Anchor Desk), 101 opportunities, 311-312 low performers, 115 OS/2 flop example, 310 low-level programming skills, learning, 71 reusing existing components, 320 rewards, 316 studying other fields, 321 M successful, 309-311 mailing resumés, 51 time and resource constraints, 319 Malloy, Tom value perception cycle, 313-315 accomplishments, 251-252 managing, compared, 288-290 advice for success, 257-259 proceeding without formal support, 294 biography, 252 resumés, 47 chief software architect role, 254 rewards, 301-302 future of software, 258 schedule overruns, 235 getting started, 252 average example, 223 graduate degrees, 255 avoiding, 235 personal success, 254, 257 causes, 224-231 pet peeves, 259 effects, 223 risk-taking decisions, 253 executive perception, 221 technical accomplishments, 257 handling, 232-233 time management, 256 leadership, 235 trends/innovations, 255 right people, 235 work-life balance, 256 statistics, 222 The Management of Innovation, 303 schools versus industry, 35 managers shared values, 303 communication, 121 styles, 290-292 employee’s first few months, 362-363 teams, building, 295-300 influences on employee success, 185-187 lean development methodology, 273 managing, 366 learning peer impact, 187-188 business of software, 70 managing expertise, 70 dependency, 227 low-level programming skills, 71 leadership, compared, 288-290 programming languages, 86-88 managers, 366 schools versus industry, 35 projects tradecraft skills, 69-70 defects, 276, 279 learning curve (first few months at work), development methodologies, 270-274 361-362 goal-oriented, 261-264 colleagues, 364 human nature, 264-266 good mentors, 362 maturity, testing, 275-276 managers, 362-363 plans, changing, 269-270 managing your boss, 366 quality, 279-280 INDEX 429

SMART, 262 technical skills, 135 students, 266 unimportant roles, 137 value, measuring, 267-269 people, 127 schedule overruns, 232-233 burning bridges, 128 marketing, 309 complainers, 129 marketplace gossiping, 128 driving software, 14-15 inappropriate decision making, 131 embracing good software, 12 snitching on coworkers, 129 influence on schools, 33 too many suggestions, 130 Master’s degrees, 406 working the org, 130 maturity, testing, 275-276 productivity, 133 Mayer, Marissa buggy code, 133 accomplishments, 26 lack of productivity, 134 advice for success, 27 missing dates consistently, 134 biography, 23-24 skunkworks focus, 135 choosing Google, 43 time management, 135 field opportunities, 30 team, 131-132 future of software, 29 Moore, Geoffrey, 17, 386 getting started, 24 motivation, emotional, 140-143 graduate degrees, 28 face time, 142 influences, 24 giving something for nothing, 141 listening to customers, 22 inspiring self-worth in others, 141 personal success, 27 sharing glory, 142 pet peeves, 25 The Mythical Man Month, 225 time management, 29 trends/innovation, 28 women in computing, 26 N work-life balance, 29 NDAs (nondisclosure agreements), 381 measuring near-real-time communication, 179 success, 3-6 negotiating, 144 value, 267-269 meeting in the middle, 145-147 mentors, 74-75, 362 mutual gain options, 147-148 methodologies (development), 270 outcomes, estimating, 145 agile development process, 272 quitting while ahead, 149 iterative development, 271 seeking first to understand, 144 lean development, 273 networked email, 103-104 rapid prototyping, 274 networking scrum, 271 early career, 72-73 waterfall development process, 274 Kahn, Dr. Robert’s contributions, 326 XP, 273 wasting time, 209 Meyer, Bertrand, 89 working the org, 143 mezzanine funding, 385 new customers, attracting, 15 Microsoft new graduates Bay Area Research Center (BARC), 7 career paths, choosing, 74 stock growth, 337 finding jobs, 52-54 successful innovation, 315 industry leaders, watching, 72 work environment, 247 job satisfaction, 76-78 mistakes learning fundamentals versus incidentals, 137 business of software, 70 growth expertise, 70 excessive self-promotion, 136 low-level programming skills, 71 self-marketing wrong messages, 136 tradecraft skills, 69-70 430 MAKING IT BIG IN SOFTWARE

mentors, 74-75 leadership, 235 networking, 72-73 right people, 235 resumés, 46 statistics, 222 school performance, 46 new writer advice, 344-345 newspaper job postings, 51 P nondisclosure agreements (NDAs), 381 pacesetting leadership, 291-292 North American salary ranges 2010–2013, 409 Page, Larry, 380 Norvig, Peter paralysis by analysis, 207 accomplishments, 123 Parkinson’s Law, 230 advice for success, 126 passion, 350-351 biography, 122-123 patents, 338 future of software, 125 career success, 341 getting started, 123 costs, 338 job interview example, 124 criteria, 338 personal success, 124 graphical user interface example, 340 pet peeves, 124 names, 341 time management, 125 style-mixing pants example, 339 trends/innovations, 125 worthy ideas, 340 work-life balance, 125 Patton, General George, 207 people problems, 127 burning bridges, 128 O complainers, 129 OOP (object-oriented programming), 63 gossiping, 128 languages, 88 inappropriate decision making, 131 Stroustrup, Bjarne, 63 snitching on coworkers, 129 open source, 383 too many suggestions, 130 opportunities working the org, 130 creating, 366-367 performance (schedule overruns), 224 innovations, 311-312 Perlis, Alan, 86 Mayer, Marissa, 30 personal portfolios, 36 OS/2 flop, 310 personal success, defining, 415 Outliers, 334 personal tenacity (proposals), 168 overruns personal walkthroughs, 90 average example, 223 pet peeves avoiding, 235 Bentley, Jon, 39 causes, 224 Booch, Grady, 240 adding manpower, 225 Gosling, James, 284 aggressive estimates, 228 Greene, Diane, 397 bad estimates, 227-228 Kahn, Dr. Robert, 326 dependency management, 227 Malloy, Tom, 259 fundamentals, bypassing, 230 Mayer, Marissa, 25 human performance, 224 Norvig, Peter, 124 scope creep, 224 Russinovich, Mark, 199 social dynamics, 229-230 Schwarz, John, 160 strategic changes, 231 Stallman, Richard, 81 time away from deliverables, Stroustrup, Bjarne, 65 forgetting, 231 Tomlinson, Ray, 109 unclear goals, 226-227 Torvalds, Linus, 172 effects, 223 Vaskevitch, David, 217 executive perception, 221 Wozniak, Steve, 355 handling, 232-233 Peters, Tom, 303 INDEX 431

Ph.Ds, 406 professors, 50 philanthropy (Benioff, Marc), 373-374 program managers, 113 pitching proposals, 166-168 programmers plans (project), changing, 269-270 9-to-5 job, 108 platforms high/low performers, 115 independence, 375 role, 113 Internet frequency of top 24 programming programming languages and platforms, 87 Internet frequency of top 24 programming popularity of software development, 416 languages and platforms, 87 post-factum communication, 180 learning, 86-88 preferred stock, 407 Programming Pearls, 38 presentations project management large group, 119-120 defects, 276, 279 small group, 118 development methodologies, 270 summary, 381 agile development process, 272 proactiveness (urgency), 208 iterative development, 271 problems lean development, 273 acquisitions, 394-395 rapid prototyping, 274 fundamentals versus incidentals, 137 scrum, 271 growth waterfall development process, 274 excessive self-promotion, 136 XP, 273 self-marketing wrong messages, 136 goal-oriented, 261-264 technical skills, 135 human nature, 264-266 unimportant roles, 137 maturity, testing, 275-276 people, 127 plans, changing, 269-270 burning bridges, 128 quality, 279-280 complainers, 129 SMART, 262 gossiping, 128 students, 266 inappropriate decision making, 131 value, measuring, 267-269 snitching on coworkers, 129 projects too many suggestions, 130 failures, 11-12 working the org, 130 good productivity, 133 market embracing, 12 buggy code, 133 market-driven, 14-15 lack of productivity, 134 managing. See project management missing dates consistently, 134 overruns skunkworks focus, 135 average example, 223 time management, 135 avoiding, 235 team, 131-132 causes, 224-231 product development effects, 223 based on existing customers, 15 executive perception, 221 customer criteria, 18 handling, 232-233 customer focus, 16 leadership, 235 quality characteristics, 18 right people, 235 SaaS example, 19-21 statistics, 222 technologies, 17-18 proposals user feedback, 21-22 connecting privately with decision value, 16 makers, 164 product managers, 113 converting naysayers to believers, 163 productivity core competencies, 162-163 problems, 133-135 credibility, 164 schools versus industry, 36 elevator pitch, 164 professional activities, 48 example, 165 432 MAKING IT BIG IN SOFTWARE

executive commitment, 169 Rational Software beginnings, 238 others’ ideas, including, 164 recognition, 36 personal tenacity, 168 recruiting candidates pitching, 166-168 attracting, 295 skunkworks, 135 filtering, 296 promotibility inversion, 189-191 interviewing successfully, 296-298 promoting others, 189 relational databases, 156 promotions. See advancement release cycles, 29 proprietary software, 194 release managers, 112 proposals remote workers, 383 connecting privately with decision rendering browser engines, 25 makers, 164 research papers, 341 converting naysayers to believers, 163 research staff members, 113 core competencies, 162-163 resources credibility, 164 constraints, 319 elevator pitch, 164 finding jobs example, 165 career planning/placement offices, 49 executive commitment, 169 cold calls, 50 others ideas, including, 164 effectiveness, 51-52 personal tenacity, 168 employment agencies, 49 pitching, 166-168 friends/contacts, 49 public speaking, 345-348 government agencies, 50 adapting to audiences, 346 Internet searches, 50 antagonists, 348 mailing resumés, 51 clarity and pace, 346 newspaper postings, 51 engaging audience, 346 professors, 50 first person, 347 visiting companies, 51 hand motions, 347 responsiveness (startups), 389-390 purpose, 348 resumés smiling, 347 awards, 47 speaking the charts, 347 details, 47-48 understanding audience, 346 extracurricular activities, 48 publishing, 343 grades, 52-54 benefits, 342 innovations, 48 books, 342 leadership roles, 47 columns/blogs, 342 length, 48 impact, 341 mailing, 51 industrial/trade publications, 341 new graduates, 46 new writer advice, 344-345 professional activities, 48 research papers, 341 technical domain skills, 47 value, 343 retirement plans, 408 whitepapers, 342 revenue (startups), 385-386 pushing yourself, 368 reviews (technical), 91-92 revitalizing images, 121 rewards, 301-302, 316 Q–R risks quadrants of time, 93-94 schools versus industry, 36 quality toleration, 17 products, 18 roles (companies), 110 testing, 279-280 architects, 112 CEOs, 111 R&D, bootstrapping, 382-383 channel salesperson, 114 rapid prototyping development chief architects, 112 methodology, 274 INDEX 433

CTOs, 111 fundamentals, bypassing, 230 department managers, 113 human performance, 224 direct salespeople, 114 scope creep, 224 directors of engineering, 111 social dynamics, 229-230 directors of marketing, 111 strategic changes, 231 fellows, 111 time away from deliverables, function verification testers, 114 forgetting, 231 product managers, 113 unclear goals, 226-227 program managers, 113 effects, 223 programmers, 113 executive perception, 221 release managers, 112 handling, 232-233 research staff members, 113 leadership, 235 second-line managers, 112 right people, 235 system verification testers, 114 statistics, 222 technical evangelists, 115 Schmidt, Eric, 380 technical managers, 112 school technical salespeople, 114 career planning/placement offices, 49 usability engineers, 113 compared to industry, 34-36 Vice Presidents, 111 curriculum, 32 visibility, 116 importance of grades, 52-54 Russinovich, Mark individual work, 32 accomplishments, 195 limited field of vision, 32-33 advice for success, 198-200 market influences, 33 biography, 192-193 performance, 46 future of software, 199 student positions, 55 getting started, 193 Schwarz, John graduate degrees, 199 accomplishments, 156 Microsoft recruitment, 195 advice for success, 159-160 personal success, 196 biography, 154-155 pet peeves, 199 career goals, 184 proprietary software, 194 future of software, 158 time management, 196 getting started, 155 trends/innovations, 197 graduate degrees, 160 Windows incorporation of tools, 195 path to CEO position, 156 Winternals development, 193-194 personal success, 160 work-life balance, 197 pet peeves, 160 time management, 158 trends/innovations, 157-158 S work-life balance, 159 SaaS (software as a service), 19, 374 scope creep, 224 Benioff, Marc, 374 scrum development methodology, 271 technology adoption example, 19-21 second-line managers, 112 salary ranges 2010–2013, 409 second-stage funding, 384 Salesforce.com, 369 self-made innovators, 336-337 satisfaction, 76-78 server warehouses, 30 schedule overruns shapers, 35 average example, 223 shared values, 303 avoiding, 235 sharing glory, 142 causes, 224 Sharpen the Saw story, 92-94 adding manpower, 225 skills aggressive estimates, 228 business, 337-338 bad estimates, 227-228 communication dependency management, 227 effective, 117-118 434 MAKING IT BIG IN SOFTWARE

email, 117 self-assessment, 98 four modes of in-person side-by-side comparison example, communication, 118-120 96-97 importance, 116 software managers, 121 as a service. See SaaS personal requests, 118 scale, 327 growth, 92-94 space program project management example, hard, 84 261-264 leadership specific, measurable, attainable, realistic, authority, 293-294 timely (SMART), 262 delegation, 303 Stallman, Richard directing others, 304 accomplishments, 81 following the money, 301 advice for success, 83 innovation. See leadership, innovation biography, 79-80 managing, compared, 288-290 free software champion, 82 proceeding without formal support, 294 future of software, 83 rewards, 301-302 getting started, 80 schedule overruns, 235 personal success, 81 shared values, 303 pet peeves, 81 styles, 290-292 time management, 83 teams, building, 295-300 trends/innovations, 82 low-level programming, 71 work-life balance, 83 soft startups defined, 84 acquisition developing, 84, 95 benefits, 392 emotional intelligence, 95-99 categories, 392-393 technical getting the word out to potential debugging, 88-90 buyers, 394 development, 85 problems, 394-395 domain expertise, 86 adaptability, 389-390 fundamental, 85 Benioff, Marc advice, 372 growth required, 85 business plans, 381 problems, 135 compensation, 405 programming languages, 86-88 crossing the chasm, 386-389 reviews, 91-92 elevator pitches, 381 tradecraft, 86 external business plans, 382 time-management, 93-94 failures, 380 tradecraft, 69-70 financing, 383 skunkworks projects, 135 angel funding, 384 small group discussions/presentations, 118 fourth-stage, 385 SMART (specific, measurable, attainable, investment capital, 385 realistic, timely), 262 second-stage, 384 SMPs (symmetric multiprocessors), 267 third-stage, 385 socializing getting to revenue, 385-386 dynamics, 229-230 good ideas versus good business, 380-381 networking, 143, 349-350 growth versus acquisition, 390-392 wasting time, 209 internal business plans, 382 soft skills R&D, bootstrapping, 382-383 defined, 84 responsiveness, 389-390 developing, 84, 95 summary presentations, 381 emotional intelligence, 95-99 statistics developing, 98-99 job growth, 416 maturity and common sense, 96 overruns, 222 personalities, 98 status reports, 265 INDEX 435 stock options, 406-407 current state of the art, 321 stressors, 248 data, 319 Stroustrup, Bjarne Google, 315 accomplishments, 63 IBM, 315 advice for success, 66 identifying, 309 biography, 62-63 iPhone example, 310 The C++ Programming Language, 64 iteration, 318 future of software, 66-67 market as source, 321 getting started, 63 marketing, 309 graduate degrees, 65 Microsoft, 315 personal success, 64 OS/2 flop example, 310 pet peeves, 65 reusing existing components, 320 time management, 65 rewards, 316 trends/innovations, 65 studying other fields, 321 work-life balance, 65 time and resource constraints, 319 students IQ, 96 limited field of vision, 32 job satisfaction, 8 managing, 266 luck, 414 positions, 55 management peers impact, 187-188 styles, leadership, 290-292 manager influence, 185-187 success. See also advancement measures advice betterment of society, 4 Benioff, Marc, 371, 375, 378 corporate/industrial influence, 4 Bentley, Jon, 41-42 enjoyment, 5-6 Booch, Grady, 242-243 financial compensation, 3-4 Gosling, James, 286 patents, 341 Greene, Diane, 403 personal Kahn, Dr. Robert, 328, 331 Bentley, Jon, 39 Malloy, Tom, 257-259 Booch, Grady, 239 Mayer, Marissa, 27 Gosling, James, 284 Norvig, Peter, 126 Greene, Diane, 400 Russinovich, Mark, 198-200 Kahn, Dr. Robert, 327 Schwarz, John, 159 Malloy, Tom, 254, 257 Stallman, Richard, 83 Mayer, Marissa, 27 Stroustrup, Bjarne, 66 Norvig, Peter, 124 Tomlinson, Ray, 106 Russinovich, Mark, 196 Torvalds, Linus, 175 Schwarz, John, 160 Vaskevitch, David, 216 Stallman, Richard, 81 Wozniak, Steve, 358-359 Stroustrup, Bjarne, 64 characteristics, 8 Tomlinson, Ray, 103 credibility, 121 Torvalds, Linus, 172 defining, 415 Vaskevitch, David, 218 dressing for success, 150-151 Wozniak, Steve, 356 enthusiasm, 8 positive impressions, 121 failures, 416 project proposals fame, 8 connecting privately with decision freedom, 7 makers, 164 fun work environment, 76-78 converting naysayers to believers, 163 innovation, 309-311 core competencies, 162-163 affinitizing, 319 credibility, 164 avoiding dictating solutions, 318 elevator pitch, 164 best people, 316 example, 165 carrying through, 322 executive commitment, 169 collaboration, 317 others ideas, including, 164 436 MAKING IT BIG IN SOFTWARE

personal tenacity, 168 thinking inside the box, 319 pitching, 166-168 third-stage funding, 385 qualities, 413-414 time rates, 12 constraints (innovation), 319 summary presentations, 381 management symmetric multiprocessors (SMPs), 267 1950s–1980s, 201 Sysinternals, 195 1990s, 201 System 360 project, 349 Benioff, Marc, 377 system verification testers, 114 Bentley, Jon, 40 Booch, Grady, 240 Circles of Concern/Influence, 205-206 T email, 210-213 task-centric time management, 203-205 goal-centric, 202-203 teams Gosling, James, 285 building, 295 Greene, Diane, 401 attracting, 295 indecisions, 207 filtering, 296 Kahn, Dr. Robert, 329 interviewing successfully, 296-298 Malloy, Tom, 256 keeping best people happy, 298-299 Mayer, Marissa, 29 mix, 299 Norvig, Peter, 125 prima donnas/superstars, 300 problems, 135 co-opetition, 115 Russinovich, Mark, 196 problems, 131-132 Schwarz, John, 158 schools versus industry, 34 skills, developing, 93-94 technical domain skills, 47 Stallman, Richard, 83 technical evangelists, 115 Stroustrup, Bjarne, 65 technical managers, 112 task-centric, 203, 205 technical salespeople, 114 time wasting, 209-210 technical skills Tomlinson, Ray, 107 debugging, 88-89 Torvalds, Linus, 173 assertions, 89 urgency, 208-209 code inspections, 90 Vaskevitch, David, 217 Design by Contract, 89 Wozniak, Steve, 357 development, 85 wasting, 209-210 domain expertise, 86 time-shared computing, 100 fundamental, 85 The Tipping Point: How Little Things Can growth requirements, 85 Make a Big Difference (Gladwell), 73, 143 problems, 135 Tomlinson, Ray programming languages, 86-88 @ sign, 103-106 reviews, 91-92 accomplishments, 102 tradecraft, 86 advice for success, 106, 109 technology. See also innovation biography, 100-101 adoption lifecycle, 17 evolution of email, 102 customer criteria, 18 future of email, 104 quality characteristics, 18 future of software, 108 SaaS example, 19-21 getting started, 101 technologies, 18 graduate degrees, 106 disruptive, 18 invention of networked email, 103-104 tenacity (urgency), 208 personal feelings toward email, 104 TENEX, 102 personal success, 103 testing pet peeves, 109 maturity, 275-276 programming as a 9-to-5 job, 108 quality, 279-280 time management, 107 INDEX 437

trends/innovations, 107 future of software, 217 work-life balance, 108 getting started, 216 Torvalds, Linus graduate degrees, 216 accomplishments, 171 influences, 216 advice for success, 175 personal success, 218 biography, 170 pet peeves, 217 future of software, 174 time management, 217 getting started, 171 trends/innovations, 217 personal success, 172 work-life balance, 217, 249 pet peeves, 172 vice presidents, 111 time management, 173 visibility, 116 trends/innovations, 173 visionaries. See also leadership work-life balance, 174 authority, 333-334 trade publications, 341 believing in yourself, 336-337 tradecraft skills, 69-70, 86 business skills, 337-338 trends, keeping up. See also innovation cross-disciplinary studying, 334-336 Benioff, Marc, 376 defined, 333 Bentley, Jon, 40 failures, 348 Booch, Grady, 239 passion, 350-351 Gosling, James, 284 patents, 338 Kahn, Dr. Robert, 329 career success, 341 Malloy, Tom, 255 costs, 338 Mayer, Marissa, 28 criteria, 338 Norvig, Peter, 125 graphical user interface example, 340 Russinovich, Mark, 197 names, 341 Schwarz, John, 157-158 style-mixing pants example, 339 Stallman, Richard, 82 worthy ideas, 340 Stroustrup, Bjarne, 65 public speaking, 345-348 Tomlinson, Ray, 107 adapting to audience, 346 Torvalds, Linus, 173 antagonists, 348 Vaskevitch, David, 217 clarity and pace, 346 Wozniak, Steve, 358 engaging audience, 346 trust, 140 first person, 347 types hand motions, 347 audiences, 16 purpose, 348 leadership, 291-292 smiling, 347 social networking, 350 speaking the charts, 347 U–V understanding audience, 346 unclear goals, 226-227 publishing, 343 undirected career path example, 181 benefits, 342 urgency (time management), 208-209 books, 342 usability engineers, 113 columns/blogs, 342 impact, 341 value industrial/trade publications, 341 extracurricular activities, 54-55 new writer advice, 344-345 perception cycle, 313-315 research papers, 341 products, 16 value, 343 publishing, 343 whitepapers, 342 shared, 303 self-made innovators, 337 software, measuring, 267-269 visiting companies, 51 Vaskevitch, David VMware foundation, 398-399 advice for success, 216-218 biography, 214-216 438 MAKING IT BIG IN SOFTWARE

W–Z working the org agreements, 151-153 wasting time, 209-210 communication, 149 watching industry leaders, 72 dressing for success, 150-151 waterfall development process, 274 emotional motivators, 140-143 Welch, Jack, 186 getting people on-side, 140 whitepapers, 342 negotiations, 144 Winternals, 193-194 meeting in the middle, 145-147 women in computing, 26 mutual gain options, 147-148 work environment, 247 outcomes, estimating, 145 work-life balance, 244 quitting while ahead, 149 achieving by working backward, 249 seeking first to understand, 144 assessing, 249 problems, 130 Benioff, Marc, 377 social networking, 143 Bentley, Jon, 40 world-class authority status, 334 Booch, Grady, 241 worst and best programmers differences, 295 defining yourself, 245 Wozniak, Steve, 336 Gosling, James, 285 accomplishments, 355 Greene, Diane, 401 advice, 358-359 Kahn, Dr. Robert, 330 biography, 352-353 life impacts work, 247-248 debugging, 354 Malloy, Tom, 256 future of software, 357 Mayer, Marissa, 29 inspirations, 356 Norvig, Peter, 125 personal future, 357 organizational culture, 246-247 personal success, 356 repartitioning time, 245 pet peeves, 355 Russinovich, Mark, 197 Tetris, playing, 357 Schwarz, John, 159 time management, 357 Stallman, Richard, 83 trends/innovations, 358 stressors, 248 viewing self as hardware person, 353-354 Stroustrup, Bjarne, 65 writing code, 39 tips, 246 Tomlinson, Ray, 108 XP development methodology, 273 Torvalds, Linus, 174 Vaskevitch, David, 217 work environment, 247