サイボウズさんのインターンに参加してきた話
サイボウズさんのインターンにWebサービス開発コースで参加してきました!
とても楽しく学びの多いインターンだったのでここに残しておきます。
概要
webサービス開発コースはkintoneの新機能のプロトタイプをモブプロで開発する、という内容のものでした。1タームにインターン生が6人いたので2チームに分かれ、それぞれに2人メンターさんがついてくれました。新機能については候補が40個くらいあったのでその中からチームで話し合って決めました。私たちは「@Spaceというメンションでkintoneの同じスペースに所属するメンバー全員に一括で通知を送る」という機能を選びました。そして今回はなんともう1つのチームとも同じ機能を選びました。メンターさん曰く、別のタームで同じ機能を選ぶケースはあったそうですが同じタームで同じ機能を選ぶ、というケースは初めてだったみたいです。
インターン期間中の流れ
1日目はオリエン、2日目はどの機能にするかを決めて仕様書を作って余裕があったらモブプロに入る、3,4日目はモブプロで実際にコードを書く、5日目は成果発表会とその準備、という流れでした。
5日目の成果発表会はWebサービス開発コースだけでなく、同日開催されていた生産性向上コースとモバイルチームの発表も見ることができたので刺激になりました。
コンテンツについて
インターン期間中、色々なコンテンツがたくさんありました!
座学ではkintoneについての基礎知識の講座、仕様書の書き方、kintoneの開発プロセスなどを学びました。モブプロやスプリントレビューの見学もさせてもらいました。スプリントレビューでは実装したものをすごく楽しそうに発表している方がいたことと、体験入部をしている方がたくさんいたことが印象に残っています。他にも社長の青野さんとのランチがあって直接質問できたり、社員面談をセッティングしてくれたりと、サイボウズさんを知るためのイベントをたくさん用意していただいてました。
開発の進め方について
開発はずっとモブプロで進めて行きました。25分間1人がドライバーして5分休憩して次の人にドライバーをバトンタッチ、という形でやりました。また、kintoneにはスレッドという機能がありここにモブプロ中の気づきやメモをしっかり文字で残しておきます。当たり前ですがkintoneのコードを読むのはインターン生全員初めてだったので、2,3日目はほぼずっと実装したい機能周りのコードを追ってました。kintoneほど大きなコードに触れたことがなかったので、貴重な経験になりました。
感想
仕様書を書くことについて
インターン生だけで完成させた仕様書に、QAの立場になってメンターさんからツッコミを入れてもらったのですが、考慮すべき点にたくさん漏れがありました。これも考慮した方がいいなって気づいたらそこからまた新しく考えることが....ってなり、kintoneみたいに多機能なサービスの仕様書を考えたからこそ得られた経験だと思いました。1人でネチネチ個人開発だけしていたら得られないものだったと思います。また、基本的なことかもしれませんが、仕様書の書き方として「OO以外」という書き方よりも具体的に「XXと△△と□□」と書いた方が抜けがなくていいですね...。実際インターン中前者の書き方をしていたら実装途中に抜けが出そうになっていました。
コードの読み方について
大きなコードに触れた経験があまりなかったこともあり、実装する機能周りのコードを読むとき何度もコードの海に溺れてました。チームでコードを追っているときも(その時は気づけていませんでしたが)必要以上に深くコードを追い過ぎてしまってました。そんな私たちをみてメンターさんから「もっと浅く広く見て全体を把握すること」をアドバイスしていただきました。コメントがついていたらそれを信頼して、あとは返り値や引数の型とメソッド名だけ見てどんな処理をしているのかざっくり理解できたら中身は読まない!という感じです。コードを読むのに慣れている人は当たり前のことだと思うのですが私は全く意識できていなかったのでナルホド!!!!!!!となりました。
これまた当たり前of当たり前のことだと思うんですが、どんな処理をしているか知るためには返り値や引数の型の名前とメソッド名を手がかりにする必要があるので、命名って大事なんだなと改めて思いました。
モブプロについて
モブプロとっても良い!
まず、他の人がコード書いているところを見ていると、自分の知らないgitコマンドとかデバッガの賢い使い方とか、色々なことに気づけます。授業外でプログラミングを独学でするようになってから、誰かと隣り合ってコードを書く、という機会がコロナの影響で全くと言っていい程無かったので、すごく学びになる部分が多かったです。
次に、自分1人でわからない状態が長時間続いて「ワカラン....ワカラン...ハァ....鬱....」ってなることがなく、メンタルに良いです。わからなくなったらチームメンバーやメンターさんに聞けるので。そして何より質問しやすい雰囲気なので....!!!本当にチームメンバーとメンターさんありがとうございます。今振り返ると、すごくちんぷんかんなこと言ったり質問してたりしてたことに気づいてグワーーーってなってるんですが、それでも根気強く丁寧に答えてくださってありがとうございました🙇♂️ 私の場合コードを追ったり実装したりしているときに何をやっているかわからなくなるということが多発していたので、「〜〜〜っていう認識であってますか」「今やっていることの目的は〜〜〜であってますか」って何度も質問してました。認識があってたらそれを確認できて安心だし、あってなかったらそれを指摘してもらって認識を改めることができてハッピーになれた...と思います。この認識確認で何度も流れを止めてしまっていたと思うんですが、何をやっているかわからないことにはどうにもならんし、チームメンバーもメンターさんも優しくて質問できる雰囲気だったので遠慮せず半ば開き直ってわからなくなったらすぐに聞いてました。
実況スレについて
サイボウズさんには、開発を進めていく時、1日の振り返りをする時などにkintoneのスレッドという場所に気づきやメモ、感想を文字で残しておく実況文化があるようです。
これがめちゃくちゃ良!!!!!!!!!!!!
超いいです!!!!好き!!!!LOVE!!!!
なんてったって、私が普段やっていることだから....!
私はほぼ毎日、1日の学びを可視化して振り返るために日報をつけているのですが、情報を共有する相手が未来の自分か社内の人かという違いはあれど、これやってること実況スレそのまんまなんですよね...。日報って言っても1日の終わりにバーっと書くのではなくコード書きながらとか調べ物しながらこれ残しておいた方がいいかもと思った時に適宜書き加えていく形式でやっているので。文字で残していつでも振り返ることができるという状態がすごく安心できて落ち着く性質なので、これが文化として根付いているのが個人的にすごく良いなあ!!と思いました。
kintone hiveについて
これについては最終日の懇親会でメンターさんが言っていて知ったことなのですが、すごい!!!!!!と思ったので書いておきます。「kintone hive」というイベント。内容としては
kintoneの活用アイデアをユーザー同士で共有するライブイベント
です。つまり、自分が開発に携わったものが実際にどのようにユーザに使われているかを知ることができるということですね....!!!!!これすごいな.....!?!全開発者が欲しいイベントでは....????LINE BOTやWebアプリなどいくつか小さな個人開発をしてきて、私が「作って良かった!」と1番嬉しく&モチベになる瞬間は、自分が作ったものを誰かが使ってくれていたり、誰かの役に立っているのを見た時です。この気持ちを存分に500%くらい満たしてくれるイベントだ.....いやこれほんと全開発者が欲しいイベントでは?(2回目)
使ってもらえてて嬉しいという気持ちを満たし、モチベを上げ、ユーザーの生の声を聞けて、これからの開発に活かすことができて.....とっても素敵なイベントですよね。
まとめ
本当に楽しくて学びになるインターンでした。人事さんもメンターさんも関わる人全てがいい人すぎて「全人類サイボウズ社員だったらいいのに....」って思いました(え?
そして同時にこんな素敵な人たちと一緒にお仕事ができたらきっと幸せなんだろうなと思いました。
このインターンで学んだことを生かしてこれからもっともっと頑張ります!
改めてメンターさん、人事さん、インターン生の皆さん、ありがとうございました!!!!!!!!
おまけ(2021/8/13 20:45 追記)
kintoneシミュレータを本来とは別の遊び方をしてキャッキャしてた時のツイート
あの、待って、kintoneシミュレータめっちゃ面白い
— ぴよぱんまん (@hiyoko_coder) 2021年8月1日
登場人物の名前を入力してからシミュレーション始めるんだけどだけどそこに推しの名前入れると推しと一緒にお仕事してるみたいな気持ちになれて超楽しくて本来の目的見失いそうになった
参考(2021/10/29 20:00 追記)
生産性向上チームに参加したインターン生の方の参加ブログです↓