弊社では、GitHub, Slack, Google Driveなどを一括検索できるCommetというサービスも開発しているのですが、本ブログでも、今後それに関して書いていきます。

どのようなサービスか

GitHub, Slack, Google Drive 等、複数のサービスに散らばっている情報をまとめて検索できるサービスです。

現在対応しているサービスとしては以下の通りです。

  • コードホスティングサービス
    • GitHub (issue, pull request, wiki)
    • Bitbucket (issue, wiki)
    • Backlog (issue, pull request, file)
  • チャット
    • Slack
    • ChatWork
  • 一般向けサービス
    • Google Apps (メール, Drive)
    • Facebook (group)
  • その他

仕組みとしては、上述の対応サービスが提供している API を経由してデータを Commet のサーバーに取り込み、それを全文検索出来るようにしています。

どのような問題の解決を目指しているか

色々なツールに情報が散らばる

弊社では、リソースの50〜60%を受託開発に割いています。色々なお客様からお仕事を頂くのですが、お客様によってプロジェクトの進め方や使っているツールが異なりますし、弊社内部でのコミュニケーションとお客様を含めたコミュニケーションでは、異なる手段を使うことも結構あります。

リモートだとその傾向が強い

また、リモート開発の場合、ほぼ全てのコミュニケーションがオンラインになりますので、1つのサービスだけで全てを行うというのは現実的には難しいです。

どこに情報があるかが分からない

そういう状況だと、以下のような問題がよく発生します。

  • 「あの機能の仕様ってどういう経緯で決まったっけ?」と、お客様とのチャット、内部のチャット、GitHub の issue などを見て回る
  • 「あのサーバーの接続情報ってどこだっけ?」と、wiki、内部のチャット(の添付ファイル)、Google Drive を一つ一つ検索する

時間が経つとそれが顕著に

プロジェクト実行中は、どの情報がどこにあるかを記憶していることも多く、このような問題が発生することは少ないかもしれませんが、プロジェクトが一旦終わった後、半年後に追加機能の発注が来たりすると、こうした問題は頻繁に発生するようになります。

複数のサービスの情報をまとめて検索可能

Commet では、色々な場所に散らばった情報を1箇所に保存し、それらを一括で検索可能にすることにより、上述の問題点を解決します。

どのように使っているか

1プロジェクト = Commet の1チーム

弊社での使い方としては、開発プロジェクト毎に Commet 内で「チーム」を作成し、そのプロジェクトに関する情報をそこに集めるようにしています。

具体例の方が分かりやすいかと思いますので、弊社で開発全般に関わった「選挙ドットコム」さんを例に取ります。

同プロジェクトでは、主に以下のようなツールを使っています。

  • ChatWork: 選挙ドットコム様のご担当者の方々と弊社の担当との間の連絡
  • GitHub
    • Issues, PRs: 追加機能開発、バグ修正のチケット
    • Wiki: 全体構成、重要な箇所の仕様等
  • Slack: 開発者同士の連絡
  • Google Drive: 選挙ドットコム様から頂いた資料の保存

取り込み設定

これらのツールの、以下の情報を Commet の「選挙ドットコムプロジェクト」チームに取り込むように設定します。

  • ChatWork: 「選挙ドットコム様 x もばらぶ」チャットルーム
  • GitHub: “mobalab/go2senkyo” レポジトリ
  • Slack: “go2senkyo” チャンネル
  • Google Drive: 「マイドライブ/プロジェクト/選挙ドットコム様」フォルダ

設定後は、バッチ処理にて、約5分に一度、最新情報が Commet に取り込まれます。

メリット

リモート開発の情報共有基盤として使っている

前述の通り、リモート開発だと通常の開発よりも沢山のサービスを使う傾向にあります。それらの複数のサービスを使いつつ、Commet にも情報を集約することにより、必要な情報は全てCommet上に存在することが保証されます。

そういう状況になれば、メンバー間の情報共有も、Commet 上の Permalink を共有すれば良く、必要に応じてそこから元のサービス(GitHub等)に飛ぶことも可能です。

プロジェクトの再開をスムーズに行える

前述のとおり、プロジェクト終了半年後に追加発注が来た、といった場合に、必要な情報を検索で簡単に取ってくる事が出来ます。

今までは、過去の資料の把握などにかなりの時間を取られていました。

新メンバーへの情報共有も今までより楽に

長期のプロジェクトになると、プロジェクトメンバーは固定ではなく入れ替わりが発生してきます。新規でプロジェクトに入ったメンバーにとって、過去のプロジェクト情報が簡単に検索できるのは大きなメリットだと思います。

もちろん、新メンバーがスムーズにプロジェクトに入ってもらうために必要なことは、情報共有以外にも沢山ありますが、情報共有は大きな要因だと考えています。

今後の展開

せっかく、プロジェクトの情報が1箇所に集まる基盤が出来たので、今後はそのデータを分析して活用するという方向に進んでいこうと思っています。