2021年11月04日

プログラマ的、勘

山下

———————–
とある日

私:なんとなくこんな感じでそれぞれお願いします。
(ゆるふわ系仕様と共に)

Aさん:うっす
Bさん:了解です

数日後、提出されたソースを見て
私:(Aさんの方はバッチりそうだ!仕様書に書いてないサービスに必要とされる仕様を的確に想定し柔軟に対応を行ってくれている
Bさんの方ちょっと想定甘いな。。。確かに仕様書には書かなかったけど。。。)

———————–

とまあ一度は経験する日常かと思います。

今回の例でAさんとBさんの能力が同じだった場合の差異はどこなのでしょう。

ゆるふわ仕様で依頼してる依頼者に問題があることを棚に上げると
「ゆるふわ仕様の行間読んで必要仕様を柔軟に対応しているか否か」という差異があると思います。

そこで今回は上記の差異が生まれる大きな理由の一つとして
「プログラマ的な勘の良さ」が関わってくるのでは?
という仮説を立て、何を以て勘の良さを測り、どんな人が「プログラマ的に勘が良い」のかについて考えました。

前提
理想はきちんとした仕様書を用意してこんな感じでいいかの選択を与えないことですが
システムの細かい動きを一つ一つ仕様書に落とし込んでいくと、それだけで膨大な工数を取られるので、
開発内容や成果物によってはゆるふわ系仕様で勘弁して欲しいことがあります。
今回の内容はそういったゆるふわ依頼が通用する「勘の良い」作業者の特徴と
私が考える「勘が良さ」の尺度についてブログを書いています。
データに基づいた分析ではないので話半分でお願いします。

さて本論である何を以て勘を測るのか?というところで考えるといろいろ思いつくかと思います。
・経歴?話し方?報告?
etc

そんな中で私はゆるふわ系仕様の行間を読める勘が良い人の特徴を考えてみると、まずは
「ビジネスに対して興味or理解がある」
と漠然とした考えに至りました。

「ビジネスに対して興味or理解がある」というのもまだまだ漠然としているので
次に「ビジネスに対して興味or理解がある」 って具体的にどんな人?どんな傾向にあるのか考えてみたところ以下のような特徴があるのではと仮説を立てました。

・既存ソースの読み込みが丁寧かつ早い
理由 => ビジネスへの興味から現状のビジネスロジックを理解を心がけた上での開発してくれるので、機能間の繋がりを考えてくれる
・質問が早い
理由 => ビジネスに対して理解がある故ゆるふわを見抜き、ガチムチ仕様へ変身させてくれる、成果物の認識がずれない
・会話の先読みされる
理由 => ビジネスの成功の可否は予測力という言葉があるように推測する能力が高く仕様の穴も埋めてくれる。Siriの最終形態みたいな
・日常会話に時事ネタ多め
理由 => アンテナ感度が高く社会への関心ないしビジネスへの興味があるが故、エンジニアとしての能力だけでなく、ビジネス自体への理解を心がけてくれる。
・単純に博識
理由 => あらゆるビジネスに携わったもしくは知識を持っているが故に俯瞰して概要把握してくれるので、客観的な解決策を提示してくれる

ここで上記仮説を見てみると
どれも「センスがある」と置き換えるには難しく、あくまで上記仮説の結果として「勘が良い」につながっており
「センスがある」 != 「勘がいい」 ではないと思います。

つまり「プログラマ的勘の良さ」というのは「ビジネスに対して興味or理解がある」という土台があれば、
後天的に養うことができるものであり意識次第でも充分に改善可能な領域にあるのではないでしょうか。

ここまで私にとって「プログラマ的、勘」についての考えを書かせてもらいましたが、みなさんにとっての
「プログラマ的、勘」についても伺いたく思います。

最後までお読みいただきありがとうございました。

あとがき
「勘が良い」という褒め言葉は日本人らしい曖昧な表現ですが、今回の仮説以外にも、それぞれ考える特徴と理由が内包された素敵な表現だと思います。
何事も「センス」という言葉で片付けられるとムッとしてしまいますが、心掛けやわずかな努力で改善可能な領域であると捉え
自分自身への教訓とするとともに、目的意識を高く業務に努めようと思いました。

※ゆるふわ:緩りと、ふわりとしている様子。穏やかな感じ、くつろいだ感じ、やわらかそうな感じ、などがあるさま。ファッションを形容する語として用いられる。
参考:https://www.weblio.jp/content/%E3%82%86%E3%82%8B%E3%81%B5%E3%82%8F
※ゆるふわ系仕様:造語。行間を読まざる得ない仕様。非推奨