はじめに
Misocaを運営するスタンドファーム株式会社で半年間インターンをしていた大学院2年のynです.*1 *2 今回は,Misocaとの出会いと,インターンでの失敗とその中から学んだことを書こうと思います.
Misocaとの出会い
Misocaはクラウド上で請求書を作るサービスです. なぜ,Misocaを知ったのかというと,ITmediaにインタビュー記事が掲載されていたからです. この記事を読んだ感想は,
『名古屋に面白いベンチャーがある! 私もここで働きたい』
でした. すぐにコンタクトを取り,「面接→インターン参加決定」が決まりました.
失敗からの学び
インターンでは,UIの改善やマニュアルの整備をしていました. インターン中に失敗した経験から,何を学んだかについて書きます.
どんな失敗をしたのか
Misocaでは,Githubでソースコードの管理を行っています. そのため,開発環境の構築が終わったあと,一通り開発の進め方を教えてもらい,
- GitHubの使い方を学ぶために,簡単なタスク×n
を任せてもらいました. 分からないことは質問をし,なんとか簡単なタスクを終えました.
そして,次の次くらいに任せてもらったタスクで・・・
「masterにpush!!!」
という大事故を起こしました.
masterブランチにいた状態で,編集→commit
→push
をしていました.(push
したことにすぐに気づき,社員さんに対応してもらいました)
このことがきっかけで,私は『git恐怖症』になりました・・・
なぜ,失敗が起きたのか?
失敗が起きた原因は,
- 作業を行う際に,ブランチを確認していなかったこと
- Gitの仕組みを理解せず,教えられたコマンド通り打っていた
の二点です.
この時,作業ブランチから,masterへ移動・最新の情報を取得後,作業ブランチに戻り忘れていました.
失敗しないための対策・実行,そして挫折
考えた対策は,以下の通りです.
- 頻繁にブランチを確認する
- 作業前
add
,commit
,push
を行う前など,とにかく何度も!
- Gitの仕組みを勉強する
頻繁にブランチを確認するのは「git恐怖症」のおかげで,簡単にできました. 次に,Gitの仕組みは,Git入門を読んだり,練習リポジトリを作って実践をしていました. しかし,Gitの仕組みを理解するのは,とても苦しく独学では限界でした.← 挫折!
git恐怖症を克服-Gitを学ぶ
どのようにgit恐怖症を克服したかというと,gitの仕組みを理解している人から教えてもらうことでした.
計5回の勉強会を開いてもらいました. 勉強会では,「(前回の復習)→仕組みの説明→実践」の繰り返しです.
簡単にトピックをまとめると,以下の通りです.
- リモートリポジトリの更新とブランチの移動
git remote update
git reset --hard xxx
git branch -f xxx origin/xxx
- リベースとマージの違いについて
- HEAD、インデックス、ワーキングツリーについて
git reset
のオプション--soft
--mixed
--hard
- それぞれどういうときに使い分けるか?
git rebase -i
- コミットの統合
- コミットの分割
- コミットの入れ替え
- コミットの削除
- gitの内部構造
- ブランチ/タグ(reference)
- commit
- tree
- 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の成長をそばで見ることができたこと,それに自分自身が携われたことは,とてもワクワクする体験でした. ここで学んだことを就職先でも活かしていきます!
スタンドファームのみなさん,半年間ありがとうございました.