But there are many legitimate reasons why one would clarify it as "harder" than programming:
- It requires a different skillset, namely writing.
- It is not uncommon for non-english shops to have a policy of documentation in english. That might be sensible, but complicates the task even further.
- In programming, it suffers from the same problems as math: Natural language is more often than not unsuited to express entirely abstract concepts, at least in concise and easily understandable ways.
- Conversely, natural language often lacks the necessary precision to talk about technical details.
- To alleviate all these problems with language somewhat, you might opt to use diagrams. Which requires yet another skillset.
- It requires time. And quite a lot of it actually. Usually more than you need for the actual programming task. This is why most managers care way less about documentation than they should: They know very well that it detracts time from actual programming tasks.
So sure, people tend to be lazy, but there are certainly good reasons why that happens more often in this area of our work than in others.
What people can do it help allievate the gaps, but sadly, they're not geeting much help from managers and business people this time 'round either.
Some even mentioned "code as documentation". In the end, they just kept finding justifications for not writing documentation or even proper code comments.
Three months after some solution was written, they couldn't explain the thinking behind it or even all the deep dependencies and magic return values because the person who had written the solution had left the team. Even then they were unwilling to see how documentation would have helped.
This repeated with every freaking team I have ever worked with. The only documentation any of those projects had was the one I created while figuring out the code base.
I observed a fundamental laziness in written communication in many developers and to this day I find it puzzling. I sometimes write down a draft of some solution just by myself, like I would explain it to another developer. More often than not, this helps me in highlighting inconsistencies or errors in my thinking.