Is it only lack of documentation?

Today, I want to pose an interesting question that I think is really worth of investigation. Or maybe there is already an answer and I ignore it.

In many occasions it happened to me, but I believe it happens to many other programmers too, that looking again to some piece of code we wrote few weeks before we wonder things like, “did I really wrote this code?”, “what I wanted to do here?” and so on.

We might argue that our main fault is because we were too lazy to write a documentation. Is it actually the only reason?

More specifically I am asking whether the lack of documentation is the only reason why we struggle in understanding our own old code?

Perhaps, something is happening to us or at least it already happened. We are in the middle of a learning process and we developed a new way of thinking that contrasts the old one. Who knows?

Photo Flickr