はじめまして。THE CLIPのイシバシ (@hisatake) です。
昨年12月に会社を設立して、気がつけば8ヶ月が経過しようとしてます。
設立後はおかげさまで順調に仕事も増えており、現状、複数のプロジェクトを並行して作業しています。はじめはエンジニアの僕とデザイナーのケントさん (@kentymmt)の2人で作業していたのですが、プロジェクトも増えてきたこともあり、現在は業務委託 1人(週2)、インターン 1人(週2)の4人体制で仕事をしております。
2人で開発していた時はSkype(チャットのみ) + 個別でタスクを管理していました。
ただ、人数が増えてくると若干無理が出てきたところがあったので開発ツールを見なおしました。
今回はどのツールを使っているのか、またそのツールを導入するときに心掛けたことを記事にしました。
コミュニケーションツールの乗り換え
候補として、
・Skype
・Slack
・HipChat
を検討し、最終的にはSlackに決定しました。
なぜ、Skypeから切り替えたのか。
Hubotの存在が大きいです。
SkypeでもHubotは使えるみたいなのですが、簡単には導入できそうに無かったので断念してました。そこでHipChatかSlackへの乗り換えを検討しました。
Slackを選んだ理由
HipChatとSlackのどちらかを検討した結果、Slackに決定しました。
HipChatはオンライン復帰時に通知されない。
というのが、致命的でSlackにしました。
GitHubの使い方
GitHubも2人の時はVCSとしてだけ使ってました。
これはお互いの作業区分がはっきりしていたためにお互いレビューできるものではなかったためです。
現在は人数も増えたこともあり、基本的には pull reqベースの開発にしてます。
また、情報・進捗の共有も wiki, issuesを使って管理してます。
タスク管理、PivotalTrackerを使ったりしていたのですが、
あまりいろいろなツールを使うのは肌に合わず、結局は管理が疎かになるのでGitHubに集約しました。
ツールを根付かせるためにやったこと
ここからが本題になるのですが、最近はたくさんの開発ツールがあり全てを導入していたらキリがありません。
また、導入したはいいけれども最初だけ盛り上がって次第に使われなくなるという経験も多々あるかと思います。
自分が一番使う
「導入したいツールは自分が一番使う。」
これが導入に一番欠かせないことだと思います。
イニシアティブを取る人が楽しくないとツールの導入はまず成功しません。
適度に遊ぶ
適度に遊びましょう。
うちの場合は、Slackを導入した日に僕が丸一日(≠適度?w)かけてHubotを設定して遊び倒しました。
hubotを教育して、
・会話できるようにした
・n時間後の天気を教えてくれるようにした
・ゴミ出しの日を教えてくれるようにした
などに時間を使いました。
nanapiさんのnanapi TechBlogの下記記事がとても役に立ちました。ありがとうございます。
Slack上のボットをHubotで作ってHerokuにデプロイしてみた
具体的にどのような教育をHubotにしたのかはまた別の記事で書きたいと思います。
スタートダッシュは大事
はじめの1,2日は多少無駄話をしてもみんなで楽しんで使いましょう。
初日はずっとYouTubeの検索や画像検索、カスタムした会話で遊んでました。
効率的じゃないやり方はださいという考え方を浸透させる
やはりエンジニアとしては非効率的なツールの使い方はださいですよね。許せないですよね。
僕自身もSlackも導入時はひたすらキーボードショートカットを見ては覚えて使ってみるを繰り返してました。
下記はその一例ですが、
GitHubのwikiの更新の際に、webだとMarkdownのPreviewが同時に出ないのは非効率と思ってました。
調べるとGitHubはwikiもgit管理できるようです。
そこで、Wikiをローカルにcloneして、AtomなどGitHub Flavored MarkdownのPreviewに対応した
エディタで編集してpushという流れに変更したら非常に便利になりました。
それをインターンがwebで更新しているのをチラッと見かけたら、ツッコミを入れるなどしてます。
shellの使い方もその最たる例ですね。
naoya_itoの火を噴いたシェルtips
僕も大学時代はよく「なんでcontrol+r使わないの?」とか「control+w使おうよ」とか「全然なってない」というツッコミを受ける日々を過ごしてました。
やはりツールというのは、効率的に使えてこそ手に馴染んで使い続けることができると思うのでそういうTipsの共有は大事です。
まとめ
THE CLIPで使ってる開発ツールの簡単な紹介とその文化を根付かせて行くために実践したことをまとめました。
やはり良い物を作っていくためには、楽しんで開発するというのが一番だと思うので、
上手く効率化して楽しく開発できるようにしていきたいと思います。
Slack+HubotやGitHubの詳しい活用方法はまた別の記事にたいと思います。