Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams
Book information
Description
“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. 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
Similar books
Coaching for Software Developers
2023 · EPUB
Apache Spark 2 for Beginners
2016 · PDF
Creative Coding in Python: 30+ Programming Projects in Art, Games, and More
2018 · PDF
There Is No Software, There Are Just Services
2015 · PDF
Programming in Lua, Fourth Edition
2016 · PDF
MySQL® Notes for Professionals book
2018 · PDF
EFFECTIVE C
2024 · PDF
Matematica Numerica. Metodi, Algoritmi e Software
2010 · PDF