Management | how_to_software_engineer
Project management is the discipline of planning, executing, and delivering work within constraints — scope, time, budget, and quality.
The core challenge: every project is a bet. You’re predicting what needs to happen, how long it will take, and what it will cost — all before you have complete information. The skill isn’t making perfect plans. It’s adapting when reality diverges from the plan (which it always does).
The big frameworks:
Waterfall — plan everything upfront, execute in sequence. Requirements → Design → Build → Test → Deploy. Works when requirements are stable and well-understood. Fails when they’re not (which is most of the time).
Agile — work in short iterations, deliver incrementally, adapt based on feedback. Scrum, Kanban, XP. Better for uncertain, evolving projects. See the Agile Mindset and related notes.
Lean — eliminate waste. Focus only on work that delivers value. Borrowed from Toyota’s manufacturing system.
Hybrid — most real-world project management is a mix. Use what works from each framework.
Universal project management skills:
- Scope management — knowing what’s in and what’s out. Scope creep is the #1 project killer.
- Stakeholder management — understanding who cares, what they care about, and keeping them aligned. See Active Stakeholder Participation.
- Risk management — identifying what could go wrong and planning for it before it does.
- Communication — most project failures are communication failures, not technical ones.
- Prioritization — see Prioritized Work. Doing the most valuable work first.
The best project managers aren’t control freaks — they’re facilitators. They remove blockers, align people, and create conditions for the team to do great work.
Related: Product Management, Planning, Business management