One mistake most managers, head of engineering, etc do.... They are becoming so disconnected from the team on the battlefield, that they start sucking at their job. I've seen it way too many times. It doesn't automatically mean managers should code daily, but they need to stay close to the team. 20% of their time should be dedicated to experience the teams' struggle, and only then, they will be able to do their job right.

I would even argue that CTOs should put effort to work closely with the organisation they lead. Otherwise... Well, pick any classic corporation where guys on top have no clue what is happening on the bottom.

Ps. I will never understand companies where software managers have no real world experience with languages their teams are using. They are people managers that will probably never become leaders.