In their infancy, software teams are fragile organisms trying to create an immense about of value (software) while trying to learn what they are actually doing (coding). They come together, work hard, support each other, and slowly but surely that fragility turns into a strong base on which the team's future is built and expanded.
They build on these successes and keep churning out more products and code, further strengthening their delivery. When done right, the cracks in the team's foundation are plugged before they become gaping wounds (i.e., technical debt, deploying bad fixes, ignoring the processes that have helped them all the way along, etc, etc).
But to reach that goal, there is the one Constraint that can upend this progress and plateau the team at a level where they can’t grow any further and instead stay mired at the level they are at, trying to move forward but continually being pulled back.
Without a Leader, a software team will consistently be limited and constrained by their lack of leadership that could fundamentally change the growth and trajectory of not only the team but the individuals as well.
It’s not just about having someone in the role of Leader on your team, it’s about having a scary good Leader that is able to disseminate everything around them and put it into a useful format for their team that will allow them to meet challenges head-on and grow.
I’m talking about;
- Setting Performance Baselines
- Structured delivery
- Working with Product and Sales Teams to know what is coming down the pipe and how the product is performing in the field.
- Running your own code as dog food to ensure it is always working.
- If the solution has to be hacked, generate a plan to address it from a holistic point of view in the near future.
- Managing Technical Debt, not by moving tickets but by figuring out a way to get them on the roadmap.
- Challenging and being challenged by their team on bad design and code.
- Working with each member to understand their growth and career objectives and helping them plan for it.
- Not managing by fires.
If you do not have a leader doing these things on your team, the growth and development of your team are being held back. If you are the leader of your team and you’re not looking at all of these things (at a minimum), you are constraining your team. It might not be on purpose, you might not even realize it (in most cases it is completely innocent that you have missed out on these tasks, that’s okay, now you know).
Customer issues missed targets, and blow-ups in Production, aren’t the cause, they are the symptom of what happens when your team is constrained.