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