“Mantle and Lichty have assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike.”
—Tom Conrad, CTO, Pandora
“I wish I’d had this material available years ago. I see lots and lots of ‘meat’ in here that I’ll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes.”
—Steve Johnson, VP, Custom Solutions, DigitalFish
All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable?
In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams , Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people—how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully.
Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide.
|Product dimensions:||7.00(w) x 9.00(h) x 1.10(d)|
About the Author
Mickey W. Mantle has been developing software for over 40 years, creating hardware and software products and managing development teams. After graduating from the University of Utah (where he was contemporary with computer industry notables such as the founders of WordPerfect, Silicon Graphics, Netscape, Adobe Systems, and Pixar), Mickey had his first job in 1971 developing the overall control software and real-time robotic controls for a six-acre aircraft rework facility for the U.S. Navy at Kenway Engineering (later Eaton-Kenway). He thereafter joined 3-D computer graphics pioneer Evans & Sutherland (E&S) where he coauthored the original 3-D graphics library that paved the way for Silicon Graphics’s GL, which has since become OpenGL. At E&S he was a contributor to many notable computer graphics products and first started managing programmers and programming teams.
After leaving E&S in 1984, Mickey joined Formative Technologies, a spin-off from Carnegie Mellon University, where he worked with the industry’s first workstations (PERQ and Sun Microsystems) dealing with largescale bit-mapped graphics for mapping and CAD applications. But his heart was in 3-D graphics, and he was hired by Pixar shortly after it was bought by Steve Jobs and spun out of Lucasfilm Ltd. in 1986. At Pixar, Mickey managed the development of all of the software for their external products, including the Pixar Image Computer, the Pixar Medical Imaging System, and RenderMan. RenderMan is the gold standard of 3-D photorealistic rendering software and by 2010 had been used on every Visual Effects Academy Award Winner for the past 15 years; 47 out of the last 50 nominees for Visual Effects had chosen Pixar’s RenderMan.
Mickey left Pixar in 1991, as their focus shifted to making feature-length 3-D animated films and away from external software products, and was recruited to Brøderbund Software as Vice President of Engineering/CTO. At Brøderbund he managed a vast development organization including applications and system programming, art and animation, sound design and music composition, and quality assurance that produced numerous award-winning PC/Mac games such as Where in the World Is Carmen Sandiego?, Kid Pix, Myst, and Living Books.
In late 1997 Mickey joined International Microcomputer Software, Inc., as Vice President of R&D/CTO, where he managed on-site and offshore development and support for numerous Windows/Mac applications such as MasterClips and professional-level products such as TurboCAD.
In 1999 Mickey joined Gracenote where he was Senior Vice President of Development (since 2008 Gracenote has been a wholly owned subsidiary of Sony). At Gracenote he managed all development, operations, and professional services associated with the pioneering Web-based CDDB music information service that enables digital music player applications such as iTunes, WinAmp, Sonic Stage, and hundreds of others. Gracenote’s products utilize technology ranging from Web services and relational databases to embedded systems and mobile applications, giving him a unique perspective on the wide-ranging needs of the various types of software developed today. He retired from Gracenote in early 2011 to finish this book, develop mobile/tablet applications, and consult with a variety of companies and organizations regarding the management of software people and teams.
His experience includes directing R&D teams around the world and managing multidisciplinary teams working 24/7 to deliver successful products. With experience in selecting, establishing, and managing offshore development organizations in India, Russia, Canada, and Japan, he brings insight into the challenges of managing software development using diverse staff and teams that are hours and oceans apart.
Ron Lichty has been developing software for 30 years, over 20 of them as a Development Manager, Director of Engineering, and Vice President of Engineering. This followed his first career as a writer in New York, Wyoming, and California, during which he wrote hundreds of articles, published scores of photographs, and authored two books. His software development career began at Softwest in the heart of California’s Silicon Valley, coding word-processing products, programming compiler code generators, crafting embedded microcontroller devices like SmartCard-based postage meters and magnetic-keycard hotel locking systems, and designing and developing the computer animation demo that Apple used to launch and promote a new line of personal computers. He was awarded software patents for compression algorithms and wrote two widely used programming texts.
Recruited to Apple in 1988, Ron product-managed Apple’s development tools, then led the Finder and Applications groups for the Apple II and Macintosh product lines, managing delivery of Apple’s “special sauce,” its user interface.
In 1994 Berkeley Systems recruited Ron to direct development of the then most widely used consumer software in the world, the After Dark screen saver line, to make engineering predictable and repeatable for the seven development teams creating its entertainment products. Brought into Fujitsu to make sense of its long-overdue WorldsAway entertainment product, he lopped off six months of overengineering to take it live in just 11 weeks.
Ron then led software development of the first investor tools on Schwab .com, part of remaking a bricks-and-mortar discount brokerage into the premier name in online financial services. He was promoted to Schwab Vice President while leading his CIO’s three-year technology initiative to migrate software development across all business units from any-language-goes to a single, cost-effective platform company-wide.
Since Schwab, he has been a Vice President of Engineering and Vice President of Products both as an employee and as a consultant, and he has continued to focus on making software development “hum.” He headed technology for the California offices of Avenue A Razorfish, the largest Internet professional services organization in the world; products and development for Forensic Logic, the crime detection and prevention company; engineering for Socialtext, the first commercial wiki company; engineering of the consumer ZoneAlarm line for Check Point; and publisher services for HighWire, the largest Internet provider for scholarly publishing. In consulting engagements in America and Europe, he has helped development groups overcome roadblocks, untangle organizational knots, and become more productive.
Ron’s developer conference and professional group talks and webinars include implementing Agile and Scrum; the importance of user groups, teamwork, and community; and transforming software development from chaos to clarity. He has been an adviser to a half-dozen start-ups. He cochairs SVForum’s Emerging Technology SIG; founded its Software Architecture SIG; chaired East Bay Innovation Group’s Software Management Best Practices SIG; and was a member of the board of SVForum, Silicon Valley’s largest and oldest developer organization.
Table of Contents
About the Authors xxvii
Chapter 1: Why Programmers Seem Unmanageable 1
What Do Programmers Do? 3
Why Is Becoming a Successful Programming Manager Hard? 7
Chapter 2: Understanding Programmers 9
Programming Disciplines 10
Types of Programmers 13
Domain Expertise 16
Programmer Job Requirements and Abilities 17
Proximity and Relationship 20
Generational Styles 25
Personality Styles 27
Chapter 3: Finding and Hiring Great Programmers 35
Determining What Kind of Programmer to Hire 37
Writing the Job Description 39
Selling the Hire 45
Recruiting Full-Time Employees (FTEs) 46
Recruiting Contractors 56
Reviewing Résumés 57
Narrowing the Field 59
Preparing to Interview 60
Making the Decision to Hire a Programmer 72
Making the Right Offer to a Programmer 76
Follow Up Until the Programmer Accepts 82
Chapter 4: Getting New Programmers Started Off Right 84
Get Them on Board Early 85
Preparing for Their Arrival 86
First-Day Musts 87
Ensuring Success 92
Initial Expectations 95
Chapter 5: Becoming an Effective Programming Manager: Managing Down 99
Earning Technical Respect 100
Hire Great Programmers 105
Turbocharge the Team You Have 105
Managing Different Types of Programmers 106
Judging and Improving Performance 113
Organizational Thinking 123
Deliver Results and Celebrate Success 141
RULES OF THUMB AND NUGGETS OF WISDOM 143
The Challenges of Managing 147
Managing People 173
Managing Teams to Deliver Successfully 203
Chapter 6: Becoming an Effective Programming Manager: Managing Up, Out, and Yourself 227
Managing Up 228
Managing Out 234
Managing Yourself 250
Chapter 7: Motivating Programmers 269
Motivational Theories 269
Motivational Factors as Applied to Programmers 274
Putting Theory into Practice 279
Foundational Factors—Causes of Dissatisfaction (When Lacking) 280
Key Motivating Factors 303
Personal Commitment 312
Technology Offense and Defense 314
Understanding Your Programmers’ Motivations
Begins on Day One 316
Chapter 8: Establishing a Successful Programming Culture 318
Defining “Successful” 319
The Programming Culture 319
Company Culture 320
Characteristics of a Successful Programming Culture 327
Chapter 9: Managing Successful Software Delivery 347
Defining the Project 348
Planning the Work 358
Kicking Off the Plan 370
Executing the Work 376
Running the End Game 391
Delivering the Software 396