社内開発チーム内のコミュニケーション、上手く行っていますか?
メンバーが世界各地に散らばってないなくても、近くの席に座っていても、心は意外と離れているかも知れません。
以下でプライベートなGitLab12をCentOS7にインストールした続きです。
コミュニケーションやナレッジシェアを円滑にする為にSlackを使うのが一般的な時代になりましたが、コンプライアンス的に社外リソースを使えない不運なプロジェクトも多いですよね。
そんな場合はSlackのクローン「Mattermost」を使うことでSlackを代替できます。
「Mattermost」はGitLabのOmnibus版に同梱されていて、Slackとほぼ同等の、ビジュアルな、自動投稿可能で、チャンネル分けされたチャット環境をオンプレミスに構築することが出来ます。
Mattermostを社内に導入することで以下のような効果が期待できます。
- チーム内コミュニケーションの円滑化
- 全員が手軽に同時閲覧できるのでメールよりも効率的な意思統一が図れる
- 他メンバーのGitLabへのpushを知る場になってくれる(マージしなきゃ)
- CI、CDなど自動化プロセス結果のコンソールになってくれる
- 運用管理ミドルからのアラート報告場になってくれる
- 専用チャンネルを作って知識を共有することでノウハウ蓄積出来る
他にも情報収集プログラムやSonarQubeのようなプロジェクト分析ミドルの結果を個別チャンネルに流すことで、現状把握をチーム全体で行えるようになります。
GitLab Omunibus版をインストールさえしてしまえば、Mattermostが使えるようになるまでものの5分です。
コミュニケーションが盛んになれば意思統一が図れてチームメイキングが楽になります。GitLabをインストールしたら以下の手順で簡単に有効化することが出来ます。
目次
gitlab同梱のmattermostを使えるように設定する
/etc/gitlab/gitlab.rbを編集
GitLabの設定は/etc/gitlab/gitlab.rbで行います。mattermostを有効にする為の設定もこのファイルで設定します。
gitlab12.2.1に付属のMattermost5.13.2では以下3行を変更するだけです。ポートは18081にしています。任意で変更してください。
# vi /etc/gitlab/gitlab.rb
################################################################################
## GitLab Mattermost
##! Docs: https://docs.gitlab.com/omnibus/gitlab-mattermost
################################################################################
# 1. アクセスURLを変更
# mattermost_external_url 'http://mattermost.example.com'
mattermost_external_url 'http://192.168.0.4:18081'
# 2. mattermost有効化
# mattermost['enable'] = false
mattermost['enable'] = true
# 3. 起動IPをループバックからホストIPに変更
# mattermost['service_address'] = "127.0.0.1"
mattermost['service_address'] = "0.0.0.0"
設定をGitLabに反映
gitlab-ctl reconfigureして/etc/gitlab/gitlab.rbの内容をGitLabに反映します。
# gitlab-ctl reconfigure
18081ポート開放
18081ポートでMattermostを公開するようにしたのでTCPポートを開けます。
# firewall-cmd --add-port=18081/tcp --zone=public --permanent
success
# firewall-cmd --reload
success
動作確認
「http://GitLab、MattermostのIP:18081」にブラウザでアクセス。
GitLabのOAuth2機能でログインする為「GitLab Single Sign-On」をクリック。GitLabで作成したユーザ(ここでは前回作成したdeve1@localhost)でログインします。
チームを作成。GitLabで作ったチーム名でもなんでも構いません。
チーム名を登録後、
devel1ユーザでログインが出来ました。ハンバーガーメニュー(三みたいなやつ)から日本語化や各種設定が出来ます。
他開発メンバーを招待する
まだ自分しか居ないので他の開発メンバーを招待します。ハンバーガーメニューから「チーム招待リンクを入手」をクリック。
表示されたHTTPリンクを招待したいユーザにメールなりで送ります。ユーザには予めGitLabでユーザを作成しておきます。受信したユーザはリンクをクリック後、自分のGitLabアカウントでMattermostにログイン出来るようになります。
他ユーザたちとチャットでコミュニケーションが取れるようになりました。
人間同士の意思疎通や、CI結果を報告するボット投稿を共有する場所が、ものの数分で完成しました。
これが無料で構築出来るって・・・GitLabすごいですね。
チャットは運用次第でデスマーチプロジェクトすら成功に導いてくれるかも知れない
個人的な感想ですが昔からコミュニケーションが円滑な大規模プロジェクトではIRCを有効利用していたケースが多いような印象が有ります。
逆にそういったチャット環境が無い、旧態依然とした、自社他社入り乱れた顔も名前も知らない人が各開発部署に大勢居るようなウォーターフォールプロジェクトは意思疎通が上手く行かず、失敗するケースが多い印象が強いです。
急遽参画した大規模プロジェクトで分からないことが有った時、その件の有識者を探すのは手間が掛かります。詳しいと思われる人を紹介されても話をしてみたら期待した答えが返ってこなかったりすることもしばしばです。
そんな時、全ての開発会社メンバーが見ているチャット環境が有れば、目立ってないけど実は詳しい人が居て質問に答えてくれる可能性も出てきます。(IT業界は目立つのが嫌いなデキるキーマンが隠れていることが多い)
その後、文章としてそのやり取りが残っていれば他メンバーにも形式知として横展開され、質問が繰り返されることは無くなるはずです。
各チームや会社単位でチャンネルが閉じてしまわないようにオープンな運用をしていけば、Mattermostはデスマーチから抜け出せるキーになってくれるかも知れません。