1
/
5

エンジニアに聞く「ワタミの宅食みまもりサービス」開発舞台裏

タビアンは株式会社ワタミさまの「ワタミの宅食みまもりサービス」への開発協力をしており、2022年10月からプロジェクトを開始し、2022年12月にサービスをリリースしました。

「ワタミの宅食みまもりサービス」は健康に配慮した日替わりのお弁当・お惣菜を毎日お届けする食事宅配サービス「ワタミの宅食」のプラットフォームを活かした高齢者見守りサービスです。開発パートナーとして、IDENBRID社と協力体制を敷き、プロジェクトリードとコンサルティングおよびアプリのUI/UXデザインをIDENBRID社、モバイルアプリと管理画面の開発・実装をタビアンが担当しました。

本記事では開発に関わったプロジェクトマネージャーの梶原、エンジニアの梁瀨・伊藤に実際のプロジェクトの舞台裏を伺いました。(画像左から梶原、伊藤、梁瀨)

登場人物

梶原 飛鳥:プロジェクトマネージャー、エンジニア。バックエンドAPI、Webアプリケーション、スマホアプリ開発案件に従事。趣味は格闘技観戦。

梁瀨 健太:エンジニア。WEB・モバイルアプリ開発や物理サーバー構築の案件に従事。趣味はバスケットボール。

伊藤 碧央:エンジニア。大学在学中よりタビアンで勤務し、タビアンの技術スタックを習得。Vue.jsやReactといったフロントのアプリ開発を得意とする。

ーみなさんがプロジェクト内でどのような役割を担当したのかを簡単に教えてください

梶原:開発におけるプロジェクトマネージャー(以下、PM)として、スケジュール・タスク管理を担当していました。Jiraを使いチケットを起票し、チケットの期限を決め、1週間単位のスプリントでチケットのタスクに対応していきました。その週に誰が何のタスクを行うかを割り当て、一部手が足りないときは僕自身も開発に携わりました。

機能選定の部分にも開発PMとしてIDENBRID社と伴走し、お客様との仕様詰めやデザインの議論にも関わりました。開発フェーズにおける要件定義・管理・実装の3点を中心に、PMとしてプロジェクトの安定稼働を目指し、進めていました。

IDENBRID社は開発以外のプロジェクト全体のPMとアプリのUI/UXデザインを担当し、主にクライアントであるワタミ社との調整や契約、全体のスケジュール調整やスケジュールにともなう計画の見直しなど、タビアン側が開発にできるだけ注力できるように、主に開発以外のプロジェクトマネジメントを担当してもらいました。

梁瀨 :僕は実際に手を動かすエンジニアとして、プロジェクトに携わりました。基本的には梶原さんから割り振られたチケットのタスクを期限内に行い、開発を進めていきました。プロジェクト後半ではシステムの保守・運用に関する対応を担い、お客様とやり取りをしながら、問い合わせが発生した際に対応を行う立場として関わりました。

伊藤:僕も梁瀨さんと同様、エンジニアとして携わり、開発と保守・運用に関わりました。梁瀨さんと2名で作業を分担し、開発を行っていました。

ー使用技術や開発した機能、システム構成を教えてください

梶原 :ユーザーが操作するモバイルアプリと、そのアプリで取り扱うデータを管理する管理画面2種類の開発を行いました。モバイルアプリ側はIonicフレームワークを使用し、タビアンでもっともよく使ってるVue.js、Nuxtを組み合わせたNuxt/Ionicというライブラリを採用しました。画面の見た目を実装しつつモバイルアプリとして利用するので、Webアプリをクロスプラットフォームとして使用できるCapacitorを入れ、バックエンド側はAWS Amplifyを使い、認証基盤やデータベース、モバイルアプリのプッシュ通知に活用しました。ほかにも、ユーザーをアクティベートするためにSMS送信をし、コード入力をしてもらう機能もあったため、AmplifyとPinpointを組み合わせ、アプリのプッシュ機能の開発を行ったり、Amazon SNS(Simple Notification Service)を使用しSMS送信をさせる機能の開発も行ったり、バッチ処理のためにAWS Lambdaを使ったりしています。

管理画面側はほかのWebアプリ開発プロジェクトでもよく活用するVuetify、Nuxt3を使用しています。管理画面はVuetifyとNuxt3は最新版を使用し実装されており、バックエンド側はモバイルアプリと管理画面で共通のため、Cognito、AWS Lambdaなど共通のものを使用しています。スマートフォンからも管理画面からも参照されてシステムが動いているようなイメージです。

アーキテクチャ図

ー今回のプロジェクトのポイントはどのようなところにありましたか?

梶原:プロジェクトを進めるうえでの大きな特徴としては、かなり開発期間が短かった点です。本来開発に入る前には終えていなければならないUIデザインも開発と並行して進行していました。そのため僕自身がPMとして意識していたことはスケジュールへのコミットです。ほかのプロジェクトの経験も踏まえ、スケジュールに関しては自分のタスクもエンジニアのタスクも必ず厳守する・させるように意識していました。結果的に少し遅延が発生したポイントもありましたが、スケジュール厳守の意識をチーム内で強く持ったことにより、最小限に抑えられたと感じています。

梁瀨:エンジニアとしても納期を守る意識は常にしていました。ときにはPMの梶原さんにもフォローをしてもらいながら、期日に間に合わせるように開発を進めました。

あとは、今回のプロジェクトではSwiftなどネイティブ言語ではないものを活用し、開発技術の新規開拓をしたいという意図がありました。もともとタビアンで開発しているJavaScriptで開発するために、IonicやCapacitorの採用に至った経緯があります。そのため、プロジェクトの序盤はタビアンとして初めて使う技術についてのインプットやリサーチにかなり時間をかけました。今までは少し知っている程度でしたが、プロジェクトで使うことになりかなり深い部分まで理解して使わなければならなかったため、ドキュメントや記事、GitHubのソースコードなどのリサーチから始め、情報を集めながら実際にどう使っていくかを考えていきました。伊藤さんと2人でかなり時間をかけて検証しましたね。

ーコミュニケーションにおいて苦労したことや工夫したことはありますか?

梁瀨:開発面のコミュニケーションで言うと、代表の難波さん、PMの梶原さんの時間がかなり限られており、不明点が発生した際は伊藤さんと2人でやらなければならず、その点は苦労しました。

伊藤:効率の良いコミュニケーションをかなり模索しましたよね。一方で良かった点は梁瀨さんとの密なコミュニケーションができた点です。不明点が発生したタイミングでカジュアルに通話を繋ぎながら相談し合える環境をつくったり、プロジェクトメンバーで行われる1日2回の朝会・夕会の中で解決できるようにタスクを整理し進めるなど、仕組みの工夫で乗り越えられた部分も大きかったと思います。タスクに詰まったときに解決できる場が1日のどこかに必ずあったので、全体として進行がストップしないような進め方ができていたのかなと。

また、モバイルアプリの開発とリリースを担当していましたが、僕自身にも経験がなかったため、梁瀨さんからもさきほどありましたがリサーチにはかなり時間をかけました。前職でモバイルアプリ開発の経験があるメンバーがいたため、情報を教えてもらったり、参考にさせてもらったりしながら進めていきました。

梁瀨:伊藤さんと2人だったことで、相談し合える相手がいたのは本当に心強かったです。メインエンジニアが自分1人だったら、リサーチと検証から開発・実装、保守までを自力でやらなければならなかったので、もう1人エンジニアがいたことで精神的負担はかなり和らぎました。

伊藤:一方でIDENBRID社からアサインされたデザイナーの方と少し距離が遠く、デザインに関する議論をする機会があまり多く取れなかった点はコミュニケーションにおける反省点でした。社内のメンバーではなかったので「声をかけてサクッと話す」がなかなかしづらくて…。

梁瀨:そうですね、開発しながらデザインも並行して走っている状況だったため、デザイン側とのコミュニケーションはもっとするべきだったなと。開発していくなかでは「デザイン通りに開発したけれど、実際に動かしてみると使い勝手が悪いかもしれない」と思う部分もあり、そういった部分はデザイナーとのコミュニケーションを重ねました。とはいえスケジュールは待ってくれないので、開発しながらデザインも変わっていくような進行はかなり大変でしたね。

ー得られた経験や学びを教えてください

​​梶原:PMとしては、前職でバックエンドの業務システムのPMを経験したことがありますが、フロントエンドやモバイルアプリのようなジャンルの異なるアプリ開発のPMを初めてしっかりと経験できたので、学びの多いプロジェクトでした。

僕もIonicフレームワークには初めて触れたので技術的な学びにもなりましたし、モバイルアプリ開発の経験値が蓄積されたのは良い経験になったと思います。タビアンはWebアプリの開発プロジェクトが多いですが、プロジェクト進行や管理もモバイルアプリだからといって全く違うやり方になるわけでもなかったので、大きな遅延なく、スケジュールにコミットできると気づけた点は大きかったと思います。

反省点としてはPMとして、プロジェクト開始時点でシステムの全容をインプットするのに時間がかかり、機能やデザインに関する議論が発散しがちになっていた際、収束に時間がかかってしまったことです。理解し、議論が脱線したらきちんとスコープのコントロールができるようにしていくべきだったなと。スケジュールとスコープのバランスを取り、プロジェクト進行をしていきたいです。

梁瀨:エンジニアとしてステップアップできたプロジェクトだと思っており、とても良い経験になりました。反省点としては、自分のタスクでいっぱいいっぱいになってしまい、他のプロジェクトメンバーがやっているタスクや開発の詳細に目を通しきれなかった点です。今後はより効率的なインプットを行い、開発のナレッジを蓄積して、スムーズな開発をしていきたいと考えています。

伊藤:モバイルアプリの開発からリリースまで、サーバレスで、Nuxt3、Ionicなど新しい技術を使いながらエンジニアとして多くのチャレンジができたと思います。

技術に関するインプットやリサーチに時間をかけた一方で、ビジネスドメインの知識のインプットが不十分だった部分が多かったなと。開発中に仕様が明確にならず詰まってしまったり、保守対応への影響が出てしまったりしたシーンがあったので、前提として仕様を把握し、整理する時間をしっかり取るべきだと感じました。

終わりに

2ヶ月というかなり短い開発期間のなかで、クオリティを担保し、サービスリリースができたことに対して、ワタミ社、IDENBRID社からは高い評価をいただきました。サービス・事業の開始日が決まっている状況で、サービスとしての品質を実現するだけでなく、その後の保守・運用や追加開発が継続できるだけのプロダクトを提供できたことはタビアンとしてもとても大きな機会となり、大きな貢献ができたプロジェクトでした。

タビアンでは一緒に働く仲間を募集しています。プロジェクトの内容や開発体制について、より詳しく知りたい方はぜひお気軽に、カジュアル面談へのご応募をお待ちしております。

タビアン株式会社's job postings
7 Likes
7 Likes

Weekly ranking

Show other rankings