KiSAKU
技術系約4分で読めます

勉強法(6) 効いたのは、技術そのものではなかった

公開

この連載の最後に、身も蓋もない話を書きます。

仕事につながった場面を振り返ると、効いていたのは技術そのものではありませんでした。

この記事で扱うこと

実際に役に立った3つ。どれも技術の名前ではなく、技術の扱い方の話です。このサイトで実際にやったことと対応させて書きます。

1. 説明できること

「なぜそうしたのか」を聞かれて答えられるかどうか。ここでいちばん差が出ました。

動くものを作れる人は多い。ところが「その方法を選んだ理由」になると、急に答えが揃わなくなります。

このサイトで言えば、同意の仕組みがそうでした。先に読み込んでおいて送信の可否だけ切り替える方法と、同意まで読み込まない方法がある。後者を選んだ理由は、前者だと自分のコードを全部読んでも「送っていない」と言い切れないからです。

説明できる形を選ぶ、という選び方がある

この判断は、技術的な優劣で決めていません。あとで説明を求められたときに答えられるかで決めています。

仕事だと、この視点が要る場面のほうが多い。「動きます」で終わらせられる相手ばかりではありません。

2. 引き継げること

自分で書いていないコードを直す仕事が続いた時期があります。書いた人はもういない。仕様書もない。あるのは動いているコードだけ。

そのとき欲しかったのは、常に判断の理由でした。

コードから分かること コードから分からないこと
何をしているか なぜその方法を選んだか
どういう順番で動くか なぜこの順番でなければならないか
この値を除外していること 除外しないと何が起きるのか

右の列が分からないと、触っていいかどうかが判断できません。一見無駄に見える処理が、過去の不具合への対処だったということは珍しくない。理由が書いていないと、消して初めて分かります。

いま自分が書くコードには、処理の説明ではなく理由を書いています。引き継ぐ側に回った経験が、そのまま書き方に効きました。

3. 止まらないこと

3つめは、壊れたときにどうなるかを先に決めておくことです。

このサイトのCMSは共用サーバーにあって、混むと応答しません。最初はそれで公開作業ごと止まっていました。

直したのは速度ではなく、失敗する前提で書き直したことです。

場面 決めておいたこと
CMSが500を返す 間を置いて投げ直す。ただし要求が違う場合は投げ直さない
記事が取れない 0件のフィードを返す。エラーにしない
同意の記録が読めない 「同意していない」扱いにする

どれも「うまくいく道」ではなく、うまくいかなかったときにどちらへ倒れるかの話です。

止まらない作りは、能力ではなく事前の判断

特別な技術は使っていません。分からないときにどちらへ倒すかを、書く時点で決めただけです。

決めていないと、そのときの都合で倒れます。都合で倒れたものは、あとから説明できません。

3つに共通していたこと

並べてみると、全部「あとから来る人」への態度でした。

誰のためか
説明できること 判断を求める相手
引き継げること 次に触る人
止まらないこと 壊れたときに困る人

3つとも、書いている自分には直接の得がありません。書いた時点では、誰も困っていないからです。

効いてくるのは、いつも後からでした。そして後から効いたものだけが、次の仕事につながっていました。

技術が要らない、という話ではない

誤解のないように書いておくと、土台としての技術は要ります。読めないコードは引き継げないし、仕組みを知らなければ壊れ方も予想できません。

ただ、そこは足りていないと何も始まらないが、足りたからといって差がつく場所ではないという感覚です。差がついていたのは、同じものを作れる人どうしの間でした。

今回の学び

まず、動かせる人は多いということ。差がついていたのは動くかどうかではなく、なぜそうしたかを説明できるかどうかでした。

次に、引き継ぐ側の経験が、書き方を変えること。読めないコードに困った経験がないと、理由を残す動機が湧きません。困った側に一度回ると、書き方が変わります。

そして、効いてくるのは全部あとからだということ。3つとも、書いた時点では誰も困っていません。得が見えないうちにやっておいたものだけが、後で効きました。

この記事を共有する

Xでポストはてブ
← ブログ一覧へ戻る