Had this multiple times. Reading code from 2 years ago and being like “what idiot wrote this” only to find out the culprit was me. Then the memories came back and I remember why the compromises were made. What I learned from that is not to judge people too much on their code. What you see is a combination of both their skill and also a whole bunch of necessary compromises for which you may not know the reason. Nowadays I don’t get too annoyed if the code is a bit messy. As long as it’s well tested and documented.
Had this multiple times. Reading code from 2 years ago and being like “what idiot wrote this” only to find out the culprit was me. Then the memories came back and I remember why the compromises were made. What I learned from that is not to judge people too much on their code. What you see is a combination of both their skill and also a whole bunch of necessary compromises for which you may not know the reason. Nowadays I don’t get too annoyed if the code is a bit messy. As long as it’s well tested and documented.
Yes — I think part of the lesson is to document the rationale and the compromises as much or more than the intended functionality.