きゃんの日記

ゆるーく備忘録

某IT企業のインターンシップに参加した記録

かわいいパンダのキャラクターとか 日本でいちばん使われているクレジットカードとかで知られるあのIT企業です。

きまるまで

こちら👉就活日記2|2018.07〜2018.09 - いろんなこと👈にさらっと書いてます

目標

Know WHAT ENGINEER IS

基本的に英語を使うスタイルの企業で、インターンの最終発表も英語だったので、 このブログもちょこっと英語でいきます(笑)

わたしはこのインターンシップに参加するまでは研究職のインターンシップの経験しかなかったため、 「エンジニアとはなんぞや」を知ってキャリアを考えていきたいってのが目標のひとつでした。

プログラミングを軽く触るバイトをしていて、そこで働いている同僚は優秀なエンジニアが多いので、 エンジニアがすごい!かっこいい!ってのはもともと知ってはいたのですが、 自分自身はエンジニアっぽいことをした経験がなくて。

授業や個人の研究のためのプログラミングだけの世間知らずのままじゃあかん!ということで参加を決意しました。

Experience this company's atmosphere

私の企業選びの際の大きな軸のひとつが、働いている人 です。

人が大好きな人間なので、ひとりでいるより誰かとおしゃべりしていたいし、個々人がそれぞれがんばる企業よりみんなで力を合わせる企業に憧れるわけです。
さらに欲を言えば、嫌々いっしょに働くような雰囲気ではなく、皆で楽しく働きたいわけです。そんなのみんな思うか(笑)

まぁ2ヶ月も企業に身を置けば、いい意味でも悪い意味でも雰囲気を知れるかなって。 あんまり雰囲気好きじゃなかったら他の企業受けたらいいしね。

すくなくとも1on1やオフィス見学でお会いしたここの社員さんたちは皆さんとても気さくで優しくて、素敵な雰囲気なんやろな〜って思って、参加したいと思いました。

Fan

純粋にこの企業のサービスの大ファンでした、もともと。(笑)
クレカここの使ってるし、通販とかサービスも使いまくってます。絶賛ディープユーザ。

せっかくなら自分がユーザとして好きで誇れるサービスに携わりたい。

What I did

Team

この企業って70くらいのサービスを持っていて、私はそのなかのひとつのサービスの開発・運用を行っているチームにジョインしました。 チームは20人くらいのメンバーで構成されていて、うち半分が外国人のかたがた(!)

わたしについてくださったメンターさんは日本人のかただったのと、ジョインしたプロジェクトが日本語を使うチームだったので、非常に助かりました…
でも同じチームのもう片方のプロジェクトは英語しかしゃべれない人がちらほらいはって、完全に英語を使うプロジェクトでした。

Project

私はサービスの裏で動いているバッチ処理を開発するプロジェクトにジョインしました。

ちょうどプロジェクトの開始のタイミングが私のインターン期間が始まったタイミングと重なったので、いちばん始めから携わることができました。
(さすがに2ヶ月では終わらないため、最後まで見届けることはできませんでしたが…)

大きい流れで、<プランニング👉調査👉設計👉開発>を体験しました!

プランニング
「プランニングポーカー」なるものを使って、直感的にプロジェクトにどのくらいの時間をかけるかを計画しました。

appresso.hatenablog.com

開発の中のあるタスクをこなす時間を2としたときに、ほかのタスクはどのくらいの数字になるか?をチームの皆でせーの!で出すというもの。 ほんまにインターン始まって3日目とかだったので、アジャイルスクラム?ん?みたいな状態だったわたしはアワアワしました(笑)

ただ、あくまで<基準のタスクと比べて>なので、「私はみなさんより経験が無いから数字を多めに…」みたいなのは違うんですよね。 わたしにとっての2が30時間でもスーパーエンジニアにとっての2が3時間でも、あくまで<2の何倍かかるか>を考えるということです。

ふむふむ。

このときはアワアワしてしてもーたけど、個人の研究や開発でも事前にタスク用意してプランニングするのってとても大事やと思うので、今後も個人でやってみよう。

調査
バッチ処理にSpring Batchというフレームワークが採用されていたのですが、 わたしはもちろんチームのみなさんもSpring Batchははじめてだったということで、各自勉強する時間もありました。 フレームワークって学習コストはかかるけど、やっぱり目的に合わせたピッタリの機能が実現されていたりして便利だな〜。

設計
機能ごとに分担して、設計👉スクラムマスターやプロダクトオーナーにレビューしていただく👉指摘いただいたポイントを修正👉レビュー…

そういうかんじ。

これまたわたしは個人の大したことないアプリ開発の経験しかなかったので、設計からこんなにしっかりやるんやと勉強になりました。 設計書を書いていくにあたって、処理の細かい部分の認識も全員で合わせて行く必要があるので、想像以上に考えることが多いと感じました。

ここでしっかり認識をすることで、その後の実装のフェーズでの”やらかし”みたいなのが多少減るのかなと。(実際に小さなやらかしを目撃したのでこのあと書きます。)

開発
設計の通りに実装していきます。

あれだけ細かい仕様をきっちり決めたつもりだった設計も、実装していくと途中で「あれ、ここはどっちが正解だろう?」みたいな小さな仕様漏れが見つかってきます。 都度チームの皆と相談、解決していきます。

私がこのインターンシップ中に触ったのはMySQLJava(Spring)、groovy。
はじめはひたすらSQLのSELECT文を作っていました。 授業やら、個人のアプリ開発での小規模なDB操作やらでの経験しかないわたしにとって、大量にレコードを持っているDBを操作する時点で「おお〜!」という感じでした(ボキャ貧)。 INNER JOIN とかLEFT JOINとか、もうとりあえずテーブルくっつけまくってました。 それだけ言うと簡単に聞こえるかもしれませんが、10個以上のテーブルをjoinした上で持ってきたいデータだけを抜き出すのって想像以上に大変で。けっこう鍛えられました。
(おかげで他社の選考のコーディングテストにSQLの問題が出てきたときはめちゃくちゃ簡単に感じました)

そのあとのJava、groovyはMySQLほどゴリゴリ書いたわけではないのですが、テストコードを書いたりしてました。

TDD

あ、そういえばTDD駆動開発が取り入れられていました。 tracpath.com

以前の私はといえば。
👵「このtest/ディレクトリってなんなん?」
サンプルアプリケーションであるとか、とにかくネット上のいろんなコードのメインフォルダと別にある「test」っていうフォルダがなんのためにあるのかなんて知りもしないポンコツだったわけですが。今となってはテストの重要性は多少理解できている(つもり)です。
コーディングテストのときに、自分が書いたコードを保存すると勝手にプログラムが動き出していろいろなパターンをチェックして採点してくれるアレもテストですよね。きづくんおそ。

Scrum

この企業のエンジニアさんたちは、「Scrum」という開発手法を使って開発をすすめてはりました。

アジャイルソフトウェア開発では、一か所に集まった少人数の開発チームが、目的の達成のために協力しあいながら作業を進めます。また、ウォーターフォール開発のように、一度決定した計画を絶対のものとはしません。各メンバーや関係者からのフィードバックを定期的に得ながら、柔軟に計画を調整し、さらに一度にまとめてすべての機能を作るのではなく、1つの期間ごとにいくつかの機能を追加開発していく手法です。

これはアジャイル開発についての説明。スクラムアジャイルの一種です。

小さなチームで協力してプロダクトを開発していきます。開発していく中で、常にメンバー同士で確認し合うなど”協力”がキーワードなかんじなイメージです。

また、プロダクトを作り終えるのには時間がかかりますが、スクラム開発では1週間、2週間などの細かい単位でSprint(期間)を区切り、その単位の中で何を達成するか、何を達成できたか、このフェーズで良かった点・悪かった点を踏まえて次のSprintではどのようにすべきかなどを考えていきます。大きなゴールに向かって走るんじゃなくて、ゴールまでを細かく区切って区切りごとに動いていくってかんじです。

研究室の毎週ある進捗報告会をもっとしっかりしたバージョンかな?というのが私の感想。

  • Sprint planning
    はじめのプランニングの際の時間設定を目安に、今回のSprintではどこまでやるかを報告しあいます。 私の所属していた開発チームは皆近くの座席に座っているのに、画面共有をそれぞれがしやすいようにテレビ会議ですべて行っていたのが面白かったです(笑)

  • Sprint review
    このSprintでどんなことを達成できたかを報告します。これもテレビ会議

  • Sprint retrospective
    各Sprintの最終日に行います。名前の通り、このsprintの振り返りをします。

KPT(Keep:良かった点、Probrem:改善すべき点、Try:KとPを踏まえて次回トライする点)を挙げていくのがよくあるパターンみたいです。

わたしのチームでも始めはKPTを用いて、意見がある人は指定のKPT記録用ツールに記入し、それを見ながらファシリテーターがretrospectiveを進めていました。(ファシリテーターはチーム全員で順番にまわしていきます)

retrospectiveについてはまた別の記事にしようかなぁ。

ただ、チームでの話し合いあるあるなのですが、こういうのに意見を出す人ってだいたい決まったメンバーになりがち。 その改善策として、これまでと違う方法のretrospectiveにもチャレンジしてみようということになりました。

私がファシリテーターを担当した回では、👇のページを参考にすすめてみました。

syobochim.hatenablog.com

ファシリテーションどうしよどうしよアワアワ、、ってしてて「アジャイル レトロスペクティブ」って検索していちばん上に出てきたページです(笑)ちゃんと興味深かった!!)

KPTだと基本的にPが注目されがちで、まぁもちろん悪い点を改善するのってとても良いことだとおもうのですが、すでに良い点ももっと注目されてほしいなーって思っていて。 KPT以外の方法がいいなぁと、ふんわり。

Life

めちゃくちゃに素敵な環境でした。素敵だと思う理由はまぁいろいろですが、まず、

朝昼晩の食事が無料!

貧乏苦学生にとってこれが意味わかんないくらいありがたいのは言わずもがな、社会人になってからも間違いなくありがたい福利厚生やと思います。 ランチだけでも1日500円は浮く。さいこう。

メニューも思ったよりバリエーションがありました。ランチは4種類の中からメインディッシュを選びます。 ラーメンなどの麺類、ハンバーグやコロッケなどのメインおかず系2種類、カレーなどの丼もの。

メインを選んだらそのあとサラダやおかず、デザートなどをバイキング方式で自由にとっていくスタイルです。量も個人の好みで変えられますし、本当に良かったです。

外人さんがたくさん!

これが良い点になるのは人によると思いますが、本当にたくさんでした。私のチームは20人程度のチームのうち日本人が6~7人くらい。外人さん半分超えてます。 外人さんという一言で収められないくらい、さまざまな国出身のかたがたです。中国人、韓国人、ベトナム人、フィリピン人などのアジア系が特に多く、ほかにもイギリス、オーストラリア、コートジボワール、、もう盛りだくさんでした。

わたし含めて7人くらいで飲んでいたときに、冷静に考えてみたら私と私の直属の上司以外全員外人さんで、しかも全員国が違うというクールな状況だったなんて日もありました(笑)

英語に慣れてくる

わたしは受験勉強としての英語こそゴリゴリしていたものの、留学経験もないですし、リスニングやスピーキングに関してはパッパラパーでした(今もまだそうです)

そんなわたしでも耳が慣れるくらいには、そこらへんで英語が飛び交っているオフィスです。おもしろかった。(笑)

朝はやく起きて毎日通勤するのも悪くない

ただし通勤経路がシンプルな場合に限る。

わたしは京都に住んでいて、勤務地は大阪。 京都と大阪ってなんだかんだ結構はなれているのですが、幸いわたしの最寄り駅から京阪1本で行けたのが最高でした。 しかも京阪のいちばんはじっこの駅なので、100パー座れるという素晴らしさ。

9時出社で、7時半ごろの電車に乗って1時間以上爆睡してました。 まぁインターンやからテンション高めなだけで、実際就職するときはちゃんとオフィスから近い場所にすむべきかな(笑)

2ヶ月のインターンを終えて

やさしくて素敵な方々に恵まれて、本当にしあわせな毎日でした。 学んだことはたくさんですが、まとめるとこんなかんじ。

  • 開発経験
  • チーム開発経験(Scrum開発)
  • 企業の環境・雰囲気

開発経験

やっぱりエンジニアの世界って経験するのがいちばんやとおもいます。 SQL授業で触った程度、gitは個人でしか使ったことがなかった私でも、2ヶ月ゴリゴリ書けば結構身についた(はず)。

チーム開発経験(Scrum開発)

そりゃそうやけど、ちゃんとお金を生み出すためのサービスを作っている企業であるわけで、 個人でゆるーくする開発とはまったくもって違う(当然や。)

こまめに期間を区切って進めて行くことの大切さがよくわかりました。

企業の環境・雰囲気

やっぱりこれを知るためには中に入るしかないよなって思います。

いい人たちばっかり。良い人で、優秀で、ほんとに尊敬できる人で溢れてます。

メンターさんが、ランチミーティングをたくさん組んでくださりました。 せっかく皆同じカフェテリアでごはんを食べるので、社員のかたといっしょにごはんを食べようってやつ。

ほんまにたくさん組んでくれはって、合計25人くらいのかたとランチすることができました! 8週間で勤務日数は34日だったので、なかなかの密度。すごい!

いろーんな社員さんとお話することができて、働き方とかいいところとか、ほんとにたくさんのことを知ることができました。 面倒見の良い上司とメンターさんに恵まれました。感謝。

あと、ランチミーティングだけでなく、飲みもたくさん連れて行っていただきました。 海外の方ってほーんとにおもしろくて楽しいかたばかりで。日本人がつまらないって意味じゃないよ 私は飲んだくれではないですが、人と飲みに行くのが大好きなので、毎日毎日ほんとうに楽しかったです。

\ よく働いてよく遊ぶ大人になりたい /

その後

については、また別の記事にします。

きゃんの就活はつづく。