A very common problem I see in most companies I work with, is both a lack of internal developer documentation, and also a lack of appreciation for how important this really is. There seems to be this assumption that the developer who has all that undocumented knowledge in their head (yes, you know the person) will always be around. They'll never leave for another job, they'll never get run over by a bus, they will always be available. Okay, hopefully the bus thing will never happen, but you get the point! Even when the developer goes on holiday - their knowledge is not available until they get back.