日々常々

ふつうのプログラマがあたりまえにしたいこと。

手段とか目的とか

私の中では終わった話。あくまで自分の考えなので、人に押し付ける気はさらさらないです。

「手段が目的となっていないか?」

なんか金言のように言われる事が多いこの言葉ですが、金言どころかゴールデンハンマーを振り回しているつもりになっているように見えるようになってしまったわけで。
この言葉は人に対して言うものではなく、自分に対して確認する言葉と結論付けました。(おそらく本来の意味・用途である)その場にそぐわない事を無理を通してやる時にブレーキをかけるものであり、人に言われてもそれは違うんだって感じになるわけです。第三者的視点は大事だとは思いますが、それは別の話でして。

とあるブログを読んでもやもやと

これに対して、ワークショップと言う手段を放棄したように見えました。つまり「ユーザーストーリーマッピングに対する理解」が目的であることに合意していないように感じてしまったわけです。何が目的で何が手段か。

よく仕事に置き換えて「特定の技術を使う事が目的になって、要求を蔑ろにしている」みたいな事が挙げられます。その要求をそこで挙げられている技術で達成することで、次のステップに進むのが目的であることもあります。このワークショップでのAくんはRailsの普及が目的であり、幹事は得たチャンスです。ここでチャレンジしなければ、効率化するチャンスが遠のくと判断した……その後であると捉えることも出来ます。*1
ここでそもそも論をするのは、土台からひっくり返す行為です。「今更何を言っているんだ」ってやつですね。確かにひっくり返すことで容易に目先のことは達成できるかもしれませんが、それだとその先に控える目的には到底届きようもありません。当然のことながら「歓迎会が失敗する」なんてのは論外であり、そんなのはAくんにとっては前提過ぎて議論の余地もないことです。

少し横道に逸れますが、 @daiksy さんのセッション「乙女ゲーを支える技術」は「Scala初心者だけのチームで開発した事例の紹介」であり、初挑戦なものばかりと言うことで当然のように様々な障壁があったようです。それでも「Javaでやってギリギリ間に合うところまでは我慢する」というセーフティネットを用意しつつチャレンジ。成功は前提とした中でどうチャレンジするかが重要な所だと思いました。これに対して「Scalaを使う事が目的になってないか?」なんて言ってしまうのはどうなんでしょうね。セーフティネット無しとか、暴走とかだったらありなのかもしれませんが。

手段が目的がと言っても意味が無い

手段と目的の階層関係にキリはありません。どんな手段も目的になり得ますし、どんな目的も手段になり得ます。そんな指摘をするならば、先に手段と目的が何かを合意するべきで、それが出来ないならただの水掛け論に終始します。「大局が見えてないなー」と言う方が大局が見えていない状況はよくあります。

手段を当面の目的とすること自体は問題では無いと思っています。その目的を達成したならば、次を考えざるを得ません。遥か遠くにある目的を達成するために、それに繋がる下位目的を立てて達成し、道を作るのは優れた方法だと思います。その過程で目の前に集中するのは当然の事。明後日の方向を向いた目標や、そこにコストを費やすことで先の道のりが閉ざされるようなものに向かうのが問題なだけです。

まとめ

問題があるとすれば、手段を目的とすることではありません。組織としてならば、目的が合意できていないこと。個人としてなら、先の目的に繋がらない小さな目的を選択すること。……あたりが問題なんじゃないかなと。

他人に言い放つ「手段が目的になっていないか?」のゴールデンハンマー臭さが嫌いです。何も考えてなくても言えてしまい、それっぽく聞こえる所が余計に。目先の事に没頭してしまっていないかの注意を促したい時など、他の人に対して投げかけるならば異なる言葉、たとえば「他の方法はないか?」や「それを使う事で何が達成できるんだ?」あたりでがいいんだろうか。モヤモヤ。


繰り返しになりますが、あくまで私の中の決着で、誰かに押し付ける気はありません。単なる好き嫌いと言ってしまえばそれまでですし、前提や背景に大きく左右されるものでもありますしね。

*1:アピールは他の機会にとありましたが、それじゃ意味が無い代物じゃないですかね……。