Is there a systematic, step-by-step approach to help junior developers improve their awareness/senses of edge cases?
There are some low hanging fruits that are easy to explain and demonstrate. For example, boundary-value analysis [1], division by 0, removal of an item from an empty container, etc. However, sometimes it feels more like art than science (i.e. I know it when I see it. ).
Any feedback and/or idea is greatly appreciated. Thank you.
*1: Borrowed from Dick Guindon's "Writing is nature's way of telling us how lousy our thinking is."
[1]: https://en.wikipedia.org/wiki/Boundary-value_analysis