ほりすのぶろぶろぶろぐ

ほりすのぶろぶろぶろぐ

非情報系から最高のエンジニアを目指す旧帝大学生

リブセンスのプロダクトエンジニア養成講座に参加してきた

2019.08.19~2019.09.13の約1ヶ月間、リブセンスのプロダクトエンジニア養成講座(Android)に参加してきました!

prtimes.jp


プロダクトエンジニア養成講座は今期が初の試みとのことで、1期生になってきました。
今回の取り組みや感想を自分が発信して、そのリアクション等で来年以降も開催するか検討されるそうなので気合い入れて書いていきます(笑)



はじめに

この1ヶ月をスライドにまとめたものがあるので、是非先にそちらもご覧いただければと思います。
リブセンス プロダクトエンジニア養成講座(speakerdeck)



このブログでは、上記のスライドに沿って内容を整理し、1ヶ月間で行ったことやその感想を書き連ねていきます。

自己紹介

自分については、ざっくりスライドに書いてはいますが、詳細はCA Tech Dojoインターン体験記の冒頭あたりに記載しています。
プログラミングを始めた時期や、何を作ってきたか、今どういうことをしているかを書いているので、よろしければそちらも是非ご覧ください。

kurutabrog.hatenablog.com

リブセンスについて

リブセンスについてご存じない方へ向けて簡単に紹介します。


リブセンスは2006年設立で、現在は従業員数約400名(内正社員約290名)の、中堅ベンチャーです。
このロゴが特徴的ですね。

f:id:kurutabrog:20190915160055p:plain
リブセンスロゴ
このロゴは普通にみると雫に見えますが、実はもう視点を変えて反対から見てみるとクエスチョンマークに見えます。
このロゴには2つの意味があり、

1.徹底:この雫は「雨垂れ石を穿つ」を象徴しており、継続の大事さを表しています。
2.発想:物の見方を象徴しており、様々な角度から見ることの大事さを表しています。


インターン初日に聞いた時には「考えられてるなあ」と関心した記憶があります。


また、リブセンスは世の中の課題の解決にビジネスで取り組んでいる会社で、課題解決ドリブンな社風があります。
こういったビジョンを掲げているところからもその風潮が伺えます。

Vision
あたりまえを、発明しよう。
私たちの事業は、社会の問題や日常生活の中にある「?」が起点です。だれもがあたりまえだと思って諦めている世の中の常識や仕組みを疑い、課題の本質を見極め、テクノロジーを駆使して解決していく。そして、新しいあたりまえとして定着させていくことが、私たちの事業が目指すビジョンです。

多くの事業を立ち上げてクローズするような事業戦略ではなく、1つ1つにじっくりと取り組み、課題の根底をテクノロジーで覆していく堅実なイメージがあります。
とはいえ、スライドにも出てきますが、堅実ではあるけれど中堅ベンチャーならではのスピード感で意思決定はされるので、リリースの頻度が高かったり、PDCAをうまく回している会社でした。


事業ドメインは設定していないそうですが、現在は主に「人材」と「不動産」領域にサービスを展開されています。
特に人生の節目になる「仕事」と「家」の課題にフォーカスしているのだと思います。

エンジニアはあまり使わないかもしれませんが、学生間で馴染みがあるのは就活会議だと思います。
企業に関するインターンや面接の口コミが見れて、同サイトから説明会等のイベントも応募できるようなサービスです。
自分は学部生の時は材料系で、メーカー等を見ていたこともあり、何度かお世話になっていました。


ここで全て紹介するのは難しいので、簡単な概要をお伝えするに留めます。
詳しくは公式ホームページをご覧ください。

プロダクトエンジニア養成講座

概要

プロダクトエンジニア養成講座のサイトは冒頭にリンクを載せましたが、その中でプロダクトエンジニア養成講座の目的は以下のように記載されています。

せっかく知識を得ても、金銭的・時間的・地域的などのさまざまな理由から、在学中に不特定多数のユーザーに使ってもらうような実践的な経験を積めない学生もいます。
「プロダクトエンジニア養成講座」では、自分の持つ知識を利用しながら実際のWebサービスを開発する過程に携わり、プロフェッショナルなエンジニアになるための学びの機会を提供いたします。

1ヶ月間の経験を踏まえて要約すると
「独学や学校の授業である程度知識を蓄えている学生に、体系的かつ実践的な現場の知識をつける場を提供していただける」
だと思います。

「プロダクトエンジニア養成講座」という名前なだけあって、ここでいう「現場の知識」は技術だけと言うわけではなく、事業を創造する際の企画から、事業を育て上げるために施策を練る等までのビジネス側の知識も含まれます。




この養成講座の応募資格が、
1.在学中
2.プログラミング経験のある人
の2つのみで、プログラミングテスト等のコーディングはありません。
なので、応募してくる学生の現段階での実力に合わせて学びの場を提供してくださる感じですかね。

受け入れ人数はモバイルとWebそれぞれで1~2人(今回はAndroidは自分1人、Webは2人)なので、ここからも一人ひとりに手厚いプログラムがあるのは想像がつきます。


まあ、なにが言いたいかと言うと、実務未経験の初心者エンジニアでも受かる可能性はあります。
大事なのは実際に手を動かしているかどうかだと思うので、是非また開催されることがあれば応募してみるのもありだと思います。


時給が発生して、交通費や宿泊費も提供があり、現場のプロに質問ができる環境で学べたので、至れり尽くせりですごく良い経験でした。

4週間の流れ

何をしたかのざっくり流れです。

1週目

・リーダーのMTGに一緒に参加して体感。
 ◦ついていただいていたリーダーが主に人材系のアプリ3つを担当していらっしゃったので、同席して雰囲気を体感。
 ◦数字や施策面の詳細は1ヶ月で理解できることではないので、それぞれの役職の方が何を意識して話しているか、現場の流れを特に注意して見るようにしていました。
Androidアプリ開発の基礎を復習
 ◦これに関しては人によります。社員の方も「どれくらいできるインターン生が来るかわからなかったから、自由にinputしてていいよ」と言っていたので自由でした。一応Androidの勉強の仕方や参考リンクをまとめていただいたものがあったので、codelabsをやったり基礎の復習をしていました。
 ◦他には、設計に興味があったので有名なサイトを写経したり、社員さんの私物のAndroidテスト全書を読んだり。
 ◦input時間も時給は発生していたので申し訳なかった...。

2週目

・1週目と同様のことをしつつ
・新規アプリの企画を考える。
 ◦会社は関係なく、自身で0-1を考えるフェーズ。

3週目

・フィードバックをもらい、実際に開発
 ◦3度修正してから1〜2画面を実際に自分なりの設計で作成してみる。
 ◦今回は勉強という意味も含めてMVVM+Clean ArchitectureにAACやDIを盛り込んだ結構ボリューミーな実装に挑戦。
  ・せっかくフィードバックもらえるのでチャレンジ精神大事。
  ・実際はプロダクト内容やリリース期間、チームの人数などを考慮する必要があります。
・プロダクトコードを見せてもらい、現場レベルの設計、コーディングを体感。
 ◦Androidアプリのリポジトリを見せてもらいました。

4週目

・実装しつつコードレビューをしてもらった。
 ◦実際にプルリクを投げて社員さんにレビューしてもらった。

学んだこと/感想

MTG

・デザイナー、ディレクター、エンジニアの深く、説得力のある発言が多かった。
 ◦なぜ右上にこの形のボタンを配置するか、この項目でアンケートをとって何を得たいのかなぜその項目なのか、など、発言の一つひとつにしっかりと意見を持って、理由を聞かれたら説得力のある答えが返せていた。
 ◦深いからこそ、お互いの意見を譲れないときもあり、意見の収束が難しそうだった。
 ・エンジニア/非エンジニア双方を理解するプロダクトエンジニアが間に入って収束へ持っていくイメージが湧いた。

・どうすれば「ユーザーが使いやすいか」を追求して議論していた。
 ◦課題解決ドリブンな社風が出ていた。
 ◦なんとなくや、とりあえずでリリースせずに堅実に検討。
 ◦とはいえ中堅ベンチャーならではのスピード感もある意思決定がなされていた。

アプリ企画

・0-1でプロダクトを作り上げるステップを学んだ。
 ◦様々なFWがあり、その一部を実践した。
  ・デザインスプリントやカスタマージャーニーマップ等、複数あるFWをきっちり使ったわけではないが、かいつまんでstep by stepで企画を作り上げていくフローを知れた。
 ◦リーンスタートアップのMVP(Minimum Viable Product)の考え方で、徐々に拡大していくやり方を身につけた。
  ・これまでは初めから大きくしようとしていたが、必要最低限の実装をしてから徐々改善を繰り返して拡大していくことができた。

・アプリGの方々からのフィードバックをもらった。
 ◦機能面だけではなく要件面も具体的なフィードバックをもらえた。
  ・普段1人だと盲目的になることが多く、良い経験でした。
 ◦コードをかけるだけがエンジニアなのではなく、実際の利用シーンを想像した上で最適な、ユーザーが使いやすい機能や要件を提案できるのがエンジニアだと感じた。

開発

・実際のプロダクトコードを見せてもらって感動。
 ◦作成途中ではあるが規模の大きいコードを見ることで設計や 細かいコードの記述面で参考になることがたくさんあった。

プルリクはコミュニケーションの場
・コミット粒度もコードの書き方もコメントも、レビュワーやメンバーが読みやすいかを意識する
 ◦個人開発は自分が読めればいいし、自分が書いているのでコードを見るだけでやりたいことがわかるけど、チームは気をつけることがたくさんある。
  ・プルリク初めてだったので学びが多かった。コメントいただいたところ15個を全て1つのcommitで再レビュー出したのは今思い出すと暴挙すぎて笑える(笑)
  ・1番、これから頑張ろうと思えたところでもあり迷惑をかけたところでもあるので強調しています。


日常生活

・人の良さ
 ◦互いを尊重して気遣える
  ・誰かが発言するときはしっかり聞き、否定から入らずに意見を尊重していた。
  ・転職してこられた方が、育休をとると周りに言った時に「おっいいね、しっかり休みなよ」と何人かに言われたのが衝撃だったという話を聞いた。これも相手のことを考えているからこその発言なのかなーと勝手に思っていたり。
 ◦常に和やかな雰囲気
 ◦休憩を挟んだり、残業しないように呼びかけたり
  ・リーダーの方がこれを実践していて、特に自分には休憩を逐一はさんでいるかをなんども確認されました。(あまり休憩できずにぶっ通しでやってしまうタイプだったため)
  ・常にメンバーが最高のパフォーマンスができるようにな環境を作っている印象をうけた。

・考えを押し付けず、個人が最高のパフォーマンスができるような環境を作っていた
 ◦(上述した内容と少しかぶりますが...)
 ◦「リブセンスで学んだことは1つのinputとして引き出しにしまうと良い」というのをすごく強調されていた。
  ・多くの引き出しを持っていることで、柔軟に対応できるから
  ・色々なやり方を学んでやりやすいやり方に気づけると良い
 ◦プルリクやslackでのアドバイスも「と思います」と、I視点なので受け入れやすい
  ・事柄や意見に対して決めつけるYou視点の意見しないことでコミュニケーションが円滑に。


・この1ヶ月を通してすごく働きやすかった

豪華ランチ

雅叙園の超豪華ランチビュッフェに連れて行ってもらったり、

f:id:kurutabrog:20190915174915p:plain
雅叙園ランチビュッフェ


うなぎ御膳に連れて行ってもらったり、

f:id:kurutabrog:20190915175036j:plain
うなぎ御膳


叙々苑ランチ(1番高いやつ)に連れて行ってもらったり...

f:id:kurutabrog:20190915175126j:plain
叙々苑Cランチ


完全に舌が肥えました。
めちゃめちゃ美味しかったです。

反省点

・もっと質問をすればよかった
 ◦コード面では初めの2週間でinput時間が多く、アプリ実装も大きな躓きもなかったため質問があまりできなかった。
 ◦独学でやってきていたため、ある程度のわからないことはググって解決しようとしてしまっていた。
  ・自力で検索する時間を決めて、それ以上調べてわからなければぱっと質問すべきだった。
   ・人に話すことで整理されて解決できたりするし。
   ・何をやろうとしていて
   ・どこまで調べて分かっていて   
   ・何がわからないか を伝えると答える側もわかりやすい。
 ◦リーダーやマネージャー目線では、質問をしてもらったほうがその人の状況が把握しやすいとのこと。

・職の垣根超えての交流もすればよかった
 ◦エンジニア以外にも個性的な方がたくさんいたのでもっと話したかった...。

・次はコードかけるようになってプロダクトに貢献したい
 ◦今回は自分のプロダクトを0-1で企画して、プロダクトコードを参考にして実装した形だが、実務したい!!
 ◦タスク管理ツール、CI、フォーマッタ等、個人開発している中でなかなか触れられないようなツールも触ってみたかった。

総括

総括というか、この1ヶ月で特に学べた/収穫のあったことが3つあるので、それに関してまとめます。

深く考える癖

この記事の、「4週間の流れ」以降、・や◦を用いて出来事や思ったことを記載していきました。
これは、この1ヶ月感のインターンで1番身についた深く考える癖に繋げるためにこのような形で書きました。



インターン2日目、面接を担当されていた人事の方と1on1ミーティングをしたのですが、その時にこんな面接のフィードバックをいただきました。

堀くんは、無意識に目標を帰納的に決めているね

自分自身で深く考えるというよりは、過去の出来事や、他人の経験から「こうすれば正解だ」と目標設定をしている傾向があるとのことです。


これを言われてハッとしました。
たしかに、面接の時に学生時代に頑張ったことを聞かれて、1段階の深掘りには答えることができても、さらにその行動や考えに対して何故?と聞かれると答えにつまることがありました。
これは、自身の行動や意思決定を深掘りして振り返っていないからなのでしょう。
フィードバックをいただいて、自分の思考の浅さに気付かされました。

そのため、
行動や意思決定・思考に対して徹底的にWhy/Howを考える
を1ヶ月の目標として掲げました。


そして、実践したのがとにかく書き出すことです。
何故を深掘って考えよう〜ってなんとなく考えるのは自分は向いていないと思ったので、ひたすら書き出しました。

そのときに実践したのが、・や◦を使って階層化する書き方です。
この機能をつけよう と考えた時に1段階深掘って、自分の思考を書き出す。
1段階深掘った思考に対してさらに深掘ってもいいし、1番上の階層に対して、最初とは違う視点でブレイクダウンしていくのでも良いと思います。

そうすることで、プレゼンする時も自分の思考を追って説明でき、質問が来た時も一度思考を可視化しているので回答しやすいです。


このようにして、最終日の面談では、見違えたと言っていただけました。
さらに、
後輩人事の教育に同じやり方使ったら、深く考える癖がついてきた
とも言っていただけたので誇らしいです。


まだまだ考えながら話すのは難しいですが、
思考を整理してから話す
を意識するのとしないのとでは違うので、これからも書き出していこうと思います。

プロダクト作りのアプローチの1パターン

step by stepでアプリを企画し、実装する、リブセンスなりの方法を教えていただきました。

この1ヶ月実感したのは、1つの正攻法を教えていただいたのではなく、考え方という観点で多くのことを教えていただきました。
先ほどの深く考える癖もそうですが、何か成し遂げたい課題があったときのアプローチの仕方”の考え方”だったりです。

上述した
「リブセンスで学んだことは1つのinputとして引き出しにしまうと良い」
というスタンスだったので、これからも柔軟で応用の効かせたアプローチができるように実際の現場を見せていただけたのだと思います。

第3者からみた自分

これは、自分という大きなくくりを使っていますが、第3者からみたコードであったり、企画、最高のパフォーマンスができるペースなど、普段1人だとなかなか気づけないことに対して多くフィードバックをいただきました。


フィードバックに関しても、1つのinputとして受け入れて、自分のやりやすい方法を作りたいと思います。

さいごに

少し長くなりましたが、書ききれないことの体験をしました。

プロダクトをスケールさせられるエンジニアになりたいと思い応募したプロダクトエンジニア養成講座ですが、人としても深くなれたのではと思います。


リブセンスのみなさん、1ヶ月間お世話になりました!