Sometimes I find myself writing in reviews for less experienced developers the comment: this is clever but not clear.
I think as developers we get too enthralled in the problem solving and forget that in the long run we are more like journalists noting business rules at a snap-shot in time, which a future maintainer of our software must act as historian/archaeologist in order to understand.
What's funny is that often our future selves is the maintainer of our software. However, as we lament choices in the past, we continue to write intricate code in the name of elegance/conciseness.
These days I'm pretty pleased when I can say a piece of code utilises only syntax and statements taught in an introductory programming course.
I think as developers we get too enthralled in the problem solving and forget that in the long run we are more like journalists noting business rules at a snap-shot in time, which a future maintainer of our software must act as historian/archaeologist in order to understand.
What's funny is that often our future selves is the maintainer of our software. However, as we lament choices in the past, we continue to write intricate code in the name of elegance/conciseness.
These days I'm pretty pleased when I can say a piece of code utilises only syntax and statements taught in an introductory programming course.