young「これ ConditionBean でどうやります?」 jflute「まあ、こうすればできるけど、どうしたの?」 young「これをこうしなければならなくって...」 jflute「ほう、でもなんでそうしないといけないの?」 young「それはこれがこういうことになってるから...」 jflute「ほう、なんでそんな風になってるの?」 young「それはこういう問題があるから...」 jflute「...」 young「...」 jflute「それ、こうしちゃえばいいね」 young「!?」
数え切れないほどのよくあるやりとりです。 結局、ConditionBeanのそのやり方は要らなかったし、 そのまえのやらなきゃいけないことも要らなかったし、 そのまえにそんな風になってる必要もなかったし。 もうDBFluteは完全に無関係だったり。 Seasar や DBFlute の ML を読んでいる人は、 jfluteがこういうやりとりをよくやっていたと、 記憶の片隅に残っていたりもするのではないでしょうか。 (あと現場でjfluteの近くにいる人は心当たりがあるかも!?) "A" というまず最初の問題があって、 それを解決しようと "B" をやろうと、 "B" のために "C" が必要で、 でも "D" という問題があって... 気付いたら、頭の中が "D" でいっぱいになりがちなもの。 別にそれは悪くない、だってそれが必要だと思って、 一生懸命に "D" への道を辿ってきたんだから。 ただ、"D" が問題の中心ではないことは忘れてはいけない。 いつでも "A" に帰れるようにしておかないと。 時々、自分では "A" に帰れなくなる場合もあります。 「D ってことは、C or E or F あるんじゃないかと?」 「そうそう、C です」 「ってことは、B or G or H があるんじゃ...」 「そうそう、B です」 という風に導くこともしばしば。 まあ、それがjfluteの仕事といえば仕事ですが。
質問や相談をするときは「その問題領域の背景」も 添えましょうと、よく言います。 急いでるときとか、必ずじゃなくてもいいけど、 問題の本質がだいぶ遠ざかってしまっている場合は、 違うアドバイスもできるかもしれないから。 というか、そのとき "A" に帰れることで、 相談する前に "A" の根本の解決がふと見えたりも。 "A" を解決する "Y" を自分で見つけちゃうかも。 だから、帰れるって大事。 ただ、実際の思考は、 A -> B -> C -> D と単純ではない。 直線ではなく、ぐにゃぐにゃと曲がった道かもしれない。 だからこそ、帰りづらいときもあるのだ。 思考の辿った道に、何かタグ付けができれば、 階段の踊り場のようなターニングポイントがあれば、 そこだけを記憶にとどめておく。 寄り道してきた道まで辿る必要はない。 帰るときはポイントを一直線で結んで帰ればいい。 書いてて無理があるなぁ、難しいなぁと思ってるんだけど、 たぶん帰れる人は自然とそれをやってるんだと思う。 単なる意識というか習慣だけの話だから、 もし、心当たりがあったら意識してみるといい。 だんだん習慣づいて自然とやるようになるでしょう。
質問や相談をされた場合は、 丁寧にその問題領域の背景を追求してみましょう。 "D" を解決することが解決とは限らないから。 どういう画面が必要か、どういう機能が必要か、 要件定義でも通じる話ですし、 共通ライブラリを作るときにも通じます。 というか、どこでも通じる話です。 特にDBFluteの開発では、重要なポイントでした。 現場の声が最高に大事、要望は宝です。 ただ、その要望は必ず jflute フィルターを通ります。 要望の内容がそのまま実装されないこともあります。 ごめんなさい、って感じですが、要望を出した人は、 DBFluteの全体を把握してるわけではありません。 そのままの実装では他の機能とのバランスを崩し、 長期的な不具合となりかねません。そうすると、 逆に要望を出した人の不利益にもなってしまいます。 それができないフレームワークは、 いつかメンテ不能となり成長が止まるでしょう。 そのバランスをとりつつ、 適切なDBFluteの機能として実装し、 かつ、その人の問題も解決するのが、 DBFluteの守護神であるjfluteの仕事です。 そう、要望を実装するのが仕事ではなく、 その人の問題を解決するのが仕事なのです。 それが同時に他のユーザーも助けにつながればと。 「要望した人 - jflute - 他のユーザー」 の、Win-Win-Winの関係を保つこと。 ブランドもなにもないツールなので、 「すっごい役に立つ」というきっかけ以外に 使ってもらえる理由がないから。 とはいえ、これって、 他のレイヤでも通じる話なんじゃないかと。 【追記】 後に、こんなブログ書きました: // 質問のコツその一: なんでその質問してるのか?も伝えよう http://d.hatena.ne.jp/jflute/20170611/askingway1
どっちの立場に立ったとしても、 とてもとても大切な "意識" ですね。 「なぜ?」 による追求のこころを忘れないように。