矢を放った後に的を動かしてど真ん中にあてるスキル | それゆけ西表島

矢を放った後に的を動かしてど真ん中にあてるスキル

どれほど技術力があるプログラマでも、目的がはっきりしないものは作れない。どれほど変更に強いプログラムを作ろうと思ったところで、顧客が思いがけないことを突然言うかもしれない。

顧客に全く干渉せずに言われたものをきっちり仕上げればいいのである、という考え方には賛成できないし、疲れるだけだろう。そうではなくて、顧客といい関係を築きつつ、できるだけ、楽に、早く、安く作れる方法を提案して、最終的な成果物をシステム側にある程度よせていくことが大事なのだと思う。

動いている的の真ん中にどうやって矢をあてるのか、というのはスポーツの世界の話であり、ビジネスの世界の話では無い。技術を競っているわけではなく、利益を継続して出していく必要があるのである。

顧客は、的のど真ん中に矢を当てる方法が知りたいのではなくて、矢が真ん中に当たった的がほしいのである。それを勘違いして、「的は動かしてはいけない」とか「的から遠く離れたところから矢を打たないといけない」、と勝手に思っているから苦労するのである。

オンサイト顧客がやりたくても顧客が自分の会社に常駐してくれないのであれば、自分のチームが相手の会社に常駐すればいいのである。派遣は毎月支払いがあるからリスクがなくて受託開発は終わるまでお金がもらえないからリスクが高いというのであれば、毎月リリースして毎月支払ってもらえばいいのである。

行動を制限しているものは、ほとんど今までの習慣でしかないのである。公務員でもあるまいし、今までの習慣を打破することでより楽しく儲かる仕事ができるのであれば、新しいことを試みるべきだろう。

プログラマだからお金に関することはタッチしたくないとか、経営に口出しするつもりはないとか、そういうことを言っていると、いつまでたっても不幸なままである。ソフトウェアはプログラマが作るのであり、プログラマが的を動かせないような環境で、いいソフトウェアが出来るとは到底思えないのである。

もう少し広い視点を持てとか、そういうレベルの話ではない。ソフトウェアはビジネスと密接に繋がっていて、ビジネスを知るものがソフトウェアを制するのである。ビジネスに関する知識はプログラマにとって必須である。

どんな矢でも当ててみせるという自信のある人は、技術というよりも、人との対話で納得させてみせるということが根拠になっていることが多い。ただ技術だけしかない人には、最終的にどうしたいのかがわからない間は自信もくそもないだろう。

しかし、顧客が信頼するのは前者のタイプであることが多い。最初に契約だけして、後で適当に決めたことについてプログラマが泣くのがいつものパターンだが、信頼感で契約して技術力を生かして的のど真ん中に当てることが出来れば・・と考えると、いつまでも泣いてはいられないだろう。

要は矢を放った後(契約した後)に、的を動かすというのは仕様をある程度コントロールするスキルということだ。コントロールというと顧客を騙してみたいな意味にとられるかもしれないが、騙さずにプロジェクトが失敗するぐらいなら、騙してでも成功させろ、と思う。

まぁ上記は極端だが、せっかくプロジェクトに関わるのであればいろんな手を尽くしてプロジェクトを成功に導くべきであり、それはプログラマがプログラムをあの手この手で作るだけでは難しい。

デスマーチになってから唸るよりは、ならないように的を動かしてみよう。最初の的と違うところにあるからといって、そんなにかっこ悪いことではないし、顧客も的の場所はそれほど重要だと思ってないことも結構あるのだ。

でも、的を勝手に動かしたら、顧客は不満に思うかもしれない。そこはやはりコミュニケーションが大事ということで。