Here is my subjective list of reasons why databases don't get documented. In a later article on why it is bad for your team, project and organization.
1. "It is obvious"
What is here to document, you may ask. It is obvious. Every table and column has a meaningful name. Easy. Why waste time to create a document. There are more important things to do.
2. "I know all this"
Maybe it's not obvious, it has gotten a little big and complex, but hey, I got this under control. I know every single table and column. If not me, then Jack definitely knows.
3. "It's not fun"
I'd rather check Facebook. Oh, look, a cat in a hat.
4. "There's no time. Later"
Yes, it's about time we did some documentation of this database. But not just yet. A little later, when we are done with adding even more complexity.
5. "I don't remember any more"
I remember I knew what was that table for a year ago when I created. I have no clue now. Maybe Jack knows. Oh right, he doesn't work here anymore.
6. "There is no-one in charge"
Well, I just added a few tables and views but I don't run the show. I don't understand most of it. It's not my responsibility.
7. "It just got too convoluted"
In the beginning it all made sense. After all those updates and changes it doesn't make sense now. I don't think it makes sense to document this mess, we should start this from scratch. Then we will document.
8. "There is no-one who knows this any more"
It's too late. Everyone who ever knew any of this database schema is long gone. Now it's just me and I have no clue.
9. "We got this as a black box"
We just got this application with a database and it was not supposed to be accessed directly. Database documentation was never a part of a contract. It's their IP they say. Who knew we will have those Business Intelligence, Data Warehouse, Big Data and Data Analytics projects... Who knew...
10. "I want to keep my job and being important"
If I document everything I might become obsolete or lose bargaining power. Now they need me because I'm the only one who knows how this works. As long as no-one makes me do it, why would I do it on my own?
(idea for this one came from DangZagnut)
11. "I'm lazy"
I probably should do some documentation but let's check Facebook first. Look, a kitten. How cute!
(this one came from yer_muther)
12. "There's no easy way, there's no tool"
There's no convenient tool for that. Databases don't support data dictionaries. There are comments but that is cumbersome. Word and Excel are not a good option too - even if done at go-live it is a nightmare to keep it up to date as database changes.
(this one came from 60secs)
Actually, there is a good tool to create and maintain Data Dictionaries - check out Dataedo.
13. "Customer doesn't want to pay for it"
You might see the importance of the documentation, and your customer or manager might too, but the moment it appears in the quote it suddenly doesn't seem like this is something they should pay for. If it was free then sure! Guess what, there's no free lunch :).
(this one came from Noëlla Gabriël)