Realistically for companies rolling their own managers, it should be a gradual multi-year process.
Initially mentoring less experienced developers, then into running a small team, scaling up the managerial aspects and learning to let go of the code, hire great people and trust them to deliver over time.
The modern industry moves faster than that, new roles are machine gunned into our inboxes, we are told you can't stand still or you're hurting your own career.
Those aren't mutually exclusive situations, but it's certainly made more difficult by their orthogonality.
Initially mentoring less experienced developers, then into running a small team, scaling up the managerial aspects and learning to let go of the code, hire great people and trust them to deliver over time.
The modern industry moves faster than that, new roles are machine gunned into our inboxes, we are told you can't stand still or you're hurting your own career.
Those aren't mutually exclusive situations, but it's certainly made more difficult by their orthogonality.