「pixiv 2015 SUMMER BOOT CAMP」に行ってきました
「pixiv 2015 SUMMER BOOT CAMP」
ピクシブ株式会社の夏のインターンシップに技術職で参加しました。
8月31日〜9月11日の2週間(土日は休みで、計10日間)です。
経緯
きっかけは大学同期のまつのき(@himkt)のツイートかなと思います。
あとpixivインターン合格しました✌
— 松之木 (@himkt) 2015, 6月 15
お、負けてられないなっと思ったのと、
Makkyやcocuhさん*1が春のpixivインターンに行って楽しそうにしてたり、私立プログラミングキャンプでいい企業感*2があったりしてダメ元で応募してみようと。
内容
基本的に6〜7人のチーム*3で課題に取り組む形でした。
合間にエンジニア向け講義や社の全体会議に参加したり、
社員さんとお昼食べながら話したりなどなど。
与えられた課題
- pixiv Spotlightの記事作成
-
1日何回も起動する、創作活動を盛り上げる、これなしでは生きていけなくなるようなスマホアプリ開発
難しさ
1日目:pixiv Spotlightの記事作成
初日にはアイスブレイクも込みで、各チームで1つSpotlightの記事をつくる課題に取り組みました。
アイデアは沢山出ましたが、既出のテーマであったり、「なぜこの組み合わせ?」「なぜこの時期に?」といった文脈をつっこまれたりして何度も突き返されました!
「高いシェア数」と「高い閲覧数」を目指して組み立てるのは難しく、ハイクオリティな記事をという編集長の熱意を感じました。
僕たちのチームでは、締切の時間から終わらせるべきことを逆算できていなかったのと、初対面で意見が遠慮ぎみなところもあって、発表するときにまとまっていませんでした……。
KPT(Keep, Problem, Try)をチーム全員で行って、明日に繋げていこうというスタートでした。
メイン課題で実装したもの
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便利ですね。
ピクシブ夏のインターン「pixiv 2015 SUMMER BOOT CAMP」も7日目に突入!各チームとも課題に対する企画がまとまり、今日はがっつり開発に打ち込んでいます。完成が楽しみですね…! pic.twitter.com/RONNV0jpcf
— pixiv (@pixiv) 2015, 9月 8
エンジニア講義
ピクシブ夏のインターン「pixiv 2015 SUMMER BOOT CAMP」も3日目に突入。今日は課題に取り組むにあたって、企画の考え方や進め方などの講義を行っています! pic.twitter.com/Wl5N9dSynK
— pixiv (@pixiv) 2015, 9月 2
インフラなど技術系のことに限らず、マネジメント系、デザイン系のこともありました。
ハマるしかけ、デザインに込められてる意図、リーンスタートアップ、プロダクトマネジメント、インフラ、Flux、チーム開発で大事なこと などなど…
どの講義も面白かったです!
盛り上がって1時間半ぐらいになったのもありました。
例えばアプリ開発について
「自分がしあわせになる自信」と
「他人をしあわせにする覚悟」があるか
という話があって、結構印象に残ってます。
2014年のものが公開されてます!
感想
得られるものがあって、かつ楽しく過ごせて充実した10日間でした。
メンターさん、他の社員さん方、インターン生もみんな人が良すぎて泣ける。って感じです。
ありがとうございました。
あとチーム開発でのGitHub先生の便利さを実感しました。
機能はもとより使いやすい。(issue, milestone)
チーム開発での気づき
- 最初にその時間のゴールを明確にして、守る意識 が超重要
- 迷走が時間を奪う。
- 曖昧な設定では守れないので具体的にして、それを全員で把握しておく。
- いま何をする時間か意識し、脱線しそうになったら止める。
- お互いの進捗状況の共有 大事
- 自分の作業はじめると、他メンバーが見えなくなりがち。
- 誰かの遅れが全体に影響することもあるので、問題がないか確認して修正するためにも共有大事。
- 自分のやったことを簡潔にまとめて把握しておくの大切。
- 人数多いときは、3, 4人組に分けると話し合い加速する
- 1対1でのコミュニケーション大事
- 2人でちょっと話す中で良い方向が見えてきたり、意見が出てきたり。
- チームを円滑に進めるためにも人同士が通じていることがかなり大事。
エンジニアとしての気づき
- 技術を「見たことある」から「使ったことある」にするのは楽しいし成長に大事
- 難しいと思ってたことも案外簡単にできたり、簡単と思ってたことも時間かかったり。
- 自分にとって新しい技術を実際にコードを書いて使ってみる機会って大切。
- ハッカソンあんまり行ってなかったけど、よさそう。
- 勉強会はかどる
- 「名前聞いたことあっても自分で勉強するまではいかない」ってことも人に説明してもらえるとわかりやすく入ってくる。
- 自分で学びはじめる取っ掛かりにもなる。
- 参加したいし、大学でも開けたらいいな。
- イスとか机とか設備やっぱ大事
- Baron:なんて疲れない椅子なんだ
- スタンディングデスク:さっと話をはじめられて、無駄に長くならない。
- フリードリンク:買うと結構な出費になるけど、水分摂取はパフォーマンスに影響すると思うので良い。
- 新しいサービスを積極的に使っていくの大事
- 自分がよく使う使わないに関係なく、流行っているアプリやサービスはまず使ってみる。
- 触ってみると勉強になる。
- チュートリアルや最初の登録フローが以前よりも進化していたり、UIが新しさを感じたり。
- 社員間の関係の良さ、働く上で大事
- ユーザーにとって良いものであれば、立場気にせず実現に向けて動いていける柔軟さ、フラットさがある。
- 熱い人多い。ポエムかけてみんな見てる。
余談
味噌汁サーバー初めて見ました。飲むと心があったまります。
pixiv、味噌汁サーバーあるのとても素敵(´ω`) pic.twitter.com/oRIPP000uG
— Yuji (@yuji_tsukuba) 2015, 9月 8
*1:同じく大学で知り合い
ピクシブでインターンしてきました! - cocuh's note
*2:私立・プログラミングキャンプ 2013 東京大会 - #upcamp : ATND
私立・プログラミングキャンプ 2014 東京大会 - #upcamp : ATND
私立・プログラミングキャンプ 2015 東京大会 - connpass
pixivのノベルティが置かれてたり、会場になってたり。
*3:僕たちのチームでは総合職2, 技術職4, デザイナー1の7名。