Manager’s perspective:
- Be clear about the problem and expectations (e.g., metrics, cost, timeline, dependencies).
- Continuously provide clarifications and feedback to ensure the final outcome matches your expectations.
- Take early action when the progress is at risk.
Engineer’s perspective:
- Own the problem you are tackling. Proactively identify paths and risks to make sure you can deliver the outcome.
- Regularly share progress, and ask for help when necessary. Ironically, this can make you more self-managed because managers can safely assume you will escalate problems early instead of brewing catastrophe.
- Assess business impact. If you steadily deliver business impacts, managers have less reason to spoil your autonomy. If your company doesn’t show good judgment, you can consider this an environmental problem and look for other opportunities.
Valuable software problems are often ambiguous, and leaders don’t necessarily know the best solution. If handled well, managers can deliver a great outcome without getting deeply involved in all the problems. Engineers can solve interesting problems with high autonomy, making the job more satisfying. Companies that can empower employees this way will be much more competitive.
Self-management is the foundation of all different formats of leadership. It will be hard to grow impact by influencing others if you cannot manage yourself. In contrast, if you show excellent skills, that evidence can be a stepping stone for the next steps (e.g., becoming an engineering manager).