スタンドファームのbotの紹介

こんにちは。スタンドファームエンジニアのmzpです。

さて、最近はbotによるChatOpsも定着しました。弊社でも、rubotyによるbot、misocatを飼っています。

今日は、misocatがどのようなことをしてくれるかを紹介したいと思います。

おしらせ

ruboty-cronを利用して、朝会の5分前、毎昼のレビュータイムの開始、終了の際にアナウンスをするようにしています。

f:id:mzp:20150401175606p:plain

デプロイ

GitHub 時代のデプロイ戦略のように、プルリクエストのマージをトリガーにして、デプロイを行うようにしています。

ただ、開発用サーバにはmasterとは異なる内容をデプロイしたい、などといった細かい要件があったので独自に拡張したruboty-githubを用いています。

デプロイの詳細については、また別記事にてご紹介したいと思います。

f:id:mzp:20150401122545p:plain

画像検索

ruboty-google_imageを利用して、画像検索ができます。

よく謎の単語を検索しまくって遊んでいます。

f:id:mzp:20150401122638p:plain

ruboty-lgtmruboty-zoimzp/ruboty-shinchokuもインストールされており、たまに使われています。

特定キーワードへの反応

ぬるぽ

ruboty-nullpo によって、「ぬるぽ」という単語に反応して、「ガッ」してくれます。

f:id:mzp:20150401122748p:plain

ウォーターサーバ

rubotyではなくSlackbotですが、「ウォーターサーバー」という単語に反応して、水の追加発注方法を教えてくれます。「水のやつ」という雑な言い方でもOKです。

f:id:mzp:20150401122802p:plain

ランチマップ

こちらもSlackbotですが、「ランチマップ」もしくは「おなかすいた」と発言すると、近隣のランチ情報を教えてくれます。

f:id:mzp:20150401122814p:plain

Misocaのインターンで失敗から学んだこと

はじめに

Misocaを運営するスタンドファーム株式会社で半年間インターンをしていた大学院2年のynです.*1 *2 今回は,Misocaとの出会いと,インターンでの失敗とその中から学んだことを書こうと思います.

Misocaとの出会い

Misocaはクラウド上で請求書を作るサービスです. なぜ,Misocaを知ったのかというと,ITmediaにインタビュー記事が掲載されていたからです. この記事を読んだ感想は,

『名古屋に面白いベンチャーがある! 私もここで働きたい』

でした. すぐにコンタクトを取り,「面接→インターン参加決定」が決まりました.

失敗からの学び

インターンでは,UIの改善やマニュアルの整備をしていました. インターン中に失敗した経験から,何を学んだかについて書きます.

どんな失敗をしたのか

Misocaでは,Githubでソースコードの管理を行っています. そのため,開発環境の構築が終わったあと,一通り開発の進め方を教えてもらい,

  • GitHubの使い方を学ぶために,簡単なタスク×n

を任せてもらいました. 分からないことは質問をし,なんとか簡単なタスクを終えました.

そして,次の次くらいに任せてもらったタスクで・・・

masterにpush!!!

という大事故を起こしました.

masterブランチにいた状態で,編集→commitpushをしていました.(pushしたことにすぐに気づき,社員さんに対応してもらいました)

このことがきっかけで,私は『git恐怖症』になりました・・・

なぜ,失敗が起きたのか?

失敗が起きた原因は,

  • 作業を行う際に,ブランチを確認していなかったこと
  • Gitの仕組みを理解せず,教えられたコマンド通り打っていた

の二点です.

この時,作業ブランチから,masterへ移動・最新の情報を取得後,作業ブランチに戻り忘れていました.

失敗しないための対策・実行,そして挫折

考えた対策は,以下の通りです.

  • 頻繁にブランチを確認する
    • 作業前
    • addcommitpushを行う前など,とにかく何度も!
  • Gitの仕組みを勉強する

頻繁にブランチを確認するのは「git恐怖症」のおかげで,簡単にできました. 次に,Gitの仕組みは,Git入門を読んだり,練習リポジトリを作って実践をしていました. しかし,Gitの仕組みを理解するのは,とても苦しく独学では限界でした.← 挫折!

git恐怖症を克服-Gitを学ぶ

どのようにgit恐怖症を克服したかというと,gitの仕組みを理解している人から教えてもらうことでした.

計5回の勉強会を開いてもらいました. 勉強会では,「(前回の復習)→仕組みの説明→実践」の繰り返しです.

簡単にトピックをまとめると,以下の通りです.

  1. リモートリポジトリの更新とブランチの移動
    1. git remote update
    2. git reset --hard xxx
    3. git branch -f xxx origin/xxx
  2. リベースとマージの違いについて
  3. HEAD、インデックス、ワーキングツリーについて
    1. git reset のオプション
      1. --soft
      2. --mixed
      3. --hard
    2. それぞれどういうときに使い分けるか?
  4. git rebase -i
    1. コミットの統合
    2. コミットの分割
    3. コミットの入れ替え
    4. コミットの削除
  5. gitの内部構造
    1. ブランチ/タグ(reference)
    2. commit
    3. tree
    4. blob

トピックが進むにつれ,内容が重くなってきます(1トピック:平均1時間)

私が短い時間で理解することができたのは,

・付箋 ・ペン ・絵

を上手に使い,視覚的に説明してもらったことです.

たとえば,3. git resetでは3枚の付箋(HEAD,インデックス,ワーキングツリー)を使って

  • --hard
  • --mixed
  • --soft

の動きをそれぞれ確認してきました. その後,実際にコマンドを打って動作を確認しました.

このように視覚的に理解することで,理解スピードが上がったと思います. コマンドを打つ前に,付箋などを使って動きを確認するのは,オススメです!

まとめ

「masterにpush」した経験からGit恐怖症になり,どのように克服したかを書きました.

深く理解をしていなくても,それなりにgitを使うことはできます. しかし,何か問題が発生したときに対応することは難しいです.

周りに迷惑を掛けないようにするためにも,しっかりgitを学びましょう!

最後に:Misocaでのインターンを終えて

Misocaのサービスに携わった半年間は,私にとって貴重な経験になりました.

まず,勢いのある会社に携われたことです.

私が参加した頃は,同じものを表しているのに表記が異なったり,『初めて利用する方には難しいのでは?』と思う箇所がいくつかありました. Misocaでは常に改善を続けており,この半年でUIが大きく変化しました. UI以外の面でも新しい機能が数多くリリースされ,成長を続けています.

次に,エンジニアが主体です. Misocaで働く方々の多くがエンジニアです. そのため,サービスの方向性や改善策をエンジニア自ら話し合い,意見を出しています.

サービス以外にも大きく変化しました. たとえば,朝会の進め方です. 1時間近くかかっていたが,今では30分未満です. この朝会の短縮と改善方法の提案も,エンジニアの方からの意見で実現したものの一つです.

最後に,Misocaの成長をそばで見ることができたこと,それに自分自身が携われたことは,とてもワクワクする体験でした. ここで学んだことを就職先でも活かしていきます!

スタンドファームのみなさん,半年間ありがとうございました.

*1:執筆時点。現在は卒業して新社会人として頑張ってます

*2:執筆は本人にしてもらって編集・投稿はスタンドファームのオッサンがしました

Misoca 開発ブログを始めます

まえがき

当初は @ と @ の二人から始まった Misoca も沢山の人の協力を得て、チームメンバーも増えてきました。

そこで普段の開発から得られた知見や各人の興味などについてカジュアルな感じでまとめていければ良いのではないか、ということで開発ブログを書いていくことにしました。

ほうしん

Misoca は 概ね Ruby on Rails でつくられています。ので、Ruby とその周辺に関する話は多くなりそうです。

Misoca は AWS(Amazon Web Services) で動いています。ので、AWSの各種サービスの活用方法やそれらの管理についての話もあるかもしれません。

Misoca は アジャイル開発をベースとしています。ので、開発プロセスや普段の開発スタイル/環境についても知見が出せるといいですね。

Misoca は概ね名古屋で作られています*1。歴史的な経緯により関数型言語や型理論、定理証明などへの興味が強い地域で、もちろんメンバーにもそういった方面に明るい人がいます。ので、そういった方面のエントリも増えるといいな、と思っています。

Misoca について

クラウド請求管理サービス Misoca は、2011年11月のローンチ以降スモールビジネスを中心に4万以上の事業者にご登録頂いています。

請求書のみならず、見積書、納品書、注文書、領収書など業務に欠かせない文書類をクラウドプラットフォーム上で簡単に作成でき、簡単な操作で物理的に郵送(封筒に入った紙の文書が相手に届きます)できたり、メールとPDFを使ってペーパーレスで請求を行うことができます。

また、

などの支援サービスも提供しています。

あとがき

今後ともよろしくお願いします!


記:マツモトサトシ ( @Dominion525 )

*1:リモート勤務もあるので、岐阜や東京や福島でも作られています