テクノロジー戦略本部の丸山です。
私が入社した2019年1月からまもなく2年が経ち、当時10名程度しかいなかった開発メンバーも今では40人を超えるまでに増えました。
Githubで管理しているリポジトリ数も今では約160リポジトリ、登録されている人数も業務委託先の方やオフショアメンバーを含め約70人程度まで増加しています。
以前は大体のリポジトリが見れて、何が管理されているのかを把握することも可能でしたが、ここまで増えてしまうと良くわからないリポジトリや誰なのかわからないメンバー(名前とアカウント名が全く違う方)が出てきてしまいます。
今回、この状況を改善するためにGithubの「Team」機能を利用し、組織の構造をTeamに反映させて「誰なのかわからないメンバー」がいる状況を改善し、リポジトリ毎に付与するTeamの権限でどの部署・チームが管理しているかを明確にできるようにしました。
Teamとは
公式ドキュメントより
Team は、Organization のメンバーによって構成されるグループであり、カスケードになったアクセス権限とメンションを伴う会社やグループの構造を反映します。
組織の体制などに合わせてTeam分けを行うことで、権限の管理やメンションを利用した連絡がしやすくなります。
弊社でのTeam分け
今回はざっくり組織の体制に合わせつつ権限を付けやすいようにTeamを分けたいと思いますので以下の様にしました。
- テクノロジー戦略本部には協力会社の方やインターン、アルバイトの方など、すべての方が所属
- 社員・協力会社・インターンなどの属性ごとに子Teamを作成
- 各属性を更に部などで孫チームを作成(必要に応じてもう一階層作成)
属性ごとに分けた理由としては、社員にはできる限りリポジトリへの閲覧権限を付けたいという意図です。この分け方であれば、作成したリポジトリには社員TeamをRead権限で設定するだけで全員がリポジトリを見ることができるようになります。
実際に開発などでリポジトリにpushをする部やグループの方には追加でwrite権限を付けた孫・ひ孫Teamを追加していきます。
協力会社の方などは関係するリポジトリだけに制限をする必要があると思われますので、運用では協力会社チームは利用せず、その子チームを利用していく運用になると思います。
Teamへのメンバー追加
Teamを作成し、ぽちぽちメンバーを追加していきます。
実際に設定していった画面はこのようになります。
※ 先頭がt_なのは既存のTeamがごちゃごちゃしていて作業しづらかったので一旦prefixを付けてわかりやすくするためです。
リポジトリへのアクセス設定
続けてリポジトリに作成したTeamを追加していきます。
当初予定していた通り、できるだけオープンにしたいため社員TeamはRead権限を付けて追加、実際に開発を行う開発1部メンバーにはWrite権限を追加、開発1部の管理職メンバーにはAdmin権限を追加といった形で設定しました。
設定後の画面がこちらです。
ほらスッキリ!(もとがごちゃごちゃしていたので余計にそう見えます)
運用を続けていけばイレギュラー的に権限を付与しないといけないこともあるかと思いますが、その場合はTeamではなく個人を追加するという形になってしまうかもしれません。ですが一覧がきれいに整っていれば個人が設定されている(=イレギュラー対応した)ことが見つけやすく、後々の管理も楽になるのではないでしょうか。
まとめ
所属している会社によってはすでにきれいにされていて気にする必要がない場合があったり、そもそも権限を持っていないために設定ができない方もいらっしゃるかと思いますが、もし機会がありましたら一度気にしてみて下さい。
多くのプログラマの方はコードをきれいに保つことに意識を割いているかと思いますが、コード以外にもきれいな作業環境を保つことで、将来的にもストレスなく快適な開発ができる環境へと繋がることになります。
2020年ももう残すところ1ヶ月を切りました。
新年を迎える前に大掃除がてら普段あまり目を向けない部分を見てみてはいかがでしょうか。
バイセルテクノロジーズではエンジニアを募集しています。
もし興味をお持ちいただけましたらぜひご連絡下さい!