Tuesday, July 28, 2009

Critical path gets revamped

Critical path, one of the most essential features in a project planning software, was announced a few years ago as a new feature of GanttProject. However, it has never worked properly. Here is how GanttProject 2.0.8 calculates the critical path in HouseBuildingSample project (critical tasks are in red):

The critical path is obviously wrong. Construction phase supertask is a chain of the critical path but its subtask are not included. Foundation building is a successor of Architectural design subtasks with no float, so they also should've been included in the critical path.
Working on new iText based PDF export I recently opened in my text editor the code of critical path algorithm implementation. Sighed and removed it completely. Spent a few evenings on the new implementation which would take into account supertasks, dependency lags, different kinds of dependencies, etc. Wrote a number of unit tests. As a result, here is how GanttProject 2.0.10 renders HouseBuildingSample critical path (critical tasks are red and textured):

The release candidate build of GP 2.0.10 is about to be published. Stay tuned!