【インターン体験記】株式会社kubell(旧株式会社Chatwork)
はじめに
本記事は、株式会社kubell様のエンジニアのサマーインターンシップに参加した体験記です!
株式会社kubellとは
中小企業をターゲットとしたビジネスチャットアプリ、Chatworkを展開し、日本国内利用者数No.1のチャットアプリに成長しました。そして新規事業としてDXされた事業プロセスそのものを提供するクラウドサービス、「BPaaS」を次の柱としました。
それに伴い、2024年7月1日にChatwork株式会社から株式会社kubellに社名を変更しました。
インターンの内容
インターンシップの期間は2週間あり、最初の1週間目は、オンラインで自宅で受けました。2週間目は、オフラインで実際にオフィスで開発などを行なっていきました。
オンラインパート
Day1. オープニング、(講義)ドメイン駆動設計の戦略など
Day2. (講義)要件定義講座、バックエンドなど
Day3. (講義)運用について、UIとモデル、フロントエンドとデザインなど
Day4. (講義)スクラム研修、(開発)チームに分かれ最終課題の制作を開始
Day5. (開発)チーム開発、スプリントレビュー(昼と夜で2回)
オフラインパート
Day6. (開発)チーム開発、スプリントレビュー、中間レビュー
Day7. (開発)チーム開発、スプリントレビュー(昼と夜で2回)
Day8. (開発)チーム開発、スプリントレビュー(昼と夜で2回)
Day9. (開発)チーム開発、スプリントレビュー(昼と夜で2回)
Day10.(開発)チーム開発、最終発表、懇親会
前半のオンラインパートでは、主に開発に関する講義を受講させていただきました。
単に受動的に聞くのではなく、Miroというツールを使用し、講義を受けながら思ったことや分かったこと、わからなかったことを社員さん含め記録していくことで、自分には気づかなかった視点を知ることができ、講義を集中して受けることができました!
Miroはチームで案を出し合う時や意見をまとめる時やUIの作成など広い用途で何度も使用しました。
またオンラインパートで、朝会や夕会で全体で集まる時や、チームで分かれて作業する時などにGatherと呼ばれるバーチャルオフィスアプリを使用しました!ドラクエみたいな世界観でめちゃめちゃ面白かったです!
4日目の開発パートからインプットからアウトプットに変わっていきました。
最終課題に向け、定期的なレビューをいただきながら、制作物の考案と開発を行なっていきました。
最終課題は、
作りかけのチャットアプリに中小企業が楽しく、創造的に働けるようになる新機能を追加してください
という内容でした。
そして後半のオフラインパートでは、チーム開発を主に進めていき、スプリントレビューや社員の方がペルソナ役として、ユーザーインタビューを受けていただき、そのレビューをもとに案をチーム内で出し合ったり、企画のブラッシュアップを行なっていきました。
後半パートで初めて、実際に社員の方々や、同じインターン生の方と対面でお会いすることができ、インターンの日々がより楽しみになっていきました!
インターン全般のサポートをしていただけるメンターのエンジニアの方々だけでなく、サポートエンジニアの方々からの技術的なアドバイスもいただくことができ、本当に貴重な経験でした!
社員の方々皆とてもフレンドリーで相談にも親切に乗っていただけました!!
最終日、最後のチーム開発が午前中に行われ、午後に最終発表、そして夜には社員の方々や他のインターン生の方との懇親会が行われました。お酒とピザを頂きながら、社員の方々からの貴重なお話から、たわいもない話まで本当に最高の時間でした!
まとめると本インターンは以下のような内容・特徴でした!
- インターンの前半はオンラインで社員さん方から貴重な講義を受けることができ、中盤から最終課題に向けたプロダクトの上流から下流までをチームで経験することができる。
- インタビューとプロダクトの改善・開発のサイクルにより、エンジニアとしてだけでなく、ユーザー目線を養いながら開発することができる。
- 社員の方々がフレンドリーで、技術的な事やインターンシップで困ったこともすぐに対応していただける。
制作物
ペルソナとしては、2つ選択肢があり、1つ目が介護事業者、2つ目が士業でした。
僕たちのチームは、介護事業者(実際に介護施設で患者の介護を行う介護士ではなく、拠点や拠点で働く介護士の方々のサポートや管理を本部で行う方々)をペルソナにしました。
あらかじめ社員の方々が決めたペルソナ情報をもとに要件定義などを行っていき、レビューやユーザーインタビューを通してプロダクトのブラッシュアップを行なっていきました。
このペルソナがチャットアプリを導入した目的が、拠点で働く介護事業者の安否確認でした。
しかし、拠点で働く介護事業者の方々は年配層が多いことから、サービスの操作になれず、結局電話で個人に安否確認を行っており、効率がとても悪く、安否の状況管理が大変という問題を抱えていました。
これらのことから、本部が抱える悩みとして、自然災害発生時の非効率な安否確認や安否状況の管理の苦労により事業復帰に時間がかかってしまうというものが考え出されました。
その問題を解決するために、簡単安否確認システム機能を実装しました!
特徴
- 簡単UIで操作になれていない方でも簡単に回答することができる。
- 安否確認タスクの回答は2択となっており、ボタンをぽちぽち押すだけで回答することが可能。
- 問題数も少なく、すぐに回答を終えることができる。
- 集計画面は、ユーザー名や部署名、安否確認の回答などで簡単にソートをすることができ、誰が無事じゃないのか、勤務が可能なのかなどが理解しやすいUIとなっている。
⬇️ 本部が介護士の方々に緊急時にタスクを発行する時の画面
⬇️ 介護士の方がタスクを回答する時の画面
⬇️ 回答結果の集計画面
できたこと
- 本部の安否確認タスクの発行機能とUI
- 介護士の安否確認タスクの回答機能とUI
- 集計画面のUIと各項目によるソート機能
できなかったこと
安否確認タスク発行機能
- 安否確認タスクのメッセージを設定できる機能
- 自然災害発生時、気象庁APIより、安否確認タスクを自動作成
安否確認タスク回答機能
- 安否確認タスクが作成されたタイミングで、プッシュ通知
- 数時間/日後に、リマインド通知
- 回答時に位置情報を送信
集計画面
- バックエンド実装(回答結果をデータベースに保存・読み取り)
- エクスポート機能(Excelなど)
インターンシップで苦戦・反省したこと
DDDのプロジェクトのコードリーディング
DDDについてしっかりと学んだのは本インターンが初めてでした。
そのため、今までドメインやアーキテクチャを意識してプログラミングをしたことがなかったということもあり、まずコードを読み解くのにとても苦戦しました。
他のチームメンバーがとても優秀で萎縮してしまったこと
個人的に一番反省すべき点だと感じました。貴重なインターンの機会で、緊張や不安から自分の意思を表現することが前半あたりは全然発揮することができませんでした。チームのためだけでなく、一番は自分の成長のためにもっと積極的にグループワークに参加すべきだと感じました。
スプリントレビューでいち早く動くものを見せようとする気持ちが足りなかったこと
中間発表の時、まだ私たちのチームは開発に踏ん切りをつけられず、案を出し合ったり、プレゼンの準備をするといった時間の過ごし方をしていました。
しっかりと動くものを見せることが、レビュアーの方々にどういったプロダクトなのかを理解していただける最善策であることを分かってはいたものの、その大切さ、重要さを再認識しました。
インターンシップで学んだこと
「ユーザー目線とは何なのか?」について本インターンシップを通して何となくですが、理解できた気がしました。
この2週間、講義を聞いたり、チームで意見を出し合ったり、社員の方々からレビューをいただく中で、少しずつ「どんな機能があったらユーザーは嬉しいのか」、「ユーザーはプロダクトを通して、どうなったらいいのか」、「エンジニアとしてまずは何を実装すべきなのか」と考えることができるようになってきました。
本インターンシップを通して、現時点で自分が思ったユーザー視点とは、「ユーザーにとっての一番の問題や悩みを理解し、そこから潜在的な悩みであったりニーズを分析して、自分たちができるアプローチを考えること」だと思いました。
次に学んだこととしては、アーキテクチャを意識したコードを実際に読んで触ることで、アーキテクチャやDDDに対してより理解が深まったなと感じました。
最終課題で制作するプロダクトはあらかじめ作られたチャットアプリを改造して制作していくため、初めからアーキテクチャに沿った綺麗なコードに触れていきました。
このコードが一体何をしているのかさっぱりなため、理解に苦しみましたが、理解していくうちに、機能ごとに層を分けることによって、目的のファイルを早く見つけられたり、ファイルごとに役割分担されていて、開発におけるアーキテクチャの恩恵を身に沁みて感じることができました。
また、今まで気づけなかった自分の悪い点、良い点を知ることもできました!
悪い点で言えば、自分以上に優秀な人たちの中で、自分の存在意義を見失ってしまうと、萎縮してしまうという性格。自分の中に浮かんでいたアイディアも自信がなく発言できなかった機会も何回かありました。
良い点で言えば、グループワークでのアイディアを出し合うセッションにおいて、意外にも自分は確信をついた意見を述べることができたり、チームが本筋とは間違った方向性に進んでしまったなと感じた時に、正しい方向にチームを導くことができたりすることができていました。
これらを踏まえて、今後にしっかりと生かしていきたいと思います。
今後について
ユーザー目線、アーキテクチャに関しては、個人開発でしっかりと取り入れたいと思いました!
そして、今後チーム開発をしていく中でアイディアを出し合う時に、100%の案しか自信が持てないから発言しないのではなく、発言することで自分の認識とメンバーの認識のずれなどを確認できる意味でも、積極的に発言しようと思いました。
終わりに
インターン全体通して、本当に大満足でした!!
参加してよかったぁ。
他のインターン生の方とも仲良くなることができ、インターン後に一緒にサウナ行ったり、牛丼食べたりしたのもいい思い出です。
楽しかったなで終わらずに、今後にしっかりと活かしていきたいと思います!
Discussion