生成AIの喧騒から離れて — 特別な成果を生む、Webエンジニアの「地味な習慣」

に公開

最初の一文から、タイトルと矛盾していますね。

どうもこんにちは。スペースマーケットのrokioです。

最近Kiroの登場、そしてClaude Codeのレートリミットなど、
生成AIにまつわる話題が尽きませんね。

そしてそんなめまぐるしい変化にちょっと疲れてきている自分がいます🥲

そんな中、社内の会話でイチローさんの名言がスッと登場しました。

「特別なことをするために、特別なことをするのではない。特別なことをするために、普段通りの当たり前のことをする」

https://president.jp/articles/-/14958?page=2#goog_rewarded
※Web上に一次情報が見つからずこちらから引用させていただきました🙏

はい、刺さりました。
まさに今の自分にぴったりの言葉です。

「特別なこと」に振り回されてないか?
「普段通りの当たり前のこと」がおろそかになっていないか?
世界が揺れていたのではなく、自分がブレていたのです。

引用元によるとイチローさんは毎日ストレッチを欠かさなかったそうですね。
ではWebエンジニアにとってのストレッチは何でしょうか?

新しいことを追い続けることと同じくらい大事な、
でもちょっと地味な、習慣があるはずです。

今回はWebエンジニアとしての「当たり前」を自分なりに考え、
特別なことをするために必要な習慣をまとめてみたいと思います。

私(とチームメンバー)が思う大事な習慣

ある朝会のアイスブレイクでメンバーに上記の話をして、
案だしを手伝ってもらいました。
自分の意見も含め列挙すると以下になります。
ふんわりカテゴライズもしてみました。

  • 読む
    • 既存コードを深く読む
    • 一次情報をあたる
  • 書く
    • ドキュメントを整備する
    • 読みやすいコードを書く
    • テストを書く
  • 協働する
    • 丁寧なコミュニケーションをする
    • ナレッジを共有する
    • 口だけにならずに行動する

眺めると、目新しいことは何一つとしてないですね。
でも、これを高いクオリティで継続して行うのはかなり難しいことなのではないでしょうか?
次章からそれぞれを深掘っていきます。
...と、ここで「各見出しの中身を考えて」とGeminiに投げてみたら、
それっぽい感じになったのですが、それでは面白くないので自分で書きます。

既存コードを深く読む

これはチームのNさんから出た意見です。
Nさんはプロダクトの仕様で質問があったときに、
いち早くGithubのリンクを出して
「このときに〇〇さんがこのように変更してますね、だから...(続く)」と言ってくれます。
git blameなどを駆使して、
今のコードだけでなく過去まで遡って、「いつ、なぜ」まで読めると強いなと思います。

上記に加えて、基本的な読む力も大事ですね。
レビューをするときに、
「考慮不足はないか?」「この名前でいいのか?」「このコードの賞賛すべき部分はないか?」
など考えることは盛りだくさんですよね。
ここを妥協せず、考えることをやめずに、
毎回同じクオリティでできたら、地肩がつきそうです!

一次情報をあたる

最近はエディタに文字を書くと、魔法のようにコードが浮かび上がってきますね。

生成AIが提案してくるコードには、
自分の知らないメソッドや言語仕様が混じっていることもあります。
また、レビューをしていても、同じく知らない知識がでてきます。

私はこれを学びのチャンスとして、知らないことを調べるきっかけにしています。
適当なワードで検索するとQiitaやZennなどの記事が出てきますが、
できれば一次情報として、
言語やライブラリの公式ドキュメント、Githubのソースを観に行きます。

特にGithubのソースを読むと、
ドキュメントにも書いてない便利なオプションが見つかったり、
ソース内でさらに知らない言語仕様を使っていたりして面白いですよ。

生成AIの提案を採用するのも、PRをApproveするのも結局自分で、
コードの内容を知っていても知らなくても責任は自分にあるので、
どうせなら知っていることに責任をとりたいと思っています。

ドキュメントを整備する

ドキュメントがなくてもコードを見ればすべてが分かるのが理想だと思いますが、
弊社、現状そうではありません。

リポジトリに情報を補足するMarkdownを付けたり、
はたまたNotionやConfluenceなどのドキュメンテーションツールに、
ドキュメントを書いたりしています。

最近弊社にJoinしたBさんがとある作業をしようとして、
やりたいことと同様の作業をしていた記録を見つけたのですが、

1. このサービスに入って更新する
2. 完了

みたいなドキュメントで、
「どう更新したのか知りたいんだよ!!!」と困っていました。
そこでBさんはドキュメントを詳細に書き直し、
後から見た人が参考にできるようにしていました。

私は、エンジニアリングにおいて、
実作業を優先してしまい、ドキュメンテーションはおざなりにしがちだな〜だと思っています。

しかし未来に向けたドキュメントを書けるということは、
現状をすべて言語化、説明できるということです。
だれにでも説明できるような理解度で日々の作業を進めるという習慣は、
自然と自分のレベルアップに繋がるのではないでしょうか?

読みやすいコードを書く

書きましょう。未来の仲間や1ヶ月後の自分のために。
Formatterがなければ入れましょう。
自分が書いた読みにくいコードで、
めちゃくちゃ時間を潰してしまった仲間をみるのは辛いですよ🥲

テストを書く

テストを書く度に、コード内の安心な領域が広がります。
安心なコードベースでは、表現が難しいですがアグレッシブにコーディングできます⚡
特別なことをするためには、テストで下地を作ることが必要不可欠ではないでしょうか?

丁寧なコミュニケーションをする

これはTさんが言っていました。
Tさんはいわゆる愛されキャラという印象で、
誰とでも分け隔て無く人と関われる方だと思っています。

ここでいう「丁寧なコミュニケーション」は「丁寧な言葉遣い」とちょっと違って、
仲間とのやりとり一つ一つを、誤解無く、気持ちよくできるようにすることと捉えています。
丁寧なコミュニケーションが習慣になっていると、ふとした言動も丁寧になり、
その分信用も厚くなり、気軽に話せる人にもなります。

その結果様々な仕事で接点をもてるようになり、
自分のチャレンジの可能性を広げられるのではないでしょうか?

ナレッジを共有する

弊社では仕事やプライベートで得た知識を共有すると「ふーん神じゃん...」スタンプがつきます。
嘘です。しかし大小関わらず知識を共有した人は賞賛されます。
ドキュメント化までしているとさらにスタンプが増えて、
弊社のValueの一つである
「レバレッジャー」スタンプがつきます。
これは本当です。

普遍的でない、個別・特殊な知識を共有することは属人化を防ぎます。
これを進んで行っている人は、チームに貢献する人であり、信用が得られます。
上に書きましたが、これも自分の可能性を広げる習慣といえそうです。

口だけにならずに行動する

これはCさんですね。イニシャルトークしつこくてすみません。
この方はインターンで一緒にお仕事をしている方なのですが、
この話が出たとき耳が痛かったです。
私にはやるといってやらなかったことがたくさんありますので...

〇〇の知識増やさないとな〜
〇〇の資格とりたいな〜
あれやっとかなきゃな〜

と言って、やれてない。
これを全部やればすごいことになりそうです。(語彙力)

おわりに

「当たり前」をちゃんとやるって、難しいことなんだなあと思いました。
全部一気に完璧するのは大変なので、
できる範囲で、一つずつクオリティを上げていこうと思います。

これが口だけにならないようにします...
最後の章を見ながら...

スペースマーケット Engineer Blog

Discussion