yujif.blog

https://yuji.website

「pixiv 2015 SUMMER BOOT CAMP」に行ってきました

f:id:y_f:20150916214552j:plain

「pixiv 2015 SUMMER BOOT CAMP
ピクシブ株式会社の夏のインターンシップに技術職で参加しました。
8月31日〜9月11日の2週間(土日は休みで、計10日間)です。

ssl.pixiv.net

 

経緯

きっかけは大学同期のまつのき(@himkt)のツイートかなと思います。

お、負けてられないなっと思ったのと、

Makkyやcocuhさん*1が春のpixivインターンに行って楽しそうにしてたり、私立プログラミングキャンプでいい企業感*2があったりしてダメ元で応募してみようと。

内容

基本的に6〜7人のチーム*3で課題に取り組む形でした。
合間にエンジニア向け講義や社の全体会議に参加したり、
社員さんとお昼食べながら話したりなどなど。

与えられた課題

  • pixiv Spotlightの記事作成
  • 1日何回も起動する、創作活動を盛り上げる、これなしでは生きていけなくなるようなスマホアプリ開発

難しさ

1日目:pixiv Spotlightの記事作成

初日にはアイスブレイクも込みで、各チームで1つSpotlightの記事をつくる課題に取り組みました。

イデアは沢山出ましたが、既出のテーマであったり、「なぜこの組み合わせ?」「なぜこの時期に?」といった文脈をつっこまれたりして何度も突き返されました!

「高いシェア数」と「高い閲覧数」を目指して組み立てるのは難しく、ハイクオリティな記事をという編集長の熱意を感じました。

僕たちのチームでは、締切の時間から終わらせるべきことを逆算できていなかったのと、初対面で意見が遠慮ぎみなところもあって、発表するときにまとまっていませんでした……。

KPT(Keep, Problem, Try)をチーム全員で行って、明日に繋げていこうというスタートでした。

f:id:y_f:20150918153245j:plain

f:id:y_f:20150918153249j:plain

メイン課題で実装したもの

1日何回も起動する、創作活動を盛り上げる、これなしでは生きていけなくなるようなスマホアプリ開発

なかなかハードルが高い課題。

テーマを考えるのに2日ほど使って、その後の木, 金, 月, 火, 水の5日間で大方を実装、木曜日でバグ潰し・調整という感じでした。

最終的に自分たちのチームでは、中高生をメインターゲットに画像を組み合わせて大喜利するアプリをつくることにしました。

バックエンド:Ruby on Rails + Grape + Rmagick + APNs など
フロントエンド:iOS 8.0 / Swift + Himotoki + Haneke + Alamofire

エンジニアが4人いたので、経験を踏まえてそれぞれ2人ずつという感じで分けました。


僕は最初バックエンド側を担当して、サーバー用意してAPI作りをしました。
技術メンターのFromAtomさんからRESTful APIをつくるのにGrapeが便利と教えてもらって、割とサクサク進んでました。だいたい松之木がやってくれた感があります。

後半はフロントエンドがキツそうだったので、iOS開発に入りました。
Push通知はややこしそうと思ってたら意外と簡単にできて、実際ふぁぼ通知がリアルタイムに出てくるのを見たときは、ちょっと感動でした。
あと手をつけたことがなかったアニメーションも触ることになって、技術的に幅が広げられた感じがします。

それから初めてデザイナーさんがすぐ側にいる形で仕事をできたのですが、「デザイナーさんがいるのはつよい」とわかりました。
ロゴやアイコン、モックアップができてくると雰囲気出てきてテンション上がるし、何よりレイアウトなどの実装がだいぶ楽に感じました。Sketch便利ですね。

 

エンジニア講義

インフラなど技術系のことに限らず、マネジメント系、デザイン系のこともありました。

ハマるしかけ、デザインに込められてる意図、リーンスタートアッププロダクトマネジメント、インフラ、Flux、チーム開発で大事なこと などなど…

どの講義も面白かったです!
盛り上がって1時間半ぐらいになったのもありました。


例えばアプリ開発について

「自分がしあわせになる自信」と
「他人をしあわせにする覚悟」があるか

という話があって、結構印象に残ってます。


2014年のものが公開されてます!

inside.pixiv.net

感想

得られるものがあって、かつ楽しく過ごせて充実した10日間でした。
メンターさん、他の社員さん方、インターン生もみんな人が良すぎて泣ける。って感じです。
ありがとうございました。

あとチーム開発でのGitHub先生の便利さを実感しました。
機能はもとより使いやすい。(issue, milestone)

チーム開発での気づき

  • 最初にその時間のゴールを明確にして、守る意識 が超重要
    • 迷走が時間を奪う。
    • 曖昧な設定では守れないので具体的にして、それを全員で把握しておく。
    • いま何をする時間か意識し、脱線しそうになったら止める。
  • お互いの進捗状況の共有 大事
    • 自分の作業はじめると、他メンバーが見えなくなりがち。
    • 誰かの遅れが全体に影響することもあるので、問題がないか確認して修正するためにも共有大事。
    • 自分のやったことを簡潔にまとめて把握しておくの大切。
  • 人数多いときは、3, 4人組に分けると話し合い加速する
  • 1対1でのコミュニケーション大事
    • 2人でちょっと話す中で良い方向が見えてきたり、意見が出てきたり。
    • チームを円滑に進めるためにも人同士が通じていることがかなり大事。

エンジニアとしての気づき

  • 技術を「見たことある」から「使ったことある」にするのは楽しいし成長に大事
    • 難しいと思ってたことも案外簡単にできたり、簡単と思ってたことも時間かかったり。
    • 自分にとって新しい技術を実際にコードを書いて使ってみる機会って大切。
    • ハッカソンあんまり行ってなかったけど、よさそう。
  • 勉強会はかどる
    • 「名前聞いたことあっても自分で勉強するまではいかない」ってことも人に説明してもらえるとわかりやすく入ってくる。
    • 自分で学びはじめる取っ掛かりにもなる。
    • 参加したいし、大学でも開けたらいいな。
  • イスとか机とか設備やっぱ大事
    • Baron:なんて疲れない椅子なんだ
    • スタンディングデスク:さっと話をはじめられて、無駄に長くならない。
    • フリードリンク:買うと結構な出費になるけど、水分摂取はパフォーマンスに影響すると思うので良い。
  • 新しいサービスを積極的に使っていくの大事
    • 自分がよく使う使わないに関係なく、流行っているアプリやサービスはまず使ってみる。
    • 触ってみると勉強になる。
    • チュートリアルや最初の登録フローが以前よりも進化していたり、UIが新しさを感じたり。
  • 社員間の関係の良さ、働く上で大事
    • ユーザーにとって良いものであれば、立場気にせず実現に向けて動いていける柔軟さ、フラットさがある。
    • 熱い人多い。ポエムかけてみんな見てる。

余談

味噌汁サーバー初めて見ました。飲むと心があったまります。