見出し画像

誰も知らない仕様に出会った時の立ち振る舞い

開発をしているとたまに出会うことになる「誰も知らない仕様」。出会った時に文句を言っていても始まらない。少しでも前に進めるために何ができるだろうか。考えを巡らしてみる。

誰も知らないというのはどういうことか

自分「なんだこの分岐?ドキュメントもないし、Aさんなら何か知ってるかな」
A「いやー流石に覚えてないよ。よくよく考えるとこの分岐なんで必要なんだろうね」
自分「そうなんですよね。。。何がしたかったんだ。。。どうしよう。。。」

このように、正とすべき情報が手に入らないため、合っているとも間違っているとも言えない状況が生まれる。その結果、限定的な情報の中でどういう対応をとるべきか判断するのが難しくなる。

判断ではなく、決断を迫ってくる状況こそが「誰も知らない」状況なのだ。

ぶっちゃけ、「誰も知らない」は避けられない

「誰も知らない」はとてもありふれていて、とても馴染み深いことだった。

小さなスタートアップで開発をするようになって7年が経過した。その間にいっぱいドキュメントや研修やアドバイスを繰り返し行ってきたけど、どんな機能やシステムも作った時と同じ解像度で仕様を把握しておくことはできなかった。

それはきっとシステムを取り巻く外的環境が変わっていくから。担当する人の顔ぶれも変わっていくし、ユーザーのニーズも時代とともに少しずつ変化していく。その変化にいい感じに適応していく「変化に強いチームと変化に強いシステム」が理想像として掲げているからには、常に変化への耐性を持っておかなければいけない。

そう考えるとコテコテの綺麗なドキュメントや、おまじないが書かれている秘伝の書を作ることに躍起になるのではなく、自動で軌道修正できる仕組みを導入したり、詳細を忘れても大丈夫なようなガードレール機能を用意したりすることに脳内リソースを割いてきた証拠でもあると思っている。

「誰も知らない」ことがわかった後の一手

じゃあ、「誰も知らない」に出会ったときにはどうすればいいのか。

どこに向かっているのかを明らかにする

目の前にいるシステムなり、プログラムなりが発している理想の状態を想像しよう。ドメイン知識が足りない場合には、そこに詳しい人に雑に相談する(ザッソウ。そのためには、日頃からの関係性構築が重要だって、だいぶ大人になってから気づいた)。

重要だなと思うのは、抜け漏れがないかという軸よりも、より抽象的に捉えたときに目的に沿っているか?という軸だ。解決策ばかりに目がいっているとどうしても部分最適になってしまい、大きく捉えると目的達成に足りないっていう仕様を考えだしてしまう。早くその状況から抜け出したいというストレスからの解放の誘惑はすごい。暫定案がパッと思いついたとしても、一呼吸おいて別角度から批判的に見る癖をつけておくのが大事だ。

自分の立ち位置を明らかにする

自分の役割を明確にしよう。そして、理想の状態に比べて今現在の状態がどうなっているのか、できるだけ簡潔に書き出してみることが重要だ。「なんとなく」が続いている限り、先には進めない。

決断を迫られているとしても、最終的に意思決定するのは別の人かもしれない。もし、そうなら、その人が意思決定しやすい情報を集め、整理し、記述するのが近道になる。

行き方を明らかにする

ゴールと現在地がわかったら、そのギャップが解決すべき課題になる。それを満たす仕様を考えだそう。

とは言っても、急にいいアイディアが出てこないこともしばしばある。

意外と時間を空けて、次の日に見直してみるっていうのも良いかもしれない。シャワーを浴びたり、トイレに入ってる時に名案が浮かぶ経験を開発に熱中しているエンジニアの方なら、1度や2度ではなく経験しているはず。

先行事例を真似したり、先行事例との違いに注目して差分をカスタマイズした方法をとったりするのも有効だ。どうせ僕レベルの人間が困っていることなんて、過去に100万人以上のエンジニアたちが困っていたことに違いない。本を読んだり、ネット記事を見たりすることでヒントにアクセスできることもたまにあるので、諦めちゃダメだ。

「誰も知らない」を怖がらないで、成長のチャンスだから。


いいなと思ったら応援しよう!