What is a Gantt chart?
A Gantt chart is a horizontal bar chart that visualises a project schedule over time. Each task is represented as a horizontal bar: the bar's left edge marks the start date, its right edge marks the end date, and its width represents the duration. Tasks are listed vertically on the left axis; the horizontal axis shows time in days, weeks, or months depending on the project length.
Gantt charts were developed by Henry Gantt in the early 20th century and remain the most widely used project scheduling tool because they make schedule, dependencies, and progress readable at a glance — information that is difficult to extract from a flat task list, a spreadsheet, or a Kanban board. Engineers use Gantt charts for sprint planning; project managers use them for programme scheduling; product teams use them for release planning.
Gantt chart elements
| Element | Visual | What it communicates |
|---|---|---|
| Task bar | Horizontal filled rectangle | A unit of work. Width = duration. Position on time axis = start and end dates. Label shows task name and optionally the responsible person. |
| Milestone | Diamond (◇) or vertical line | A zero-duration point in time: a deliverable due date, phase completion, external dependency, or go-live event. |
| Dependency arrow | Arrow from one bar to another | A scheduling constraint between tasks. The most common type is Finish-to-Start: the successor cannot start until the predecessor finishes. |
| Critical path | Task bars highlighted in red | The sequence of tasks that determines the minimum project duration. Delaying any critical path task delays the project end date. |
| Float / slack | Lighter bar extension beyond the task bar | The amount of time a non-critical task can slip before it delays the project. Tasks with zero float are on the critical path. |
| Progress fill | Partial fill inside the task bar | Percentage completion of the task. A 50% fill means the task is half done, allowing visual comparison with the current date line. |
| Today line | Vertical line at the current date | Makes the schedule status immediately readable: bars to the right of the today line are in the future; bars whose progress fill hasn't reached the today line are behind schedule. |
| Resource assignment | Label or colour on task bar | The person or team responsible for the task. Colour-coding by resource owner makes resource conflicts visible without a separate resource histogram. |
Task dependency types
Dependencies define scheduling constraints between tasks. Understanding all four dependency types is essential for building accurate Gantt charts.
| Type | Abbreviation | Rule | Example |
|---|---|---|---|
| Finish-to-Start | FS | B cannot start until A finishes | Testing cannot start until development finishes |
| Start-to-Start | SS | B cannot start until A starts | Documentation can start when development starts (but not before) |
| Finish-to-Finish | FF | B cannot finish until A finishes | QA sign-off cannot finish until bug fixing finishes |
| Start-to-Finish | SF | B cannot finish until A starts | Old system decommission cannot finish until new system starts (rarely used) |
Add lag time to a dependency to model a mandatory wait between tasks. Add lead time (negative lag) to model overlap — where a dependent task starts before its predecessor is fully complete. For example: "Code review starts 2 days before development finishes" is a Finish-to-Start dependency with a lag of -2 days.
Example: software release Gantt chart
Use this prompt in flow-chart.io to generate a Gantt chart for a four-week software release:
Software release Gantt chart, 4 weeks. Tasks: Requirements review (Days 1–3, Alice). Technical design (Days 2–5, Bob) — Start-to-Start with Requirements review. Backend development (Days 4–14, Bob) — Finish-to-Start after Technical design. Frontend development (Days 4–14, Carol) — Finish-to-Start after Technical design. Integration testing (Days 15–19, Dave) — Finish-to-Start after both Backend and Frontend development. Bug fixing (Days 18–21, Bob and Carol) — Start-to-Start with Integration testing. UAT (Days 20–23, Alice) — Start-to-Start with Bug fixing. Go-live milestone on Day 25. Highlight the critical path. Show a today line on Day 10. Show progress: Requirements review 100%, Technical design 100%, Backend development 60%, Frontend development 50%, all others 0%.
Critical path: what it is and how to read it
The critical path is the longest sequence of dependent tasks from project start to project end. It determines the minimum possible project duration. Any task on the critical path has zero float — it cannot slip even by one day without pushing back the project completion date.
To find the critical path: start from the project end and trace backward through Finish-to-Start dependencies to the start, following the longest duration path at each branch point. In flow-chart.io, describe the task network and ask for the critical path to be highlighted — the AI will calculate it and colour the critical path tasks distinctly.
- Focus risk management on critical path tasks — these are the tasks where schedule slippage has immediate project-level impact.
- Non-critical tasks have float: they can absorb some slippage without affecting the project end date. Float tells you how much runway each non-critical task has.
- Compressing the schedule (crashing) means adding resources to critical path tasks to shorten their duration. Crashing non-critical tasks has no impact on the project end date.
- Fast-tracking means running critical path tasks in parallel — changing Finish-to-Start dependencies to Start-to-Start. This compresses the schedule but increases risk.
- When a critical path task is delayed, recalculate the critical path — a previously non-critical path may become the new critical path after a delay.
Gantt chart vs. project roadmap: when to use each
| Dimension | Gantt Chart | Project Roadmap |
|---|---|---|
| Granularity | Task-level: days or weeks | Theme/epic-level: months or quarters |
| Audience | Project team executing the work | Stakeholders, leadership, customers |
| Detail shown | Individual tasks, owners, dependencies, progress | Major deliverables, themes, high-level timelines |
| Update frequency | Weekly or daily during execution | Quarterly or at major planning milestones |
| Tool | flow-chart.io, MS Project, Jira timeline | Product roadmap tools, slide decks, Miro |
| Best for | Execution planning, status tracking, resource coordination | Strategy communication, stakeholder alignment, prioritisation |
Gantt chart best practices
- Break tasks down to a size where progress is measurable within one reporting cycle. Tasks longer than two weeks are hard to track accurately — consider splitting them into sub-tasks.
- Assign one owner to each task. Tasks with no owner or multiple owners frequently slip because accountability is unclear.
- Show all external dependencies as milestones rather than tasks. Vendor delivery dates, approval gates, and third-party API readiness are external constraints — not work your team performs. Marking them as milestones makes the dependency visible without implying internal ownership.
- Review the critical path at every weekly status meeting. The critical path changes as actual progress diverges from the plan.
- Use progress fills to show actual vs. planned completion and compare against the today line. A task bar whose progress fill lags behind the today line is behind schedule — this is immediately visible on a well-maintained Gantt chart.
- Limit the Gantt chart to one project or one phase per diagram. A Gantt chart that spans multiple teams and six months at weekly granularity becomes unreadable. Use separate charts for each workstream and a summary roadmap to show the relationship between them.
- Save and version the Gantt chart at each planning milestone. Being able to compare the original baseline schedule to the current schedule is essential for retrospectives and for explaining timeline changes to stakeholders.
Frequently asked questions
- What is a Gantt chart?
- A Gantt chart is a horizontal bar chart that visualises a project schedule over time. Each task is represented as a horizontal bar whose width represents duration and whose position on the time axis represents start and end dates. Tasks are listed vertically on the left; time is shown horizontally. Gantt charts make schedule, dependencies, and progress readable at a glance — information that is hard to extract from flat task lists or spreadsheets.
- How do I show task dependencies in a Gantt chart?
- Dependencies are shown as arrows connecting task bars. The four dependency types are: Finish-to-Start (B cannot start until A finishes — most common), Start-to-Start (B cannot start until A starts), Finish-to-Finish (B cannot finish until A finishes), and Start-to-Finish (rarely used). Add lag time to model a mandatory wait, or lead time (negative lag) to model overlap between tasks.
- What is the critical path in a Gantt chart?
- The critical path is the longest sequence of dependent tasks from project start to end. It determines the minimum possible project duration. Tasks on the critical path have zero float — any delay to a critical path task delays the entire project. Critical path tasks are typically highlighted in red. Non-critical tasks have float: they can slip by their float amount without affecting the project end date.
- What is the difference between a Gantt chart and a project roadmap?
- A Gantt chart shows task-level scheduling detail — specific start/end dates, dependencies, owners, and progress — for the project team managing execution. A project roadmap shows theme or epic-level delivery over quarters, without task detail, for stakeholder alignment. Both are useful: a roadmap communicates strategy; a Gantt chart drives execution. Most projects maintain both in parallel.
- How do I show milestones in a Gantt chart?
- Milestones are shown as a diamond (◇) or vertical line on the date they occur. They have zero duration — they mark a point in time, not a period of work. Use milestones for phase completions, external dependency dates, customer sign-off points, and go-live events. Connect milestones to the tasks that must finish before them with Finish-to-Start dependency arrows.
- What export formats are available for Gantt charts?
- flow-chart.io exports Gantt charts as SVG (scalable vector, for Confluence or web docs), PNG at 2× and 4× resolution (for slides and reports), PDF (print-ready status reports), and JSON (re-importable scene graph for future editing). All exports are derived from the editable scene graph — not screen captures — so they remain sharp at any resolution.
- Is the generated Gantt chart editable, or is it a static image?
- Fully editable. flow-chart.io generates a typed scene graph, not a raster image. Every task bar, dependency arrow, milestone, and date label is a named object you can rename, drag to change dates, or delete. You can add new tasks, adjust dependency types, change milestone dates, or highlight the critical path without rebuilding the chart. Nothing is flattened to pixels until you export to PNG or PDF.