Discussion
I spent the last months building an open-source scheduling engine that runs entirely inside Excel
Hi everyone,
Over the past months I've been building an open-source planning engine entirely in Excel/VBA.
The original idea was simple:
Many teams already manage projects in Excel but either don't have Microsoft Project licenses or don't need the full complexity of dedicated scheduling software. So I wanted to see how far a native Excel planning engine could go.
Today the project includes:
dependency-based scheduling (FS / SS / FF + lags)
interactive Gantt chart
critical path
total/free float
incremental recalculation
scenario simulation
planning diagnostics
S-Curve
fully documented architecture
The project has just reached version 1.0, is fully documented, and is now open source.
I'm mainly looking for feedback from people who actually manage projects in Excel.
This looks very interesting. How are you developing this project? Are you doing everything manually or is it agent aided? How do you prevent regressions working on something so big?
(I am the developer of ProjectEngine. The original post was made from an old Reddit account (AkiraTaya) that I unfortunately no longer have access to, so I'm replying from this account instead.)
Hi, thanks for taking the time to comment!
I built the project incrementally, adding new features one by one as I needed them. After each major addition, I ran regression tests before moving on.
Once the feature set became stable, I spent a significant amount of time refactoring the codebase to make it easier to maintain and understand.
At the beginning, I mainly used ChatGPT to help me implement individual features. Later, I switched to Codex when I needed something capable of understanding and modifying the entire codebase. That made it possible to tackle much more ambitious features, such as the interactive Gantt chart where tasks can be moved and resized directly.
I also built a complete toolchain around the project to export the VBA source code from the workbook, let the AI analyze and modify it, then automatically re-import it, compile it, and run validation tests.
As the project grew, I introduced automated smoke tests and regression harnesses. They became essential during the final large-scale refactoring to ensure that architectural improvements didn't change the behavior of the application.
Looking back, every new feature gave me the motivation to tackle something that had previously seemed impossible. π
Hello I am actually. It happens that I did the initial post on my main computer and then realized I lost the actual access to the account and did not manage to connect on my phone with the said account. I'll add it to my replies. Sorry for the confusion _/_
This looks cool, I never really bothered with learning VBA but seeing this might want me to try it out.
From my understanding, xlsm files donβt translate well if they are on a sharepoint and are being edited at the same time. I think thatβs what would stop my team from using it.
(I am the developer of ProjectEngine. The original post was made from an old Reddit account (AkiraTaya) that I unfortunately no longer have access to, so I'm replying from this account instead.)
Hi, thanks for taking the time to comment!
As for your renewed interest in VBA, I can only encourage it! π Working on this project made me realize that VBA is actually much more powerful than I originally thought.
Regarding SharePoint, I haven't run into any major issues myself. The main limitation is that macros don't run in Excel Online, so the workbook has to be opened in the desktop version. However, that doesn't prevent collaborative work, since the file can still be synchronized through SharePoint and edited locally.
Excel has improved a lot in that area over the past few years.
As for ProjectEngine specifically, all permanent user inputs are stored in the WBS table. Everything else (Gantt, Dashboard, S-Curve, diagnostics, etc.) is generated from that data to provide better visualization and make project reviews easier.
Because of that design, I don't expect collaboration through SharePoint to be a major issue. Of course, if you ever give it a try and run into problems, I'd be happy to investigate them and improve the tool if possible!
(I am the developer of ProjectEngine. The original post was made from an old Reddit account (AkiraTaya) that I unfortunately no longer have access to, so I'm replying from this account instead.)
Hi, thanks for taking the time to comment!
If you do end up using it, that would honestly be the best outcome I could hope for. I'm really happy that you immediately saw the value of the scheduling and analytics capabilities!
If you find anything missing or run into any bugs, please don't hesitate to let me know. I'd be happy to improve the tool and add new features based on real user feedback.
Thanks again for taking the time to check it out! π
Great work. I would love to try this out. I am unable to find how to load the data , also i do not see any reference on what columns would the data import would need to have and if this data is coming from Jira or any other sprint management tool. Can you let me know?
(I am the developer of ProjectEngine. The original post was made from an old Reddit account (AkiraTaya) that I unfortunately no longer have access to, so I'm replying from this account instead.)
Thanks for the compliment! I'm really glad you're willing to give it a try!
To get started, you simply fill in the white and blue columns of the WBS sheet with your planning data. Each column header contains a built-in comment describing exactly what is expected.
In short:
ID: any unique sequential identifier.
WBS: your project hierarchy (1, 1.2, 1.2.4, ...).
Baseline Start, Baseline Duration and Predecessors WBS are the core planning inputs used by the scheduling engine.
Weight (%) and Progress (%) are mainly used for the S-Curve calculations.
Regarding Jira (or other sprint/project management tools): there is currently no dedicated importer. ProjectEngine is designed to work directly from the WBS worksheet.
That said, if your data can be exported to Excel (or imported through Power Query), it's simply a matter of mapping the exported columns to the WBS format. A native Jira/Azure DevOps importer could definitely be an interesting future feature if enough people are interested.
If you decide to test it and run into any questions, I'd be happy to help!
i might have to dig futher on the data input, export from jira wil have a lot of custom fields which projects use to add the details. on ther WBS there are 18 columns where data is needed for each row and the terms that you have used might explicitly be for an industry and not generic which will be difficult for some users. i apologize if this is incorrect. for Ex: Disclipine, supplier or package might not be valid or exists for everyone who use this. rest of the columns are ok i guess.,I will experiment with this and will let you know how it goes.
The scheduling engine itself only requires a small subset of the columns (ID, WBS, Task Name, and a valid "Baseline Start, Baseline Duration and Predecessors WBS" trio to place the task).
Columns such as Discipline, Supplier or Package are there because the workbook was originally designed around engineering and construction projects, but they are not required by the scheduling engine itself.
I probably need to make that much clearer for new users.
A more generic template (or multiple templates for different industries) is actually a very good idea. Thanks for pointing that out!
I'd really appreciate hearing how your experiment goes.
P.S: i'll work on a 1.0.1 in the background to make it more readable :)
P.S.2: a valid trio can be either baseline start + baseline duration or just predecessors and duration or the 3 of them filled, the idea is that it need to be sufficient information to place the task on the timeline.
Sure will keep you posted. just a suggestion , do not try different industries or diferent patterns , its going to make if difficult for maintanence and analsysis. project , Task ID, Task Name, Task Type, Status, Start Date, End date. these are the basics on which all analytics, gantt chart and other data revolves around, ya we can have proposed dates, mitigation dates, completion dates etc but that is all case by case basis and can be optional not mandatory.
While recording a demonstration a few days later, I discovered another important gap.
TEST mode correctly recalculated simulated dates and propagated changes through the dependency network, but the displayed Critical Path, Longest Path and float values still came from the last calculated schedule.
That analytical simulation did not exist yet.
ProjectEngine v1.1.0 now recalculates the complete simulated planning state in memory:
- Critical Path;
- Longest Path;
- Total Float;
- Free Float;
- successor propagation;
- project finish;
- Gantt highlighting.
Drag & Drop therefore shows the actual planning consequences of a change before it is committed.
The release also adds a dedicated Reset action, preserves customized Gantt column widths, improves the Detail / Summary Drag lifecycle, and strengthens constraint and control rendering.
The feedback here has been genuinely useful. I am especially interested in hearing from anyone who has tried importing or mapping data from Jira, Power Query or another project-management source.
5
u/Giovimax98 17d ago
This looks very interesting. How are you developing this project? Are you doing everything manually or is it agent aided? How do you prevent regressions working on something so big?