
I built a real project scheduling engine entirely in Excel — now I’m stress-testing it with 1,200 tasks
I started ProjectEngine because Excel is often the only tool everyone has access to, while proper scheduling software such as MS Project or Primavera P6 is not always available.
Most Excel Gantt charts are essentially visual tables, so I wanted to see whether Excel could support an actual scheduling engine instead.
ProjectEngine is now an open-source Excel/VBA application with:
- dependency-driven scheduling;
- FS, SS and FF relationships with lag;
- Critical Path, Longest Path and float analytics;
- baseline, actual and forecast tracking;
- milestones, summaries and Level of Effort tasks;
- non-destructive TEST and SCENARIO workflows;
- an interactive Gantt with drag and resize;
- dashboards and S-curves;
- English and French interfaces.
It remains completely local and Excel-native. There is no installer, server or account.
The project has now reached 12 GitHub stars, and the latest release has been downloaded 36 times, which is much more interest than I expected for such a niche tool.
The current challenge is performance at scale.
My stress-test workbook contains roughly 1,200 tasks, 2,000 task-related Shapes and 1,180 dependency links. I have already moved most calculations into indexed in-memory structures and replaced around 3,100 dependency Shape segments with a single generated SVG layer.
The scheduling engine itself is now relatively fast. The remaining work is mostly about reducing the cost of projecting the result back into Excel without giving up the native interactive Gantt.
I am currently finishing that performance work before publishing the next release.
I would be interested in feedback from both project managers and developers:
- Is the purpose of the project clear from the repository?
- Would an Excel-native scheduling engine be useful in your environment?
- What size of schedule would you realistically try with it?
- What would prevent you from replacing a conventional Excel Gantt with something like this?
Project and source code: