How to Plan and Execute Software Projects 🚢
A no-nonsense guide to build the right things and build them on time.
It’s early January, which for many teams means planning projects for the coming months — or the full year.
Are these plans usually successful? Do you meet your deadlines? If you are anything like me, your track record on this might be… complicated.
Software projects of any kind — new features, internal tools, automations — can usually fail in two main ways:
🙅♂️ Built the wrong thing — everything goes according to the plan, but it turns out the plan was wrong. Users don’t care about the new feature, or the new internal tool doesn’t solve your co-workers’ problems.
⌛ It took too long — the project was due in three months, but it took seven to get things done. Scope creep? Wrong estimates? Or is it just the nature of engineering?
Executing software projects right is kind of an art. During these years, thanks to the Refactoring community, I had the chance to meet incredible tech leaders who delivered extraordinary feats, and I learned a lot from them.
To write this piece, I went back to my chats with Aadil, who led programs at Google, Apple, and delivered the insanely complex Humane AI Pin; with James, who designed and delivered the multi-exabyte Dropbox storage system; with Thiago, Rado, and many more.
This edition puts together the best ideas that I learned from tens of such leaders, combined with my personal experience, with the goal of giving you a compact framework for executing projects right.
Here is the agenda:
📏 Scoping — how to approach estimates, negotiations, and budgets.
🗿 Milestones — how to design checkpoints to remove uncertainty and create progress.
🚀 Executing — how to stay on track on long projects, with divergence and convergence.
⏱️ How much time you have — how to take the rest of your work into account.
Let’s dive in!