Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams, 2nd Edition

Book description

The Essential Guide to Effectively Managing Developers So You Can Deliver Better Software—Now Extensively Updated

“Lichty and Mantle 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 form a great blueprint for new and experienced software engineering managers alike.”
—Tom Conrad, CTO, Pandora

“Reading this book’s nuggets felt like the sort of guidance that I would get from a trusted mentor. A mentor who I not only trusted, but one who trusted me to take the wisdom, understand its limits, and apply it correctly.”
—Mike Fauzy, CTO, FauzyLogic

Today, many software projects continue to run catastrophically over schedule and budget, and still don’t deliver what customers want. Some organizations conclude that software development can’t be managed well. But it can—and it starts with people. In their extensively updated Managing the Unmanageable, Second Edition, Mickey W. Mantle and Ron Lichty show how to hire and develop programmers, onboard new hires quickly and successfully, and build and nurture highly effective and productive teams.

Drawing on over 80 years of combined industry experience, the authors share Rules of Thumb, Nuggets of Wisdom, checklists, and other Tools for successfully leading programmers and teams, whether they’re co-located or dispersed worldwide. This edition adds extensive new Agile coverage, new approaches to recruitment and onboarding, expanded coverage of handling problem employees, and much more. Whether you’re new to software management or you’ve done it for years, you’ll find indispensable advice for handling your challenges and delivering outstanding software.

  • Find, recruit, and hire the right programmers, when you need them
  • Manage programmers as the individuals they are
  • Motivate software people and teams to accomplish truly great feats
  • Create a successful development subculture that can thrive even in a toxic company culture
  • Master the arts of managing down and managing up
  • Embrace your role as a manager who empowers self-directed agile teams to thrive and succeed

Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Table of contents

  1. Cover Page
  2. About This eBook
  3. Half Title Page
  4. Title Page
  5. Copyright Page
  6. Dedication Page
  7. Contents
  8. Preface
  9. About the Authors
  10. Chapter 1. Why Programmers Seem Unmanageable
    1. What Do Programmers Do?
    2. Why Is Becoming a Successful Programming Manager Hard?
  11. Chapter 2. Understanding Programmers
    1. Programming Disciplines
      1. Embedded and IoT Programmers
      2. Frontend Programmers
      3. Backend Programmers
      4. Database Programmers
      5. Web Developers and Other Scripters
      6. Fullstack Programmers
      7. DevOps
      8. DevSecOps
    2. Types of Programmers
      1. System Engineers/Architects
      2. Systems Programmers
      3. Application Programmers
      4. Not Really Programmers
      5. Domain Expertise
    3. Programmer Job Requirements and Abilities
    4. Proximity and Relationship
      1. In-House Employees
      2. Geographically Distant Employees
      3. Contractors
      4. Contracted Managed Teams and Outsourcing Companies
    5. Generational Styles
    6. Personality Styles
      1. Left-Brain versus Right-Brain People
      2. Night versus Morning People
      3. Cowboys versus Farmers
      4. Heroes
      5. Introverts
      6. Cynics
      7. Jerks
    7. Summary
    8. Tools
  12. Chapter 3. Finding and Hiring Great Programmers
    1. Determining What Kind of Programmer to Hire
    2. Writing the Job Description
    3. Selling the Hire
    4. Recruiting Full-Time Employees (FTEs)
      1. Always Be Recruiting
      2. Budgeting for Recruiting
      3. Recruiter Case Study
      4. Employee Referrals
      5. Effective Recruiting
      6. Recruiting Tips
    5. Recruiting Contractors
    6. Reviewing Résumés
    7. Narrowing the Field
    8. Preparing to Interview
    9. Interviewing
    10. Making the Decision to Hire a Programmer
    11. Making the Right Offer to a Programmer
    12. Follow Up until the Programmer Accepts
    13. Summary
    14. Tools
  13. Chapter 4. Getting New Programmers Started Off Right
    1. Get Them on Board Early
    2. Preparing for Their Arrival
    3. First-Day Musts
    4. Introductions
    5. Ensuring Success
    6. Initial Expectations
    7. Summary
    8. Tools
  14. Chapter 5. Becoming an Effective Programming Manager: Managing Down
    1. Earning Technical Respect
    2. Hire Great Programmers
    3. Turbocharge the Team You Have
      1. Manage Types of Programmers Differently
      2. Facilitation
      3. Dashboards
      4. Protect Your Team
    4. Judging and Improving Performance
      1. Setting Objectives
      2. Performance Reviews
        1. Anniversary Date Performance Reviews
        2. Focal Point Performance Reviews
        3. Performance Review Process
        4. Contractors: No Performance Reviews Necessary
      3. Know When to Cut Your Losses
      4. Exit Checklist
    5. Organizational Thinking
      1. Staffing
        1. Full-Time versus Contractors
        2. In-House versus Offshore Contractors
      2. Organizing
        1. Office-Based versus Virtual Teams
        2. Programmer Teams—Small versus Large Teams
        3. Managing Larger Organizations
      3. Functional Programming Departments
      4. Cross-Functional Teams
      5. Agile Teams
    6. Troubleshooting a Dysfunctional Organization
    7. Deliver Results and Celebrate Success
    8. Summary
    9. Tools
  15. Chapter 6. Becoming an Effective Programming Manager: Managing Up, Out, and Yourself
    1. Managing Up
      1. Understand Your Boss
      2. Package Your Communications
      3. Understand Your Boss’s Boss
      4. Timing
      5. Be a Model Employee
      6. Bottom Line
    2. Managing Out
      1. Collaborating within Your Department
      2. Understand Other Departments
      3. Leverage Important Support Functions
        1. Human Resources (HR)
        2. Finance and Managing Budgets
        3. Headcount
        4. Consultants and Contractors
        5. Equipment and Tools
        6. Travel and Training
        7. Legal
      4. Managing Outside the Company
        1. Customers
        2. Technology Providers
        3. Technology Innovators and Work Disruptors
        4. Tools Vendors and Suppliers
        5. Government, Trade, and International Standards Organizations
        6. Industry Consortiums
        7. Professional Organizations
        8. University Educators
        9. Local Connections
      5. Bottom Line
    3. Managing Yourself
      1. Personal Style
        1. Appropriate Appearance
        2. Work Ethic
        3. Know Your Staff
      2. Time and Priority Management
      3. Communications Management
      4. Management Practices
        1. Pay Attention to the Person
        2. Listen Reflectively
        3. Break Down Barriers to Communication
        4. Understand What Is Really Important
        5. Make Progress Every Day
        6. Be Part of the Solution, Not Part of the Problem
      5. Follow-Up Management
        1. Daily Task List
        2. Action Items
        3. Reminders
      6. Find a Mentor
      7. Bottom Line
    4. Summary
    5. Tools
  16. Rules of Thumb and Nuggets of Wisdom
  17. The Challenges of Managing
  18. Managing People
  19. Managing Teams to Deliver Successfully
  20. Chapter 7. Motivating Programmers
    1. Motivational Theories
      1. Maslow’s Hierarchy of Needs
      2. McGregor’s X-Y Theory
      3. Herzberg’s Motivation and Hygiene Factors
    2. Motivational Factors as Applied to Programmers
    3. Putting Theory into Practice
    4. Foundational Factors—Causes of Dissatisfaction (When Lacking)
      1. Respect for Supervisor
        1. Gain Technical Respect
        2. Respect Others
        3. Establish Your Culture
        4. Lead by Example
        5. Help Solve Technical Problems
        6. Manage and Coach
        7. Focus on Your People
      2. Having Fun
      3. Learning and Growing
      4. Good Working Conditions
        1. Make the Workplace a Good Place to Work
        2. “No Jerks” Rule
        3. Be Flexible
        4. Feed Your Team
      5. Sane Company Policies and Administration
        1. Communicate
        2. Protect Your Staff from Organizational Distraction
        3. Protect Your Staff from Bad Organization Communication and Policies
      6. Ethical Management
        1. Be Ethical and Professional at All Times
        2. Be Fair
        3. Compensate Fairly
        4. Promote Appropriately
    5. Key Motivating Factors
      1. Making a Difference in the World
      2. Learning and Growing
      3. Toys and Technology
      4. Recognition and Praise
      5. Having Fun with Your Staff
      6. Upside
    6. Personal Commitment
    7. Technology Offense and Defense
    8. Understanding Your Programmers’ Motivations Begins on Day One
    9. Summary
    10. Tools
  21. Chapter 8. Establishing a Successful Programming Culture
    1. Defining “Successful”
    2. The Programming Culture
    3. Company Culture
      1. Leveraging the Complexity of Your Company’s Culture
      2. Walling Off Your Company’s Culture
      3. What Part Does Technology Play in Your Company?
      4. What Drives Your Company?
    4. Characteristics of a Successful Programming Culture
      1. Mutual Respect
      2. Innovation
      3. Standards
      4. Delivery
      5. Communication
      6. Communication among Virtual Teams
      7. Fairness
      8. Empowerment
      9. Professionalism
      10. No Jerks and Bozos
      11. Excellence
      12. Programming Excellence
      13. Teamwork and Collaboration
      14. Passion
      15. Customer Focus
      16. Learning
      17. Environment
    5. Summary
    6. Tools
  22. Chapter 9. Managing Successful Software Delivery
    1. Inspire Purpose
    2. Define “Success”
      1. Recognize Nonnegotiable Dates
      2. Plan for Rewards
    3. Demand Clear Requirements
      1. Collaborate to Prioritize Requirements
      2. Limit Requirements to “What,” Not “How”
      3. Seek to Delight Customers
    4. Define “Done”
    5. Ballpark the Effort Required
      1. Estimation: No One-Size-Fits-All
    6. Ensure There’s Appropriate Architecture and Design
      1. How Much Design Is Enough?
      2. Value Proofs of Concept, Prototypes, and Spikes
      3. Hold Design Reviews
    7. Support the Work
      1. You Need a Plan
      2. Determine the Pace of the Project
      3. Set Agreed-Upon Milestones
      4. Ensure Everyone Is Communicating
      5. Keep Focus on the Mission
      6. Remove Impediments
      7. Ensure That Agreed-Upon Standards and Requirements Are Met
      8. Leverage Test-Driven Development
      9. Insist on Code Reviews
    8. Ship It/Go Live!
      1. No New Features
      2. Run the Product
      3. Be Prepared to Declare Success and Start on the Point Release
      4. Know When to Cut Your Losses
      5. OEM and International Versions
    9. Wrap Up
      1. Celebrate
      2. Retrospect
      3. Share
      4. Refactor
      5. Point Releases
    10. Summary
    11. Tools
  23. Chapter 10. If You Are Agile, What Do Managers Do?
    1. Why Managers May Feel Left Out
    2. How Agile Changes Managers’ Roles
    3. There Are Management Roles in Agile
    4. How Agile Organizational Restructuring Also Changes Managers’ Roles
    5. Ten Critical Roles for Agile Managers
      1. 1. Foster an Agile Culture
      2. 2. Embrace Agile Values
      3. 3. Coach and Mentor Good Agile Practices
        1. Enable Self-Organizing Teams
        2. Ensure Communication
        3. Embrace Change
        4. Set Quality Expectations
        5. Foster Continuous Improvement
        6. Apply Timeboxing
      4. 4. Dispel Myths about Agile
        1. Myth: Agile Is about Practices
        2. Myth: Agile Is What Developers Do
        3. Myth: Agile Means Product Owners Do Less
        4. Myth: Agile Has No Rigor
        5. Myth: Agile Teams Cannot Supply Estimates
        6. Myth: Agile Has No Architecture
        7. Myth: Agile Means We Don’t Need Roadmaps
      5. 5. Be Mindful of Agile Patterns and Antipatterns
        1. Support Agile Success Patterns
        2. Recognizing Agile Antipatterns Is Equally Important
      6. 6. Lead Technical Communities of Practice That Span Scrum Teams
      7. 7. Remove Impediments
      8. 8. Counsel and Coach
      9. 9. Hire
      10. 10. Fire
    6. Summary
    7. Tools
  24. Tools
  25. Index

Product information

  • Title: Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams, 2nd Edition
  • Author(s): Ron Lichty, Mickey W. Mantle
  • Release date: December 2019
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 9780135667637