KAI-YOUのエンジニアインターンになって、2ヶ月間で学んだこと

f:id:KAI-YOU:20190722170049j:plain

アイキャッチはジャニタレ並みに肖像権が厳しいKMさん)

こんにちは。KAI-YOU開発部のインターン生KMです。

普段は情報科の大学でネットワークの勉強をしているのですが、Webプログラミングにも興味があり、KAI-YOUではその技術を学ぼうと思い、インターン生として入社しました。

KAI-YOUでは、バックエンドとフロントエンドの開発に携わっています。

それから2ヶ月経ち、なんやかんやあって開発フローにも慣れたので、入社する前から今までの行動を振り返ってみようと思います。

入社するまで

KAI-YOUの存在を知ったのは2016年末。 他にもいろいろWebプログラミングを学べそうな場所はあったのですが、楽しそうな雰囲気に魅力を感じて応募することにしました。

選考フローは書類選考、2度の面接、課題提出。

上記を経て、2月の後半から勤務を開始しました。

厳しいと感じたのが「課題提出」。

その内容は

CakePHPを使って日記のアプリを作成。
そのコードをGitHubとBitbucketにデプロイしてそのリポジトリのURLを送って下さい。

というもの。

一目見たときに、知らない・見慣れない・やったことない事が3つあって絶望しました(CakePHPとBitbucketとデプロイ)。 しかし、インターネットの力を借りてすべて解決できました。

情報の共有は素晴らしい。

入社してから1週間目

当時の自分は不安もありましたが、自信もありました。前述の課題を一人でできたからです。インターネットさえあれば全て理解できると驕っていました。

しかし実際は、開発環境の構築に一週間も費やしました。

KAI-YOUのローカル開発環境は、Vagrant仮想マシンを作って、その上でnode.jsやcakephpなどを動かしているのですが、自分が使っているWindowsのマシンでは一筋縄ではいきませんでした。

自分以外全員Macを使っていたので、ビルドコマンドがWindowsに対応していなかったのです。

一週間無能だった自分は落ち込みました。

メンバーがとても優しいこともあり、なおさら。

2週間目

ようやく開発に携われるようになった自分の初めての仕事は「キーフレーズページの表示速度を早くする」ことでした。

f:id:KAI-YOU:20190722170333p:plain

【まとめ】かよちゃん(かよちゃん) とは|キーフレーズ - KAI-YOU.net

キーフレーズページとは、ユーザーが自由に編集できる百科事典のような機能。ここの表示速度がかなり遅かったのです。

課題をやったおかげで、ソースコードの読み込みは遅いながらも、着実に理解を進められました。

よく覚えているのは「そこはAjaxを使って後読みをしよう」とリードエンジニアのキャベツこうべさんに提案されたときに、Ajaxの意味も分からずに「はい」と返事をしてしまったことです(これもインターネットで解決しました)。

何やかんやあってページの表示速度を改善できるコードができて、メンバーにレビューをしてもらいました。 結果は原型が残らないほどに修正されてしまいましたが、本番環境に反映されました。 そのときに開発部の人たちが褒めてくれたのがとても嬉しかったです。

一応役に立てたので2週間目の自分は元気になりました。

3週間目以降〜現在

開発のフローを教えてもらいつつ、バックエンドだけではなくフロントの開発にも興味があったので参加させてもらいました。

フロントの開発に関しましては研修を兼ねて、ペアプログラミングで取り組みました。詳しくはこちらの記事をご覧ください!

インターンに研修も兼ねてペアプログラミングやってみた。 - KAI-YOU Lab

知らない事ばかりだったので、入社前よりは確かに技術力が身についていると思います。 独学では絶対に触れられないことばかりで楽しいです(Google Analyticsや、SlackのAPIなど)。

しかし、最近はOSが起動しなくなってしまい、悲しくなりました……。

週に一度みんなで遊んでいます

KAI-YOUのスタッフは20人弱いますが、週に一度全員で食事をしてそのあと2時間の昼休憩をしています。 その時間でみんなでゲーム、TV、ボードゲームやスポーツなどで遊んでいます。

自分は、会社でゲームをしたり、TVを見るというのはありえないと考えていたので驚きました。 最近はNintendo Switchに触れて、面白かったので欲しくなりました。

感想

KAI-YOUは、想像していたよりも楽しいところでした。

「Webプログラミングが学べればいいや」と考えていたのですが、とても緩い雰囲気で、お菓子を食べつつ指導してもらえたりします。

ただ今の技術力ではまだまだ役に立ていないので、ゲームにうつつを抜かさず、精進していこうと思いました。

リードエンジニア・キャベツこうべから

f:id:KAI-YOU:20190722170309j:plain

KMさんはこれまでで唯一のエンジニアとしてのインターン生でして、 入社課題の段階から1のお願いに対して1.2〜1.5の成果というか自分なりにプラスアルファを返してくれるでめっちゃ期待してます。

役に立たないとか言ってますが、そんなこと開発部メンバーだれも思ってないんでこれからもよろしくお願いします。

噂ではカードゲームの才能に満ち溢れているらしいのでこんど対決してみたいと思います。

エンジニアリングしたい人募集中

KAI-YOUでは、なにか、これをやってみたい! というチャレンジしたいエンジニアさんを募集しています。一緒に働いてみませんか?

RECRUIT | 株式会社カイユウ - KAI-YOU inc.

KAI-YOU開発部インターン生、KMでした。

インターンに研修も兼ねてペアプログラミングやってみた。

f:id:KAI-YOU:20190719185759p:plain

こんにちは。KAI-YOU開発部のデザイナーCKSです。

毎日デザインをカリカリとしているぼくですが、コーディングでの開発にも参加してるデザイナーです。

最近バックエンドができる学生がインターン生としてKAI-YOUの開発に参加してくれています。しかし彼はバックエンドだけでなくフロントにも興味があり、またKAI-YOU開発部としても、彼には幅広く参加してほしいと考えていました。KAI-YOUは職種に縛られず、自分のやりたいことをなんでもやってみて提案していく思想があります。

そんな彼に、フロントの開発の仕方、同時にKAI-YOUでの開発フローを体感して学んでもらう為、ペアプログラミングという手法を用いて一緒に開発をしてみました。

ペアプログラミングとは

ペアプログラミングというのは、簡単に言えば一台のパソコンを主に使って2人で共同して開発する手法のことです。

ペアプログラミング - Wikipedia

2人で一台のパソコンを同時に操作する・・・なんてことはもちろんせずに、一人がキーボードを実際に触ってコーディング・その他実作業を行い、もう一人がそれを隣から眺めながら設計を吟味したりエラーを発見したりします。

作業する側をドライバー、眺める側をナビゲーターと呼びます。

今回は研修も兼ねてるのでインターン生をドライバーに、僕がナビゲーターとして一緒に開発してます。

インターン生とペアプログラミングをするメリット

本来ペアプログラミングは一つの作業に2人で取り掛かることで集中的にタスクをこなせることが強みですが、今回は研修が目的の一つ。研修でペアプログラミングをすると以下のようなメリットが生まれます。

  • 開発導入からリリースまで一緒に作業するため、一連のフローを実践を通して伝えられる。
  • 実際のコーディングについての細かい規則を一緒に操作しながら確認できる。
  • 作業しつつ、即質問即返答で疑問をサクサク解消できる。
  • まだ関わりの浅いインターン生と仲良くなれる。

マンツーマンでの指導となるため、口頭だと細かすぎて伝わらないコーディング規則、更に踏み込むとエディタの便利な機能・操作方法等についてまでもが、ケースに直面次第その場で伝えられたことが個人的に大きな手応えです。

ペアプログラミングの様子・環境

ペアプロは、実際に開発するのももちろんですが開発フローを頭から最後まで伝えることも重要なので、簡単で小さなタスクに十分な時間を見積もって行いました。

ペアプロを行う環境としては、インターン生の席で行いました。会議室等で大きなモニタにミラーリングしながら行うやり方が快適ですが、今回は実際に開発している様子自体も確認したかったので席の隣にお邪魔しました。すぐ隣でとやかく言うのが憚れる場合は会議室行きましょう。

実際やってみていかがか

実際やってみてどんな感じだったのかというと、良い感じだと思いました。

導入の一発最初にペアプロをやれば以降開発に参加するための、フローや規則・伴う諸注意、コードベースでの決まりごと、システムのクセなどの諸々を伝えられて導入としてペアプロは最適でした。インターン生の人となりも十分に把握でき、合間に開発に直接は関係ない、KAI-YOUについてのことなんかもちょこちょこ話しました。あそこにあるお菓子食べていいんだよ〜とか。

開発フローは細かく見ていくと、まず開発環境を立ち上げるところから始まり、gitでブランチ分けーのプルリク書きーの・・・たくさんの段階と手順があります。一回慣れればほとんど考えることなくサクサク行えることばかりですが、フェイズごとのコツや注意・心持ち、ミスした時のリカバリー等、実は高度で一見しただけでは難解な事柄はたくさんあります。先にこれやってからプルしないとコンフリクトしがち・・・とかとか。

また開発での各作業は、その作業を行う意味を確かに意識することが肝要です。プルリクはそれを読んだだけでレビュアーが把握できるように、コミットメッセージは後で見返した時各コミット内容が簡潔に分かるように・・・マニュアルだとなかなかカバーにしにくい事をニュアンスと共に伝えられて、この事にペアプロをやった意味を感じました。(だからといってマニュアルを放棄していい訳ではない(早くマニュアル整備しないと・・・))

実際は複数回行ったペアプログラミングですが、2回目以降はほとんどのフェイズに置いて適切で有効なオペレーションが成されていたように見受けられました。

これから

自分がドライバーでペアプロ受けた時も同じ事を思ったんですが、ペアプログラミングは開発の導入・訓練に有効だとわかったので、これからも新しい人が加わったらできるだけ行っていきたいです。

簡単なタスクにそれなりの時間をかけたのですこしリソースを使いましたが、新しいメンバーを開発に早く参加させることができるのでペアプロは一考の価値ありです。

ペアプログラミングドライバー編

デザイナーだけど開発に参加するためにペアプログラミング受けてみた。 - KAI-YOU Lab

エンジニアリングしたい人募集中

KAI-YOUは、職種を越えて何かやりたいことを積極的に勉強したり、また自由に取り入れたりしてお仕事ができる会社です。

なにか、これをやってみたい! というチャレンジしたいエンジニアさんを募集しています。一緒に働いてみませんか?

RECRUIT | 株式会社カイユウ - KAI-YOU inc.

カイユウ開発部デザイナー、CKSでした。

年末タスクの大掃除! 今年のタスク今年のうちにまとめてみた

f:id:KAI-YOU:20190719190319j:plain

こんにちは、仕事納めのKAI-YOU開発部のねりまちゃんです。

2016年ももうすぐ終わりですが、みなさんの大掃除のご予定はいかがでしょうか? もう終わらせたよ〜って人もいらっしゃるんでしょうか。

わたしたちのチームでは、せっかくなのでタスクの大掃除をすることにしてみました。

年末タスクの大掃除!

KAI-YOU.netをどんどん良いものにしていこうと会社全体で頑張っているのですが、日々の業務の中でどうしても増えていく、「あーあそこ、どうにかしたい」と気になっているタスク、「こんな新機能つけたい……けど今は無理……」と後回しになっているタスク……。

心のどこかに重なり続け、精神衛生上悪すぎる小さな闇! ここは、年末の大掃除! とばかりにとりあえずみんなで洗い出しをしました。

普段Trelloを使ってタスク管理をしているのですが、今回はより一覧できるよう、模造紙とポストイットを使って取り組んでみました。

気をつけたこと

ブレストの手法と同じで、とにかく

  1. 遠慮せず出す!
  2. やれるかわからなくても、いつできるかわからなくても、とにかくやりたいこと、気になっていることを書き出す!
  3. タスクの粒度(大きさ)も考えず、とにかく出す!

4人で出し合い、30分ほどで、50個のタスクが浮かび上がりました。ポストイットの色は、書いた人ごとの色で分けてみました。

それを、「やりたい」「やるべき」「すぐやる」の3段階にカテゴリーを分けました。

f:id:KAI-YOU:20190719190312j:plain

そのうち「すぐやる」のところからすぐやれそうなものに関しては、普段使っているTrelloでカードを作り、いくつかは既に実際に作業を完了させることができました。

いつも気にしていた細かなタスクを全て洗い出すことができてとてもスッキリ……!

終わった後、チームの近くの壁に張り出しました。

来年もがんばります!

これからは、チームのメンバーそれぞれで気づいたときにどんどん貼っていき、定期的に見直してカテゴリー分け→作業できるときにTrelloに移動という順序で運用していこうと考えています。

みなさまの会社ではこんな運用方法でやっているよ〜というのがあれば、教えていただけるとめちゃめちゃ嬉しいです。 2017年もKAI-YOU.netをよりよくできるよう頑張っていきますので、引き続きどうぞよろしくお願いいたします!

私たちと一緒にKAI-YOU.netをもっとポップにしてくれるエンジニアも、引き続き募集しています!

RECRUIT | 株式会社カイユウ - KAI-YOU inc.