8/28(月)からBツーBベンチャーでクラウド人事労務ソフトを開発しているSmartHRでインターンをさせていただいています。 SmartHRでは、自分が入るまではインターンや新卒を受け入れた事がなく、初インターン生として暖かく受け入れて頂きました。 これまでの経緯や思ったことを簡単に書いてみました。
インターン前
お誘いを受けるまで、SmartHRさんのことは全く知りませんでした。 労務とは何なのか、右も左も分からない状態で突然のお誘いを受けて勢いでインターンをすることになったのです。
実は、数カ月前から他のEC系企業でのびのびとインターンをしています(今も週1で細々と続けています)。 自分の実力でも背伸びをすれば十分貢献出来そうなプロダクトで、地道に貢献できて満足しています。 また、分からないところなどを丁寧にサポートをしていただけて、不安などはなく楽しんでいます。
そんな中での突然のお誘いでした。
こんな勢いのあるBツーBベンチャーに自分が誘われるなんて誰かと間違えているのではないだろうか。 大きなプレッシャーを感じながら恐る恐るインターン開始日を迎えるのでした。
初日
みなさんの暖かいお出迎えと最高の環境が待ってました。 雰囲気が素晴らしい環境にいられることがとにかく信じられません。 こんな環境に自分を招待していただけて、感謝の気持ちで一杯でした。
規模が大きい
早速、支給されたMacBookの環境構築を済ませて巨大プロジェクトに突撃してみましたが、趣味と比べて規模が大きすぎて訳が分かりません。 手始めに簡単な微修正を行おうとしましたが、実装後に思うように動かなくて諦めることになりました。
エイリアス(alias)超絶便利
.bash_profileにaliasを登録すると、1つのカスタマイズをしたコマンドで複数のコマンドを実行することが出来ます。 aliasという存在自体を知らなかったので、これを知った時には驚かさせられました。
2日目
微修正
手始めにコードを単純に一括置換するだけのタスクを割り振っていただきました。
一瞬で終わる作業かと思いましたが、一語一句に拘る
PRを書く羽目になり、1時間近く費やす羽目に。
曖昧な言葉ではなく、正確な表現でPRを書かなければならないことを悪戦苦闘しながら学びました。
3日目
毎週水曜日の午後は開発会議です。 この日に一気に開発に関することを相談しあって、他の日は開発に集中しようという作戦のようです。
なお、開発会議の前に、KPTを行って1週間の良かったこと、問題に思ったこと、やってみることを個人個人がスプレッドシートに箇条書きした上で発表します。
その後、開発会議を行います ちなみに、SmartHRではアジャイルでタスク管理をしていて、ツールはJIRAを使っています。 タスクはチケットと呼ばれていて、例えば各メンバーがバグや修正した方がいいことを見つけたらすぐにチケットを起票します。 起票された多くのチケットを今週やるべきチケットを決めて、開発会議でチケットの大きさをプランニングポーカー*1と呼ばれているカードゲームで見積もります。
3日目〜
APIサーバーを作る
とあるAPIサーバーを作るタスクを割り振って頂きました。 SmartHRでは、情報が古くてよく落ちる外部APIを頼っており、APIサーバーを自前で用意する必要性に迫られていたのです。 数日掛けて実際に動くものを自分の力で実装してみましたが、コードは趣味の延長線上で好ましいものではありませんでした。 そんなコードをペアプログラミングを経て、ファットコントローラな部分をモデルに移すなど、自分としては驚くような経験をさせていただきました。
3週目〜
既存のコードを読む力
膨大な規模のコードで、微修正であれば似たような部分が必ず出てきます。 まずは既存のコードを読んで、似たような箇所がないか探す大切さを学びました。
デバッグの大切さ
ドキュメント通りにコードを書いたのになぜか動かないと嘆くことは多々あるかと思います。
動かないことやエラー表示をキーワードにググって問題を解決するのも有効的な手段ですが、ググって出てくる情報には限りがあります。
調べても分からず、途方に暮れていたところ binding.pry
を使ったデバッグの方法を教えていただけました。
binding.pry
は超絶便利ですね。
インターンを通して思ったこと
萎縮してしまう問題
素晴らしい環境過ぎて、最初はあまり馴染むことが出来ずに萎縮してしまいました。
独特の雰囲気に何度も驚かさせられながら、少しずつ慣れていくことが出来たような気がします。
ただ、まだ完全には慣れていないからか、 分からないことを聞く
という事に抵抗を感じています*2。
最近になって、自分用に用意していただいたSlackチャンネル #times_hotuta
を活用し始めました。
分かっていないことを投稿して整理した上で本当に聞くべきことをリアルで質問するようにしています。
何でもかんでも実際に声を出して聞く前にSlackで分かっていない事を投稿した上でリアルで質問した方が必要ない質問をせずに済みますし、どこで困っていたのか履歴を残すことが出来ます。
こうした取り組みで萎縮してしまう問題が少しでも解消されれば良いと思っています。
ステップアップ大切
チケットの難易度は人それぞれで、他人が判断するよりも自分でもチケットがどういう内容なのかを把握した上で難易度の判断した方が良いと思いました。 チケットの難易度の判定は非常に難しく、実際に取り組んでみないと分からないことが多いです。 また、文言修正など、とても容易なチケットを沢山振られると熱が急激に冷めて飽きてしまいまい、嫌気が差してきます。 自分から進んで難しいことに挑戦していかないといけない事に気付かされました。
基礎が大事
そもそも基礎的なことですら分かっていない事が多いと、このインターンを通して明確になりました。 Rubyの似たようなメソッドの違いをよく分かっていなかったりと、基礎が不十分で改めて学んでいく必要性を感じました。
趣味と業務
趣味で作りたいものを作ってみるのと、業務でコードを書くことは全く違うという事が鮮明になりました。
SmartHRの場合、チケットの内容を確認して、少しでも不明確であれば起票した方や責任者の方に確認した上で、他のコードと同じような書き方でコードを書いて、CIテストやRubocopによるLintが通った上でレビューを受けて、様々な指摘を受けてコードを修正して、やっと おマージ
です。
業務の大変さを身に沁みて感じました。
SmartHRさんに感謝
一風変わった素晴らしいBツーBベンチャーでインターンをさせていただけて、大変光栄です。 急速な成長のために即戦力を重視して勢い良く採用している中でインターンという形で貴重な経験をさせていただけて、本当に幸せです。
ベンチャーの勢い
ベンチャーの勢いというものを肌身で感じさせられました。 そして、自分の実力が勢いに到底及ばないギャップというものを感じさせられました。
独特の文化
SmartHRの社内は、独特の文化が発達していて他の会社では味わえないような雰囲気を楽しませていただきました。 特に最初の頃は独特の社内用語に苦しめられたのが今でも忘れません。 先輩方が生み出した何とも言えない雰囲気はSmartHRの良さであると思っています。
今後
実はRailsに飽きてしまったため、今はブラウザテストに挑戦させていただいています。 ブラウザテストに取り組んでいて、得た知見をBrowserStackを使ってブラウザテストに取り組んでいる知見に書きました。
SmartHRは急成長を遂げていて本当に素晴らしい会社ですが、ブラウザテストの基盤がある程度出来たところで他のインターンを体験してみたり、学業に専念していきたいと思っています。 そして、社会人になる前にもっと色々な会社のインターンを通して様々な経験をしてみたいです。
IT系企業では、19卒のエントリーが既に始まっていて、就活のことを真剣に考えていかないといけないみたいです。 自分のやりたいことに近くて、行ってみたいという有名どころの会社を見つけたのでエントリーしてこようと思います。
SmartHRさんを離れてしまう事を考えると悲しくなってきますが、残された時間の中でブラウザテストの基盤づくりに専念したいです。
*1:プランニングポーカーについて紹介されているブログを見つけたので貼っておきます。appresso.hatenablog.com
*2:と書きましたが、業務に支障が出てしまうのではないかというくらいに初歩的なことも聞いてしまった気がします。一杯迷惑を掛けてしまってごめんなさいm( )m