Maybe we were just interpreting things wrong, but it was very difficult to agree on what those principles meant in practice.
Liskov's substitution principle is also rather complex. I'm not sure I correctly understand it, but I think it is widely violated even by good code. If I have it right, the principle means the result of your program cannot change, no matter what subtype you substitute.