では、「分かりづらい」とは具体的に何でしょうか?
「状況の変化の度合い」では無いでしょうか?
- 印刷を1000回するのに、毎回印刷設定が意に反した初期値になっている(状況が変化する)と「分かりづらい」のでは無いでしょうか?
- 急に仕様変更が有る(状況が変化する)と「分かりづらい」のでは無いでしょうか?
- 状況が変化すると、物事が複雑になり、「分かりづらい」のでは無いでしょうか?
です。
逆問題が必要なのも、
- 状況の変化により、仕様に立ち返って(正しいけれども曖昧な視座から見直して)
- 考え直さないとならない羽目になっている
からだと思います。逆問題が解けない人は、状況の変化に対応出来ない人で、その場にお金を払わないとならなくなる人です。
上流で分かりやすさを使い切られると困る
分かりやすさと言う資源には限りが有ります。増えません。それは、
- 最高に分かりやすいのは、「状況が全く変化しない」場合で、分かりにくさを(お金をもらって)分担すれば、その分(見た目上)分かりやすさを提供出来る
だけだからです。
瑕疵
「本来あるべき機能・品質・性能・状態」(瑕疵 Wikipedia 日本語版)が無いと不具合だと言われます。
そして「分かりづらい」のは間違い無く不具合だと言われるでしょう。
その観点から言うと、
- 分かりやすい設計、分かりやすい言語、分かりやすいテスト
と言うのは、失敗(お金がもらえない)の因に過ぎない様に思えてなりません。
結論
これからも「分かりづらい」事でプログラミングが嫌いになる人は存在し続けることでしょう。