こんにちは!@shutooike です!
今更ですが、2023/3/25 に開催された第90回 Ruby関西 勉強会で登壇&会場提供した話をします。
登壇
弊社の内部品質を向上させるための泥臭い取り組み(FactoryBotを整備したり、自動テストを書いたり、ライブラリをアップデートしたり、リファクタリングをしたり)について話しました。
先にまとめを置いておきます。
まとめ
- 自動テストは書かないと上手くならない
- 勘所を掴むまでクソテストコードを書いて書いて書きまくれ
- 幸いテストコードは書き直しやすい
- レガシーコード改善に銀の弾丸はない
- カバレッジも可読性、メンテナビリティも突然上がることはない
- 理想に向けてロードマップを引き地道にやっていくしかない
- レガシーコードを愛する
- ユーザーの課題を解決し、売上を立てるレガシーコードは偉大
- なりたくてレガシーコードになった訳じゃない
- その時々の最適解だったはず
- 恨みではなくリスペクトを持って接する
興味があれば登壇資料もご覧ください。
質疑応答も覚えてる範囲で残しておきます。
質疑応答
- テストを書いていくのは辛いと思うが、どのようなモチベでやったか?
- 自分たちの理想に辿り着くための重要なステップとして進めていった
- ある程度テンプレート化して頭を使わなくても書けるようにした(=作業化した)
- 機能開発との配分はどのように進めましたか?
- 最初は毎月第1週を負債返却週間とする制度があり、その中で自分はテストを増やしてみた
- スライドにもあるプロジェクト発足してからはチームを組成(自分+週2日稼働の業務委託1名)
- (いつの間にか負債返却週間は立ち消える...👋)
- その後開発組織の拡大に合わせてチームメンバーも2人増えて合計4人(自分+週2〜3日稼働の業務委託3名)
- ふりかえってみると結果的にどの時期も全体のリソースに対して20%ぐらいが割り当てられていた
- POや経営層とどのようにコミュニケーション取りましたか?
- うちの場合は経営層も技術に明るいのであまり説明コストが掛からなかったのは有り難かった
- 開発組織に求められているもの(品質とスピード)は内部品質を上げることによって獲得できるよというスライドを作ったりはした
- 始めたモチベーションは?
- Rails チュートリアルのTDDからソフトウェア開発に入門していたので、テストが書かれていないのがカルチャーショックだった
- コードの変更に対する心理的安全性が低すぎた
懇親会でも内部品質向上や負債返却については盛り上がり、当たり前ですがどこも困っているんだなぁと再確認しました。
会場提供
RubyKaigi 2022に参加した後に
あと弊社は本社が大阪なのですが、関西は関東と比べて圧倒的に Ruby コミュニティが少ないので、何かできたらな〜とぼんやり考えたりもしています。
というようなことをうちのCTOとも話していたら、3年ぶりに開催することになった Ruby 関西への会場提供に繋がりました!*1
出来る範囲ではありますが、引き続きコミュニティの盛り上がりの一助となっていく所存です。
さいごに
RubyKaigi 2022に登壇されていた @ima1zumi さんや @fugakkbn さんや @coe401_ さんを見て自分もやっていかねばと思い今回の登壇に至りました。*2 感謝です🙏
初めての登壇は緊張しましたが思った以上に楽しめました。
あと登壇したらその後話しかけてもらえるので楽で良いことも学びでした。
これからもやっていくぞ。
(それにしても筆が遅いのをなんとかしないといけない。。。)