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:執筆は本人にしてもらって編集・投稿はスタンドファームのオッサンがしました