2016年1月4日月曜日

【Slack】botでも作ってみるか 前編

あけましておめでとうございます。

株式会社ジェニシス 技術開発事業部の遠藤 太志郎(Tacy)です。
2016年もこのブログ更新を始め、色々と張り切っていきたいです。

本日は年末年始休暇明けなので頭の復活を兼ねて小ネタを。
テーマはSlackです。

Slack

Slackとは一言で言うとチャットツールです。

調べたところによると、公開は2013年8月なので2016年正月の現時点においてはまだ3年経ってないわけですか。
例えばLineやSkypeとかと比較すると誰でも知っているツールの域には到達していませんが最近は急速に普及が広がっており、そのうち業界スタンダードになる可能性も十分にあります。

我が社でも最近、このSlackが便利だという話題を聞きつけ、メインで使っていこうという方向に動き出しつつあります。

今回はアカウントを発行して貰ってから一週間も経っていない私がSlackについて少々調べ、簡単なbotを作るところまでを実現したいと思います。

何が便利なのか?

比較対象として上記に「Line」「Skype」を出しましたが、果たしてこれらはライバル関係と言ってしまって良いのか……。
それぞれ違う機能があるので一概には言えませんが、
敢えてこれらと比較すると、Slackは『企業向け』にスコープが照らされているのが特徴でしょう。

「Line」「Skype」の場合、基本的に1人1アカウントあり、それぞれ各自で『部屋』にドーンと集合して使いますよね。
基本的に『個人重視』なわけですよ。
特にLineなんてセキュリティ的にヤベェ。あれで業務連絡とかやる気にならないですよ。


  • 小学校時代の友達の部屋
  • 中学の友達の部屋
  • 部活の友達の部屋
  • 家族用の部屋
  • 誰にも言えない秘密の部屋


こんな感じに、各自好き勝手に部屋を立てて来て集まるイメージです。

対して、Slackは管理人による統括管理が存在しています。
まず「ジェニシス」という大規模集団があり、その配下にチーム部屋(チャンネルと言いますが)がある。

株式会社ジェニシス
LチームTacyの部屋
LチームXXXの部屋
Lリーダーの部屋
L飲み会開催相談所

とまあ、こんな感じに企業という大組織の中に多数の小型グループが存在しているという状況への対応力がSlackは高い。
この辺りが人気の理由の一つと言えるでしょう。

使い道

というわけで、Slackは企業向けという方向で進化を遂げてきました。
結果、今では他の業務ツールと連携するAPIが豊富に取り揃えられるに至っています。

例えば、Subversion。
SVNにコミットすると「コミットしました!!」というメッセージがSlackに飛んでくるようになるとか。
もちろんGitでも同じ事が可能。

連携アプリケーションはこちらに沢山あるようです。


ちょっと数が多過ぎるので追い切れていませんが、なるほど、『概念』というものは分かってきます。
Slackを情報の集積場として使用するわけです。

現時点だとメールで通知を果たしている所が多いと思います。

例えばRedmineでチケットを更新すると「更新しました!!」のメールが自動的に飛びます。
これは最初の頃は便利だと思っていましたが、長年使っているうちに「メールが多過ぎる」という問題に気付いてしまいました。

1日何十通も更新通知が飛んでくるんですよ。

もちろんフィルタリングとかして自動整理はしていますけど、基本的にメール乱射は悪ですからね。

「別に困っちゃいないけど、もうちょっとクールなやり方は無いの?」

とはずっと思ってました。

そもそもですね、メールのフィルタリングを活用しているのは私が自分でフィルタリングしているからであって、自分でフィルタリングを作るスキルの無い人だったらゴチャゴチャになりますよ。
「とりあえずメールを送っときゃいいでしょ?」って発想はやっぱ配慮に欠けるんですよ。

その点、更新通知をSlackに飛ばすというやり方はSlackそのものが整理機能を果たしますので、幾分スムーズになります。


津波のような大量情報はSlackへ寄せる。


これでIT起業らしいクールなコミュニケーションが取れるかな、と楽しみなところです。

自分でもちょっと作ってみるか

と言うわけで、私はSlackの各種機能のうち「外部から情報を送り込む」というところに活用点を感じています。

既製ツールだと「Redmine」とか「Git」とか、既製ツールの連携機能しかありません。
しかし会社活動をやっていると自社特有の情報発信も存在しますよね。

どんな?
そんなのいくらでもあるじゃないですか。


  • システムがダウンしたらボタン一発で同報を発信して欲しい。
  • 朝一でその日のスケジュールを流して欲しい。
  • 今日がメンバーの誕生日であることをピロッ。
  • ログファイルに[FATAL]の文字列を発見したらSlackに流し込むようになってれば便利だな。
  • 知らんうちに自社サーバがダウンしとる。ping通知を流してくれんか?


細々とした用途はいくらでもありますからね。

「こういうのがあれば便利だなぁ」⇒「じゃあ作ろう」

これをパパッと実現出来れば快適な業務環境が待っています。

とにかく、どんな情報を送り込むかは都度センスが問われるとして、
まずは「どうやったら情報を送り込めるのか?」というアーキテクト部分は把握しておきたいと思います。

終わりに

では、次回は実際にメッセージ投入機能をJavaで作っていきたいと思います。

0 件のコメント:

コメントを投稿