There are certain hard problems in any industry. In software industry the following are quite widely considered to be the two (!) hardest problems:
- naming things
- cache invalidation
- off-by-one errors
This is of course a famous joke, but nevertheless, I would agree with it. Anyone who has worked for a sufficient amount of years in software industry can agree that these are at least hard problems.
But, these are valid in a rather low level of the whole process. If you look at things on a higher level, you might end of with a different list.
Currently (I may change my mind in the years to come) I feel that the following represent the hardest problems in software industry, when looking on a higher level:
- all problems are people problems
- learn to live with imperfection
You probably recognized that these are not my inventions. Indeed, I believe that many (if not most) industries may share the same hardest problems.