エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

問題を解く難しさ、問題を作る難しさ

難しさで言ったら圧倒的に、

問題を解く < 問題を作る

なわけで。


ソフトウェア開発の難しさのうちのかなりの部分が、じつはこの問題を作る難しさに起因しているじゃないかと。
仕事でソフトウェア開発をしていても、「これ、解く問題を間違えてるんじゃないか?」という事例は事欠かず。解くのが難しい問題というのは当然あるわけですが、そんなばあいでもえてして問題の設定の仕方をまちがえたために解くのが難しくなった、ということのほうが、わたしの経験の範疇ですが、多い気がします。



で。話はとんで。

昨日おこなわれた「第7回 オフラインリアルタイムどう書く」。
どう書く。これだけでも、問題を解くというシンプルで奥が深いイベントなわけですが、これを定期的に開催されている鍋谷さん(@さん)のすごさ。
問題を作り、しかもテストパターンも用意されている。参加した面々は問題を解いて用意されたテストパターンがとおることを確かめるわけですが、イベント全体のボリュームから言ったら十中八九は鍋谷さんが抱えているんじゃないかと。ある意味いちばんつらくて、いちばんおもしろいところを持っていってるんじゃないかと(おもしろいと思ってなかったらこんなに続くとは思えないっ)。

とはいえ。鍋谷さんのてのひらの上で踊っているような感じを感じつつも、いつも楽しませてもらってます(いまだ現地参加を実現できていませんが)。
これは絶対本にすべきだと思う。もうこんなにもお題が集まっているのに、イベントだけで消化してしまうのはもったいない。

  1. 第一回 オフラインリアルタイムどう書くの参考問題 - Qiita
  2. Tick-Tack-Toe 〜 横へな 2012.7.6
  3. 第2回 オフラインリアルタイムどう書くの参考問題 - Qiita
  4. Bit Tetris 〜 横へな 2012.7.25
  5. オフラインリアルタイムどう書く第三回の参考問題 - Qiita
  6. Y字路巡り 〜 横へな 2012.9.7
  7. オフラインリアルタイムどう書く第四回の参考問題 - Qiita
  8. テトロミノ認識〜 横へな 2012.10.6
  9. オフラインリアルタイムどう書く第5回の参考問題 - Qiita
  10. 第五回オフラインリアルタイムどう書くの問題 - Qiita
  11. オフラインリアルタイムどう書く第6回の参考問題 - Qiita
  12. 第6回オフラインリアルタイムどう書くの問題 - Qiita
  13. オフラインリアルタイムどう書く第7回の参考問題 - Qiita
  14. 第7回オフラインリアルタイムどう書くの問題 - Qiita

いかにして問題を作るか

いかにして問題をとくか」は、ずいぶん前に買ったんですが、まだ読んでません。あぁ、積ん読が山脈をなしている…。


それはそれとして。
問題を解くことよりも問題を作ること、あるいは見つけることのはなしをするなら、やっぱりこれですよね。「ライト、ついてますか―問題発見の人間学」。
問題を解くのが難しいとしてもせいぜい難しさはその問題の難しさのレベル。本当に難しいのは、問題を見つけるところ、作るところ。
7年ちょっと前にもこれにからんで「問題を解いてしまう、という間違い」というエントリを書いてますね。あぁ、文章が青い、痛い…。


ライト、ついてますか―問題発見の人間学

ライト、ついてますか―問題発見の人間学