This sort of object oriented programming was doomed to fail because it requires thoughtful world building and not a direct assault on the ticket you were assigned.

It you look at most of SOLID it is about building little pieces that eventually will fit together and rules to avoid incompatibilities when the world you built comes together.

What is most of SOLID?

Pretty much every item besides the Open Closed Principle which deals with deals with future changes touch on being able to snap pieces that know as little as possible about each other together to create the final product while being robust to change in the underlying pieces.

This comes out in the practical world in being able to make Java libraries that don't need to be recompiled or redistributed because of changes to other parts.