エイチーム3Daysエンジニアサマーインターンシップ<Sembatsu>に参加した!

Ateam3Daysエンジニアインターンシップでの学び・記録

三日間の成果を一言で言うのであれば

今までの自分から一歩成長できた!

と言うんじゃないかと思います。

TL;DR

ご縁をいただき、8/3~8/5の三日間Ateam社のサマーインターンシップに参加することができました。

3日間の滞在費および'昼食'、'夕食'(名古屋めし)を負担していただき感謝しかありません。ありがとうございました。

インターンシップに参加し、

  • 今までの自分の感じていたエンジニアとしての働きかた。
  • 自分のなりたいエンジニア像

といったものの概念が再構築されたので言語化したく思いブログに書いてみようと思いました。

(見返してみると拙い文章かつ、とりあえず羅列したような箇所が多く見にくくなってしまって辛いw)

目次

  • 3日間の概要
  • 3日間の内容
  • 参加して感じた・学んだこと
  • その上で自分自身の今後について

3日間で何していたの?~概要~


参加者が全体で21名、それぞれ3人チームになり、チームごとにプロダクト改善を行いました。

HPからの引用ですが概要は↓になります。

 ・エンジニアコース(3days)
エイチームのエンジニアの仕事を3日間に凝縮したインターンシップを開催!
みなさんにはあるシステムに対する”ユーザが思う真の課題”を解決していただきます。
各チームにエイチームのエンジニアが入り、質問・相談などみなさんをサポートします!
エンジニアとしての価値を高めて、自分自身のスキルアップができるインターンシップです。


■エンジニア
エイチームのWebエンジニアの仕事を3日間に凝縮したインターンシップを開催!
みなさんにはあるシステムに対する”ユーザが思う真の課題”を解決していただきます。
・実装する力(技術)
・課題を見つける力(企画)
・解決したことをうまく伝える力(発表)
当日は、この3つの力を高めるためのコンテンツを複数用意。
各チームに現役プログラマーの社員が入り質問・相談などみなさんをサポートします!
Webエンジニアとしての価値を高めて、自分自身のスキルアップができるインターンシップです。

2020年卒業生向けにサマーインターンシップの募集を開始!

ATEAM SUMMER INTERNSHIP 2018

Ateam Lifestyle Advent Calendar 2017 学生満足度100%を獲得したインターンの裏話

↑を見てもらえば内容がざっくりとわかると思います

特に本題であるインターンの後半では、ユーザの課題とはというテーマで考え、議論し、ブレストし、出てきた改善案を実際にプロダクトに組み込むということをしました。

具体的にはどんなことをしていたの?


(注意:めちゃめちゃ長いです...www)

3日間を通して1つのアプリケーションに改善を重ね, より良いプロダクトにしよう。 というものでした。

初日と2日目の午前はすでに問題提起されている課題を解決するためのチケット型の開発。 2日目後半〜3日目の昼過ぎまでは自分たちで課題をさがし、その課題を解決するための機能を作るということを実装&プレゼンするものでした。

前半:チケット解決タスク

まず前半のチケット型の課題では vue on Rails という今風なRails製業務アプリに潜んでる既知のバグの修正や機能改善を加えるというものになっておりました。

個人的に React on Rails のプロダクトを触ったことはあるものの、 Vue on Railsソースコードはとても難しく感じ、一つ一つの機能を追うことに必死になっていました。 Vue.js使うなんて聞いてない。。。。。。。

ちなみにですが、僕のチームではまず、チケットを見渡し、'お!解決できそう'と思えたものを順番に着手し、実装に悩んだら相談する。といったスタイルで取り組みました。

チケットにはちょっとしたバグ?仕様漏れ?だったり、Railsのお作法に沿ってないが故のバグ、ユーザビリティの悪い処理だったり、...etc..多種多様なチケットが用意されていました。 (RailsができなくてもVueわかるだけの人がチャレンジできる感じなものもあった気がする......!? その逆も!)

初めてのVue.js難しいなぁと思いながらもVueのライフサイクルや構文について調べながら必死にもがいていましたw

チケットをたくさんこなしたわけではないのでチームメンバには申し訳ない気持ちになってしまいました。。自分の実力不足だなと痛感させられる前半でした。。

ちなみに順位は

初日終了時で、7位(最下位) -> 2日目の正午の段階で4位。

という結果に!(いい感じに挽回できた?!!)

後半:ユーザの課題を解決せよ!

後半では、実際に業務で使っているツールを改善しようというものです。 以下のような流れで行われました。

  1. ユーザへのヒアリング
  2. 追加機能の検討&&実装
  3. プレゼン

2日目の午後 ~ 3日目の14:30までという24h程度の時間のなかで機能の検討と実装をするという時間に縛られたハッカソンですね

※以下の内容は僕らが実際に行動していたことで 失敗? の経験です。

まずは実際に使っているユーザにヒアリングしました。 (Ateam社員:[エンジニア、マネージャ、CTO]といった方々)

- 普段どのようなことに使っているのか
  - 使う時に意識していることはあるか。
    - あるのであればどのようなことを意識しているのか。
    - 利用するシチュエーションが自分たちの考えとの相違があるのか。ないのか。
  - そのほかの利用用途があるのか
   - あるのであれば....
- また、事前にサクッと検討した機能があったら使うか?
  - プラスαどのような機能であれば使いたくなるか。

といったようなことを質問させていただきました。(詳細はアレがアレなので濁らさせていただきます。)

このヒアリングの際に聞いた内容を元に課題を考えました。

こんな意見を〇〇さんはおっしゃっていたよ
   → 〇〇さんも似たようなこと言っていたよ
 この部分てなんかアレじゃない?
   何が問題なんだろう?
   昨日が足りてないのかな?→こんなの増やしたらいいんじゃない?
 ここの部分。こうしたらさっきの解決しそうじゃない?

こんな機能があったらいいんじゃない?
この機能があればさっきの〇〇さんの悩み解決しそうじゃない?
あとはこんな機能とかも良さそう?
  →それならGem使えばすぐできそうなきがする

とかとか? を話していた気がします。(記憶が。。w)

このとき自分たちの担当のメンター(社員)から最終日の評価について以下のアドバイスをいただいておりました。

→ 見つけた課題に対して適切な機能かどうか(論理が飛躍していないか)
→ そもそも見つけた課題が表面的なものでないか(ありきたりな解決策になっていないか)

<評価項目>
・課題へのアプローチがよいか
・つくりきったか
・プレゼン力
・技術的難易度
・想像を超えた機能があったか

結論から言うとこのとき(20時)の段階の機能が 『想像を超えた機能があったか === 0 | 1 』 だったんですよね。

これはメンターから 1 on 1 面談の際に ど直球 に僕たち3人にそれぞれ伝えられましたw

チーム対抗戦なのにアイデアで負けてしまっていては、勝てない。やばい!www と思い残り90分なのに振りだしに戻りますwwwwwwwwww

ここからが本当の後半のインターンになる。 (2日目終了90分〜120分前?)

この考え直す時に何より大事にしたのは

  • ユーザの 本質的な不満 はどこにあるのか。
  • ユーザの 本当に求めている機能 はどんなものなのか。
  • そもそもユーザってなんで、このサービスつかってるの!
  • この サービスの価値 ってなんなの。

といったような、本来であれば 初期の段階でちゃんと考え込むべきポイント をひたすら再考していました。

先ほどまではソリューションレベルでのアイデアの具体化まで落とし込んでいたため内心すごいつらかった(メンタルがしんどい。。。w)。 そんなことは忘れ(るしか選択肢になく)、ユーザインタビューのメモを見返し何かヒントを探すという作業に戻りました。

ヒアリングした際のメモの中に

- なぜそのサービスを業務で使うんだろう?
- 業務でやる必要ってあるのかな
(と言うコメントをヒアリングタイム終了3秒前をもらっていた!のを思い出します。)

この二つについて考え直し、ブレストするということをギリギリまでしていました。。w 少し前までは空気がどんより(お通夜ムード)、だったのにブレストしていればお互いの考えが発散し。その中で別の意見が生まれる。 ポジティブな循環をしていました。そのため、お互いの意見に対してそれってこう捉えることもできるよね。と意見がより良い意見になり、別の視点からのアイデアと昇華されていました。

そんなような 締切駆動の僕たち が考えたことは

  • ユーザにとってこのサービスは。〇〇な価値がある
  • 会社にとってこのサービスは。 〇〇な価値がある

という結論に終着し、 その価値を200%活用するための機能作る 創ることにしました。

簡単に実装内容だけ書くと

RailsからPythonAPIサーバーたててごにょごにょしてRailsに返して、RailsがVueに吐き出す (あまり内容には触れないようにと言われているのでこんな感じです。)

Pythonつかったのは内部的に言語処理使いたかったので異論なくPythonでやろう!って感じな流れでした。 あとメンバーPythonかける人がいたから(助かった。w)

はい。というようなこと( 振り出しに戻る )をしていて、2日目は実装せずに内部構成だけ考ええて終わり。 (いや、残り半日なのにのんびりしすぎでは。。。)

この後に夜中にPythonAPIを作ってくれたKくん。プレゼン資料を作ってくれたYくんありがとう。。。 そんな中僕はVueのドキュメントをみていましたよ。。。。 (tsurai..)

余談ですが 3日目に必死に作りましたw 頑張った。うまく動いた!満足!!

機能実装に時間を裂きすぎてプレゼンがおろそかになってしまったのだけはすごい悔しいです。 後半の評価があと一つたかかったら3位になれたらしい?。。。辛い。。。笑 3位以上のチームには賞◯が贈られていたので....

懇親会とLT

  • 懇親会は美味しい食事とお酒がでました!!! (^^)/b
  • LT会は有志の学生と社員数名で行われました

開発が終わって肩の荷がおりたあとだったので色々なお話しを聞かせていただいたり。 LTはLinux、AIスピーカ、Netlifyなどなど面白い技術 (?) などなど、他にもたくさんの話があり,多種多様で面白かったです。


私事ですが、三日間の活動を評価していただき、 AteamさんのSenbatsuインターンシップの本戦へ行かせていただける挑戦権をいただきました。!!! 一ヶ月かけてサービスのビジネスモデルを作るようです。 今回入賞を逃してしまったのですが、次があるということで、次こそ優勝をもぎ取るためにがんばりたいなと思います

何を学べたの


端的に言うと。自分のエンジニアに対しての考え方が変わったな。と思っています。

(たったの3日で変わるわけないやん)

たった3日、されど3日。すごい濃厚な3日間でした笑。 (辛い時もありましたが、) それをこえて自分たちが検討していた機能を限られた時間の中で実装までこぎつけた時の 達成感 は言葉に表せないですね。

今までは要件に対して機能を作るこをするのが 'エンジニア' として考える部分が大きかったのですが

それ以上に

  • 実際にユーザに届け(デプロイするのはエンジニア)
  • ユーザに喜んでもらう (エゴサするのもエンジニアwww)
  • そして改善を加える (どんどん改善する PDCA!

ということが重要であり、エンジニアの役割 ということを改めて考える機会になりました。

その上で、実際にエンジニアとしてプロダクトを改善するにあたって。重要なことを学べました。

なぜユーザは不満を持っているのか。
新規(追加)機能の要望をあげているユーザは何に対して不満を持っているのか。
既存の機能が使いにくい背景はどんなことに依存しているのか。
ユーザがこのサービスを使っている理由はなんなのか?
そのサービスを使ってユーザはどんなことを実現したいのか?
どんな方法(機能追加・改善)をもってアプローチするのか?
その機能の将来設計はどうなのか?
本当にユーザが欲しているのか。

などなどこれ以上にもあると思うのですが、僕が印象に残っているのは以上のような観点でした。

また、チーム開発の際のお互いの役割などにも気付かされた気がしています。

各々で作業をするのも当然大事なのですが、それ以上にチーム同士での連携。助け合いなどがすごい大事だなと思いました。 そう行った点では、限られた時間の中で役割分担をしつつ各々の得意分野を生かす。ということができたのではないかと思います。

個人開発では絶対に気づけないことを容赦なく指摘し、僕らに成長の機会を提供してくださった、担当のkさん、fさんには感謝しきれないなと思っています。

他にもランチや懇親会でお話しさせていただいた全ての方に感謝を伝えたいです。

ありがとうございました!

今後どうしたいの


自分は今、将来の自分について考え始めたばかりで数年後の自分がどうなっているのか。というのをまだ具体化できていません。

ただ、今回のインターンを通じて

  • どんなエンジニアになりたいのか
  • エンジニアリングってどんなことする人なのか
  • 僕にとって本当に働きたい環境ってどんな場所なのか

このようなことを考えるきっかけになりました。

とくに最後の一つは大きく考えさせられ

  • 自分がどんなサービスにコミットしていきたいのか。
  • それってサービスにコミットできたらいいのか。
  • 周りの人との喜びの共有とか。働く職場の雰囲気とか、なんなら職場の立地とか。あらゆる側面での働きたい環境とはなんなのか。

思い返すと、いままで考えたことがなかったな。というのが本音です。

夏休みという長い (?) 時間があるので

  • 自分の将来について考えていきたいなと思いました。
  • もっと 技術に貪欲になろう 。(周りがすごかった。)

p.s. 長くなってしまいましたがエイチームのエンジニアサマーインターンシップはとても楽しい経験だったと思います。来年興味のある人がこの記事をみて’よし行くぞ!’となってたら僕はとても嬉しい。w