Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Debugging Product Teams

Debugging Product Teams

Amy Isikoff Newell

October 27, 2021
Tweet

More Decks by Amy Isikoff Newell

Other Decks in Technology

Transcript

  1. @amynewell rubyconf 2021 A Systems Approach • A product team

    is a complex distributed people system embedded in and impacted by multiple other people systems and working in and affected by one or more complex distributed software systems. • The more you are able to observe and understand about all the systems impacting the team, the richer an understanding you will have of the problems on the team and the more opportunities you will see to intervene productively.
  2. @amynewell rubyconf 2021 Some Assumptions I Make That Don’t Matter

    • What is a product team? • Who are you on this product team? • Why are you debugging this team?
  3. @amynewell rubyconf 2021 Some Caveats That Do Matter • People

    want to do a good job. But it’s not always apparent what that means, and it’s not always possible for them to do what they’re being asked to. • Change is hard. It could take a long time. • You have limited observational and influential capacity. You may not be able to see or impact some of the reasons the team is struggling. • This is prime burnout territory.
  4. @amynewell rubyconf 2021 Map the systems • each individual on

    the team • the team itself • the software systems they are working in and with • other teams in the engineering org • cross-functional teams (sales, marketing, support, etc) • the leadership team, and their strategy and expectations • industry factors • systemic and societal issues
  5. @amynewell rubyconf 2021 Observe • Watch. Listen. Read. Be curious.

    Test your assumptions. • Look for patterns. • Ask questions about the patterns. • Try to fill in the gaps — what you yourself are unable to see. Accept your limits.
  6. @amynewell rubyconf 2021 Some Examples of Internal Problems • “performance

    problem” • unacknowledged or toxic power imbalances • culture that discourages collaborative behavior within and across teams • interpersonal issues • conflicts amongst the team members from various departments • process or tooling issues
  7. @amynewell rubyconf 2021 Intervene • perturb the system and see

    what happens. test and learn. • most interventions should be small to start • changing your own behavior is always the first place to start, and is possible whoever you are • engage the whole group in problem-solving when that makes sense • sometimes you need to move fast and do something big
  8. @amynewell rubyconf 2021 where you have limited influence, work to

    make the team more resilient • prioritize vacations and rest • rate limiting external requests • renogotiate explicit and implicit contracts with other groups • size up the team • consider tooling changes or changes to software systems • share information about challenges the team is facing, when you can.
  9. @amynewell rubyconf 2021 tl;dr • Caring for a living, changing,

    growing software team is an ongoing project. • Be curious. Consider the larger context and your own role. Map the systems, observe what’s happening, ask questions, try new things. • Don’t forget to acknowledge when things are going well. • Take care of yourself! This is intense work. Good luck!
  10. @amynewell rubyconf 2021 Thanks! www.amynewell.com to learn more sign up

    for my mailing list at www.amywriteswords.com twitter: @amynewell