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.
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.
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
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.
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
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
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.
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!