Gardening is a good way of spending some quality me time and also in the process get used to accept things that take time, observe effects over weeks and months on our actions. As much as we like to see benefits of what we have sown immediately in the literal sense, nature’s template has its own way of doing things and it takes time. The harder you push by chemicals and interventions, you get nice blooms and fruits in a quick turnaround time but it prevents subsequent blooms forcing you to start again from scratch. We have to become a gardener if we want to grow a garden and know ways of sustaining a beautiful one, there are no shortcuts, just good practices and know hows.
If I look outside of software engineering, leaders grow from being an individual contributor in that field. I have met engineering managers who are so strong in their fundamentals that they would get back on the field and do a great job. In contrast, software engineering is plagued with leaders who cannot code. Adding more salt to the injury is the 3 day certifications that empower an individual to become a manager and deliver software projects without an idea of what it is to build a good software. These type of managers have no leverage other than compensations and brow beating to push people hard to the breaking point to get things delivered.
Proliferation of computing means every company is becoming a software company. What was purely electronics and mechanical is getting software driven. This means that managers in those companies are managing teams without knowing what is going on. The worldwide infamous example is crashing of airplanes due to software’s decision without pilot knowledge. In recent times a lot of electric vehicles catch fire and started making headlines, it has also resulted in loss of lives. We have been using battery powered devices in our pockets for so long, they don’t catch fire, why should these vehicles catch fire. The answer lies in pushing hard on the engineers, when the managers don’t know what is going on resulting in severe defects in engineering.
Leadership is hard, it takes years of practice on a field to become a leader. Software engineering leaders have to be in such a way that they are able to understand the implications of decisions on tech debt, design and architectural tradeoffs, quality assurance etc instead of blindly going behind an arbitrary deadline laced with fat bonuses.