見出し画像

開発に関するルールやガイドラインをどのように管理しているか

コドモンの開発ブログを移転しました。最新の記事はこちらからご覧ください。


こんにちは!コドモンプロダクトチームの市川です。

皆さんのチームでは、開発ルールやガイドラインをどのように管理していますか?

コドモン開発チームがリプレイスを進める背景の記事にあるように、コドモン開発チームにおいては、開発に関するルールやガイドラインが明確でない時期がありました。そしてそれが「気持ちよく開発・保守する」ことの妨げになっているというフィードバックが多くあり、標準化に取り組みました。

今日は、コドモン開発チームがどこでどのようにルールを管理しているかを紹介します。

どこにルールを置くか

標準化を進めるにあたって、どこにルールを置くかを最初に決めました。社内情報共有ツールにて整備していくか、Githubに専用のRepositoryを立てて整備していくかなど、いくつか選択肢を挙げて検討しました。その結果、コドモン開発チームでは、以下を主な理由として、Githubにハンドブック用のRepositoryを立てて管理していくことにしました。

・Pull Request形式でルールやガイドラインの内容について確認を促せる&オープンに議論できる
・Issue形式で「まだ整備できていないが整備したいこと」を管理できる

整備しやすさで言うと社内情報共有ツールの方が上かもしれませんが、「気軽に書ける」ことより「ちゃんと議論したうえで整備できる」ことを選択した、ということになります。

ちなみに、ルール整備に参加することにハードルを感じて「従うだけ」になってしまうことも想定されたため、”ルール整備や標準化に寄与する姿勢”を評価の観点にも含め、ルール整備に参加する姿勢がコドモン開発チームのあるべきエンジニア像の要素のひとつであることを明示しました。それにより、最初はハードルを感じても、ルール整備を自分たちで行っていくことが当たり前になっていくのではないかと期待しています。(実際、ハンドブックへプルリクエストを出すメンバーは徐々に増えてきています💪)

実際のハンドブック

ハンドブックには、以下のようなカテゴリでルールやガイドラインを記載しています。

オンボーディング:入社した人向けのセットアップや参考記事など
開発:コーディング規約や開発プロセス、デザインシステムなど
運用保守:運用保守に関するルールやガイドライン
品質管理:品質に関するルールやガイドライン
ポストモーテム:障害報告書の運用ルールおよび実物

▼ハンドブックRepository自体のREADME

画像2

▼オンボーディングのREADME

画像2

ハンドブックを整備して良かったこと

1. コードレビュー観点が個々に依存→参照できるものができた

ハンドブックにコーディング規約やガイドラインを整備することで、コードの質を確認したり話したりする際の共通認識を持てるようになりました。整備前はコードレビュー時の観点も人によってブレがあり、指摘を反映するかどうかの判断基準も曖昧でしたが、共通認識ができたことでコードについての議論もしやすくなったと思います。

2. 「自分が迷ったから他の人のためにもガイドライン化しておこう」という動きで整備が進む

ハンドブック整備前も、もちろんエンジニアの習性として標準化は意識されていましたが、社内情報共有ツールで各自の思うかたちでルールやガイドラインが作成され、公式のルールとして扱うには曖昧なものも混在する状態でした。

ハンドブックを整備したことで、明確な公式としての運用ができるようになり、何かを標準化するときの手順が明確になりました。その結果、「自分が迷ったから他の人のためにもガイドライン化しておこう」と思った時に動きやすくなり、ルールやガイドラインの整備がより進みやすくなりました。

3. 「誰かが整えて私が従う」ではなく「みんなで整える」が当たり前に

ハンドブックの運用を始めた頃は「整える人⇆従う人」という構図を無意識に持っているメンバーが多かった印象ですが、”全員で整備していく前提”で話すことを重ねるうちに、「全員が整える人であり従う人である」という空気が醸成されつつあります。

ルールやガイドラインに限らず、コドモン開発チームは「整える人⇆従う人」ではなく、「全員が整える人であり従う人である」という前提の組織でありたいと思っています。なので、ハンドブック整備においてその前提が浸透してきていることは、チームとして良い方向に向かえている一つの表れだと感じます。

今後の課題

上記のような良いことを実感している反面、運用する中でIssueが溜まる速度が整備する速度より早いという課題も見えてきました。

ハンドブック整備担当者を立てるのではなく全員で整備していくスタイルで運用しているため、整備の速度は各自のリソース状況によります。開発に集中している時期はハンドブック整備の優先順位は下がりがちなので、一旦作成されたIssueがなかなか着手されないという状況になることも少なくありません。

▼しばらく動きのないIssueたち

画像3

今のところはルールの整備はゆるやかに進んでいるのでまだ対策しなくてよさそうですが、今後状況に応じて「ハンドブック整備に集中する時間」を定期的につくる運用をしてみてもいいのかもしれません。

終わりに

チームによってどんなルール管理の方法がフィットするかは異なるので一概には言えませんが、コドモンでは今のところこの記事に書いたような方法でメンバーの標準化意識は上がってきていると感じています。このハンドブックをベースに、チーム内の標準化を今後も進めていきます。

ちなみに、ルールやガイドラインを整備していこうと思った最初の頃に以下記事を読み、大変興味深かったです。GitLabにしてもMNTSQにしても、このような突き抜けた運用ができるのはチーム力がすごく高いからなんだろうなとドキドキしながら読みました。世界は広いですね。