This post started as a comment on to the following discussion on LinkedIn.
Inheriting a framework can be challenging.
First of all, because a real world framework is more complex than something just created. There is bound to be exception cases and technical debt included.
Secondly, an existing test framework was built by people on deadlines with limited knowledge. There are bound to be mistakes, hacks, and workarounds. Not to mention input from multiple people with different skillsets and opinions.
In this case, the best way to understand your framework is to understand your tests. Your tests exercise the framework. Pick one of low-moderate complexity and work your way through it, understanding the configuration, data, and architecture.
Don’t be afraid to break things. After all, you have all these tests that will let you know if you broke the framework.
Lastly, having a checklist of things to look for, good and bad practices will help you understand the framework better — and help you know what quality of framework you’re dealing with. Is this mystery function really clever or just a bad idea?
Look for standard patterns. OOP, Page Objects, etc. Also look for common problems – hard coded values, repetitious code, etc.