I'm making little progress on a major project. The source is massive, many layers of objects, macaroni code, double-diamond graphs of multiple inheritance, half-baked features frozen when the original writer left, and no one knows why many pieces of it were designed the way they were. So, I suppose any competent programmer would have some trouble figuring it all out well enough to fix bugs, finish the half-baked stuff and add new features. But I suspect I'm going slower than a typical programmer.
How to judge whether the source is unusually bad, and I'm just doing as well as anyone could, versus the source is typical for a project like this and I'm just slow-witted or underskilled?

