As an engineer if you leave a manhole cover open and people fall down, it is your responsibility. If you leave your code incomplete, people will discover your bugs.
When I was young I made that mistake: Leaving too much code to document and open that we had no time to make perfect(it was impossible,there was no physical time on our entire life for that).
Today we create a library, and a program with limited functionality but PERFECT and make people shooting on their feet impossible(limiting the functionality too). Very few things to document. It works as it should.
I learned that from Steve Jobs "saying no to things". Deciding who is your customer, deciding what is your problem is essential.
People don't want to do that. They don't want to select a customer and make a decision that could be wrong. So they leave it open.