Milestones are the punctuation marks of your project plan. They don't represent work — they represent decisions made, deliverables handed off, and gates passed. A plan without milestones is hard to communicate and hard to control.
What makes a good milestone?
A milestone should have a clear, binary outcome: it either happened or it didn't. Avoid vague milestones like "Development complete" — there is always one more bug. Instead use: "Build deployed to staging and smoke-tested."
Strong milestone examples:
- Project Kickoff (agreement to begin)
- Requirements Sign-off (written approval from stakeholders)
- Design Approved (final mockups signed off)
- Code Freeze (no new features, only bug fixes)
- Beta Released (shipped to test users)
- Go Live (publicly available)
- Post-Launch Review Held
Milestones in LoopGantt
A milestone is a task with duration = 0. It appears as a diamond symbol on the Gantt timeline. To create one:
- Add a task as normal.
- Set the duration to 0, or toggle the Milestone switch in the task editor.
- The task bar turns into a diamond (◆) on the Gantt.
Milestones can be assigned dependencies just like regular tasks. A common pattern: link the last task of a phase to a milestone that gates the next phase. This creates a clear "phase gate" in your plan.
Desired Date — schedule a task for a specific date
A Desired Date tells the scheduler when you want a task to start. The scheduler uses this date as long as it doesn't conflict with dependencies.
How it works:
- No dependencies: The task starts on the desired date.
- With dependencies, desired date is later: The task is delayed to the desired date — useful for intentionally pushing a task later within its available float (slack time).
- With dependencies, desired date is earlier: The desired date is ignored. A task cannot start before its predecessors allow.
Use desired dates for:
- Tasks tied to a fixed external date (conference, launch, regulatory deadline)
- Delaying a task to a specific day even though it could start earlier
- Milestones with a known target (e.g., "Go Live on July 31")