初めまして、SCSKの齋藤です。
今年の6月から9月において、AWS社主催の企画であるANGEL Dojoに参加してきました。
SCSKチームは「ANGEL賞」と「ベストアーキテクチャ賞」の2つのカテゴリで第2位を受賞することができました(リンク)
今回は、ANGEL Dojoの、概要、開発したサービス、感想などをまとめていきたいと思います。
ANGEL Dojoについて
概要
ANGEL Dojoとは、4〜6人でチームを組んで、サービスを0から企画・開発するハッカソン型のトレーニングプログラムです。
主催はAWS社であり、参加者はAmazonのカルチャーを学習し、クラウドサービスのメリットを最大限生かして新しい独自のサービスを作り上げていきます。
AWS JAPAN APNのブログでも解説されていますので、ご紹介します。
目的
今回の目的としましては、ユーザ企業の内製化支援が主な目的となっております。
ユーザ企業の方々がANGELDojoを通じて、どのように内製化を進めていくかを考えていただき、必要に応じてAWS社やパートナー企業のメンターなどがサポートをするという体制になっていました。
またパートナー企業の若手育成ももう一つの目的でありまして、今回私を含めたSCSKメンバーとして若手4人が、パートナー企業として参加しました。
期間と流れ
2021年6月3日〜9月3日までの3ヶ月間で実施し、毎週木曜日と金曜日を丸一日ANGEL Dojoの活動にあてました。
流れとしましては、まず最初の約1ヶ月間を『企画フェーズ』とし、自らのチームで開発するサービスを考えます。その後、約2ヶ月かけて『設計・開発フェーズ』として、実際に手を動かしながらサービスを作り上げていくものになります。
途中、AWS社のメンバーによるAmazon流のサービス開発手法のトレーニングや、AWSの各種サービスの講義があり、「地球上で最もお客様を大切にする企業」というAmazonがいかにしてサービスを作り上げているかというのを学びながらプロジェクトを進めていきます。
また、7月下旬に中間発表、9月3日に最終発表という形で、開発しているサービスについて、他の参加者などに向けて発表する機会がありました。
SCSKチームが企画・開発したサービスについて
今回私たちSCSKチームが開発したサービスは、レストランソムリエ『ルパソン』です。
こちらのサービスは、チャットボットの質問に答えていくとあなたにあったおすすめの飲食店をレコメンドしてくれるサービス となっています。
企画に至った背景
なぜ飲食店をレコメンドしてくれるサービスを作ったのかというと、飲食店を選ぶ時迷うことが多いと考えたからです。
飲食店に行くときはいろんなケースが考えられます。友達と飲みに行く時や、仕事の合間のランチなど飲食店に行くという行為は日常の中で結構多いです。その度にどの店に行くか迷って時間をかけた挙句、結局いつものお店に行ったなんてことはありませんか?
そういった悩みを解決するサービスを作ることで、迷う時間をなくし、その分食事の時間に多くを費やすことができるようになると考え、SCSKチームは企画を決定しました。
機能
『ルパソン』は、主に2つの機能があります。
1.チャットボット機能
ルパソンのコア機能となるチャットボット機能です。チャットの質問に答えていくと利用者に最適な飲食店を1件に絞って提案してくれるサービスとなっております。「夜景が見たい」や「お酒が飲みたい」などの要望を伝えることもでき、それにあったお店を提案してくれます!
もし、提案したお店が気に入らなかった場合は、別のおすすめのお店を見ることもできます!
2.レコメンド機能
レコメンドページに遷移すると、ユーザーのこれまでの傾向にあったおすすめのお店を、自動で5件表示する機能になります。
チャットボットでのやりとりの履歴をもとに、過去の傾向からよく行く場所などを分析して、その人の好きなジャンルのお店を自動的に提案します。提案されたお店をクリックすると、グルメサイトのページに遷移し詳細を確認することができます。
この機能を使うと、チャットボットの質問なしでもおすすめのお店がすぐに見れるようになり、食事の時間に多くを費やすことができるという価値をさらに高める機能となります。
アーキテクチャ
どのようにしてこのサービスが動いているかを、アーキテクチャ図を用いて説明します。
ポイントを下記4つの視点で紹介します。
①チャットボット機能
チャットボットはAmazon Lexを使用し、チャットボットの応答能力を高めるためにAWS Lambdaを使って補強しました。
AWS Lambdaでチャット応答の細かな制御を行い、飲食店情報などを外部のグルメサイトAPIなどを用いて取得してきます。
②Web画面
マネージドサービスのAWS Amplifyを採用し、バックエンド開発の効率化を実施しました。具体的には認証機能を1から開発せずに、AWS Amplifyの機能を用いて楽に実装しました。
また、Cloud9のサービスを使うことで、他の人との開発環境を共有し、ペアプログラミングを実施しました。
③レコメンド機能
レコメンド機能は、多くのユーザ登録を見据えて、DynamoDB、AWS Glue、Amazon S3を用いたデータレイクを実装しました。
Amazon Athenaを用いてデータレイクのユーザ分析を実施し、その内容をもとにLambdaを使って、ユーザの傾向にあったお店の検索を行います。
また、AWS StepFunctionsを用いて傾向分析のフローを自動化しています。
④運用・セキュリティ
運用を楽にすることを考えて、Amazon CloudWatchなどで監視のダッシュボードを作成しました。
また、セキュリティ面を考えて、飲食店のAPIへアクセスするAPIキーの保存は、AWS Systems Managerを使用しました。
発表における成果
前述した通り、ANGEL Dojoでは9月3日に最終発表がありました。
その中では、各チームが考えたサービスの概要・価値や、作り上げたアプリケーションの出来について発表し、最後に以下の表彰が行われました。
- ANGEL賞:ビジネス的に優れている / サービス全体の完成度という観点で参加者と聴講者から投票
- ベストアーキテクチャ賞:AWSJ の Solutions Architect および Partner Solutions Architect にてWell-Architectedの観点で選定
なんとSCSKチームは、ANGEL賞とベストアーキテクチャ賞をそれぞれ2位で受賞することができました!!
投票していただいた方からのフィードバックコメントを閲覧したのですが、
「1番使ってみたいサービスだったから」
「監視や運用までしっかり考えられているから」
といったような嬉しい声をいただきました!
ANGEL Dojoを振り返って
学び
今回のANGEL Dojoにおいて学んだことは下記2つです。
顧客視点で考える方法
Amazon流のサービス開発手法として、Working Backwardsというものがありました。
これはサービス企画の初めの段階でプレスリリースとFAQを作成するというものです。
プレスリリースなどは、本来サービスをリリースする最後の段階で発表するものです。ですが、あえて最初の段階で作成することでユーザにどんな価値を提供するか?といったことを具体的にイメージし、それらを前提に考えながら企画・開発を進めることができるのです。
これにより、プロジェクトの方向性などブレることなく、提供したいサービス体験に基づいた開発が一貫して行えます。
競争が増している現代において、的確にユーザへの価値提供ができる打って付けの考え方だと学びました。
クラウドを用いたモダンアプリケーション開発手法
AWSなどのクラウドサービスは、マネージドサービスと言う開発を楽にしてくれるサービスが整っております。
例えば、AWS Amplifyというサービスは、バックエンドリソースの構築を楽に実施し、ユーザが触れる部分であるフロントエンドの実装に集中することができるサービスとなっております。実際に、認証機能などは1行程度のコマンドを入力するだけで構築することができました。
このように、ユーザへ届ける価値に直結する部分のみ集中し、それ以外は手間をかけない。そういった開発を実施することで、上記のWorking Backwardsに沿った価値集中型の開発を行うことが可能となるのです。
このように、価値に集中し無駄な部分を省くことで開発スピードも早める方法が、現代的(モダン)なアプリケーション開発手法ということを学びました。
最後に
今回0からサービス開発を実施し、実際に自分たちで動くものを作ることができたことは非常に良い経験でした。
また、最終発表のフィードバックコメントにもありましたように、共感を得られるサービスを作ることができたのも光栄でした。
多くの共感を得られて賞を受賞することができたので、ユーザへの価値を届けるという視点では今回の開発は成功したと言えるのではないかと思っています(笑)
最後に、多くの人々に支えられて多くの学びを得ることができました。
今回のこのような機会を提供してくださったAWS社のメンバーの皆様、サポートしてくださった社内のメンターの方々、参加することを許諾してくださった同じ組織のメンバーの方々へ、改めて感謝の意を表します。
この学びをどうやって生かすかを考えながら、これから業務に臨んでいきたいと思います。