It's not always that. Sometimes (especially in smaller companies) the technical staff just leaves. Sometimes they get better offers. Sometimes they go off to start their own company.
I know some of what the OP is describing. I'm dealing with a system that's got three layers, each written in a different programming language. It was written by a pair of very brilliant programmers, who were unfortunately rather bad at documenting. They left the company when an after-hours project they were working on turned into a viable business opportunity.
When I deal with this system, I can piece together the what, but the why often escapes me, only to bite me later when I try something and it fails horribly. Luckily, I'm only dealing with software. I suspect that it'd be much more costly to deal with failures in OP's case.
I know some of what the OP is describing. I'm dealing with a system that's got three layers, each written in a different programming language. It was written by a pair of very brilliant programmers, who were unfortunately rather bad at documenting. They left the company when an after-hours project they were working on turned into a viable business opportunity.
When I deal with this system, I can piece together the what, but the why often escapes me, only to bite me later when I try something and it fails horribly. Luckily, I'm only dealing with software. I suspect that it'd be much more costly to deal with failures in OP's case.