“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.
Author(s): Mickey W. Mantle, Ron Lichty
Edition: 1st
Publisher: Addison-Wesley Professional
Year: 0
Language: English
Pages: 464
Tags: managing, software, people, programming
Cover......Page 1
Title Page......Page 8
Copyright Page......Page 9
Contents......Page 12
Preface......Page 22
About the Authors......Page 28
Chapter 1 Why Programmers Seem Unmanageable......Page 32
What Do Programmers Do?......Page 34
Why Is Becoming a Successful Programming Manager Hard?......Page 38
Chapter 2 Understanding Programmers......Page 40
Client Programmers......Page 41
Database Programmers......Page 42
Web Developers and Other Scripters......Page 43
Types of Programmers......Page 44
System Programmers......Page 45
Application Programmers......Page 46
Domain Expertise......Page 47
Programmer Job Requirements and Abilities......Page 48
Proximity and Relationship......Page 51
In-House Employees......Page 53
Geographically Distant Employees......Page 54
Contracted Managed Teams and Outsourcing Companies......Page 55
Generational Styles......Page 56
Personality Styles......Page 58
Left-Brain versus Right-Brain People......Page 59
Night versus Morning People......Page 60
Heroes......Page 62
Introverts......Page 63
Summary......Page 64
Tools......Page 65
Chapter 3 Finding and Hiring Great Programmers......Page 66
Determining What Kind of Programmer to Hire......Page 68
Writing the Job Description......Page 70
Selling the Hire......Page 76
Recruiting Full-Time Employees (FTEs)......Page 77
Always Be Recruiting......Page 78
Budgeting for Recruiting......Page 79
Recruiter Case Study......Page 81
Employee Referrals......Page 82
Effective Recruiting......Page 84
Recruiting Tips......Page 85
Recruiting Contractors......Page 87
Reviewing Résumés......Page 88
Narrowing the Field......Page 90
Preparing to Interview......Page 91
Interviewing......Page 98
Making the Decision to Hire a Programmer......Page 103
Making the Right Offer to a Programmer......Page 107
Follow Up Until the Programmer Accepts......Page 113
Tools......Page 114
Chapter 4 Getting New Programmers Started Off Right......Page 115
Get Them on Board Early......Page 116
Preparing for Their Arrival......Page 117
First-Day Musts......Page 118
Introductions......Page 122
Ensuring Success......Page 123
Initial Expectations......Page 126
Tools......Page 129
Chapter 5 Becoming an Effective Programming Manager: Managing Down......Page 130
Earning Technical Respect......Page 131
Turbocharge the Team You Have......Page 136
Managing Different Types of Programmers......Page 137
Protection......Page 142
Judging and Improving Performance......Page 144
Setting Objectives......Page 145
Performance Reviews......Page 148
Know When to Cut Your Losses......Page 153
Organizational Thinking......Page 154
Staffing......Page 155
Organizing......Page 161
Troubleshooting a Dysfunctional Organization......Page 171
Deliver Results and Celebrate Success......Page 172
Tools......Page 173
RULES OF THUMB AND NUGGETS OF WISDOM......Page 174
The Challenges of Managing......Page 178
Managing People......Page 204
Managing Teams to Deliver Successfully......Page 234
Chapter 6 Becoming an Effective Programming Manager: Managing Up, Out, and Yourself......Page 258
Understand Your Boss......Page 259
Package Your Communications......Page 261
Understand Your Boss’s Boss......Page 262
Be a Model Employee......Page 263
Bottom Line......Page 264
Collaborating within Your Department......Page 265
Understand Other Departments......Page 266
Leverage Important Support Functions......Page 268
Managing Outside the Company......Page 273
Personal Style......Page 281
Time and Priority Management......Page 285
Communications Management......Page 287
Management Practices......Page 291
Follow-Up Management......Page 295
Find a Mentor......Page 297
Bottom Line......Page 298
Tools......Page 299
Motivational Theories......Page 300
Maslow’s Hierarchy of Needs......Page 301
McGregor’s X-Y Theory......Page 302
Herzberg’s Motivation and Hygiene Factors......Page 303
Motivational Factors as Applied to Programmers......Page 305
Putting Theory into Practice......Page 310
Foundational Factors—Causes of Dissatisfaction (When Lacking)......Page 311
Respected as Supervisor......Page 312
Having Fun......Page 317
Learning and Growing......Page 318
Good Working Conditions......Page 320
Sane Company Policies and Administration......Page 325
Ethical Management......Page 328
Making a Difference in the World......Page 334
Learning and Growing......Page 336
Recognition and Praise......Page 338
Having Fun with Your Staff......Page 340
Upside......Page 341
Personal Commitment......Page 343
Technology Offense and Defense......Page 345
Understanding Your Programmers’ Motivations Begins on Day One......Page 347
Summary......Page 348
Chapter 8 Establishing a Successful Programming Culture......Page 349
The Programming Culture......Page 350
Company Culture......Page 351
Leveraging the Complexity of Your Company’s Culture......Page 352
Walling Off Your Company’s Culture......Page 353
What Part Does Technology Play in Your Company?......Page 354
What Drives Your Company?......Page 356
Characteristics of a Successful Programming Culture......Page 358
Mutual Respect......Page 359
Innovation......Page 360
Standards......Page 361
Delivery......Page 362
Communication......Page 363
Communication Among Virtual Teams......Page 365
Fairness......Page 367
Empowerment......Page 368
Professionalism......Page 369
No Jerks and Bozos......Page 370
Programming Excellence......Page 371
Customer Focus: “It’s the Customer Experience, Stupid!”......Page 372
Learning......Page 374
Environment......Page 375
Tools......Page 377
Chapter 9 Managing Successful Software Delivery......Page 378
Defining the Project......Page 379
Ensure That Requirements and Assumptions Are Clear......Page 380
Limit Requirements to “What,” not “How”......Page 383
Seek to Delight Customers......Page 384
Quickly Ballpark the Magnitude of Effort Required......Page 385
Inspire the Team......Page 387
Planning the Work......Page 389
Break the Project into Features, and Prioritize Them......Page 390
Break Features into Tasks and Sub-Tasks......Page 392
Assemble Task Estimates into a Project Estimate......Page 393
Look for the Limitations on Estimation......Page 395
Get Agreement Around the Risks, Not Just the Schedule......Page 397
Estimation Is a Unique Challenge Every Time......Page 399
Determine the Pace of the Project......Page 400
Participate in a Project Kickoff......Page 401
Define “Done”......Page 402
Define “Success”......Page 403
Establish a Project Workbook......Page 404
Design the Work......Page 407
Hold a Design Review......Page 410
Complete a Prototype to Inform the Design......Page 411
Set Agreed-Upon Milestones......Page 412
Confirm That Regular Check-In Meetings Have Been Set......Page 413
Actively Drive Development......Page 415
No New Features......Page 422
Be Prepared to Declare Success and Start on the Point Release......Page 423
Know When to Cut Your Losses......Page 425
Celebrate......Page 427
Retrospect......Page 428
Refactor......Page 431
Summary......Page 432
Tools......Page 433
TOOLS......Page 434
A......Page 438
C......Page 439
D......Page 441
E......Page 442
G......Page 443
I......Page 444
L......Page 445
M......Page 446
N......Page 447
P......Page 448
R......Page 449
S......Page 450
U......Page 452
Z......Page 453