見出し画像

技術者として「IBM DXチャレンジ2020」にJoin

こんにちは。株式会社NTTデータのデザイナー集団「Tangity」で、技術面を担当しております、NTT データ先端技術の佐藤です。

今回は、私が参加したIBM様主催のイベント「IBM DX チャレンジ2020」について、技術者としての体験記を書きたいと思います。
コンテストの詳細についてはこちらをご参照ください。

私はNTTデータの1チームに技術担当として参加し、子育て・教育問題の対策をテーマに子育て支援プラットフォーム「スクスク」を実装しました。
結果は、2次審査を通過後、地区大会で敗退でした。その後は、発表動画を公開し、オンライン投票により優秀チームを選出するオンラインポスターセッションにも参加しました。

前提

まず、実装にあたり考慮すべき前提をご説明します。

背景
現代はモノ余りの時代である一方で、支援の足りていない子育て家庭があります。物が余っている人たちが子育て世帯に寄付をすれば、支援が行き渡ると考えられます。しかし、多くのNPO団体は受け付ける寄付物を限定しているため、寄付物ごとに贈り先を変えなければならなりません。この煩雑さが、寄付の障壁となっています。

要件
支援を求める子育て世帯を集め、どのような寄付物も適切な受け手にマッチングさせるプラットフォームとすることが求められていました。
また、受け手を子育て世帯にフォーカスしているため、子どもの才能の開花を促すものを届けられることが望ましい、とされていました。

制約 
以下の制約がありました。

・IBM Cloud Freeアカウントで利用できるもののみを使うこと
・サービスとしてのコア機能を実装すること

コア機能は、以下の2つとしました。

・子どもの隠れた才能を考慮した、寄付物と受け取り手の機械学習によるマッチング機能
・寄付物と受け取り手の反応に応じて成長するアバター機能

アーキテクチャ

画像1

スクスクのUIはWebアプリケーションとして実装しようと考えたので、Webサーバを建てられるIaaSもしくはPaaSと、データを格納するためのDBが必要でした。

IaaS/PaaS
IBM Cloud Freeアカウントで利用できるCloud Foundryを利用しました。

DB
開発中に要件が頻繁に変わることが予想されたため、柔軟に対応できるNoSQL Cloudantを採用しました。

開発言語
容量制限があり、あまり重いフレームワークを使うことができないため、フロントエンドのJavascriptと連携させやすいNode.jsを選択しました。

マッチング機能

まず、プログラマ、YouTuber、サッカー選手などの才能グループを9種類作成しました。
そして、子ども達の登録時に実施されるアンケートを基に、子どもを各才能グループへ振り分けます。その才能に対応した品物が多くサジェストされるという実装にしました。

画像2

才能グループに振り分ける分類器はIBM WatsonのAuto AIを使い生成しました。
Auto AIは、CSV形式の教師データを入力し、目的変数を指定すると自動でXGBoostの分類器を生成してくれる優れものです。
XGBoostというのは、決定木とブースティングを組み合わせた制度の高い機械学習手法です。

アバター機能

各才能グループに対応する物を寄付した個数と、受け手から届いたメッセージをIBM WatsonのTone Analyzerで感情分析した結果によって、容姿とパラメータが変化するという実装にしました。

画像3

画像4

アバターの実装は、私が提案しました。まるで自分の子どもを育ているようなリアルな育成体験を支援者に提供することで、寄付への動機付けがより強くなると考えたためです。

気づき

PoCの現場でキャリアを積んでいる技術者の視点で気づいたことを記します。

・アイデア検証のサイクルを高速で回転させる
PoCでは、プロトタイプを作り、企画側にインスピレーションを働かせてもらうというサイクルを如何に早く回すかが重要だと実感しました。

・技術的な選択肢を多く持つ
プロトタイプを作る速度は、どのツールや開発言語を採用するかによって大きく変わります。そのため、新しい技術に触れる機会があれば臆さず挑戦して技術のストックを貯めておき、要件と制約に応じて最適なものを選択できるようにしておくことが大切だと思いました。
私は、初めての技術を学習する際には、Udemyの動画を見るようにしています。

・初期のサイクルではFigma等のプロトタイピングツールを使う
これは失敗から学んだ教訓です。
今回私は最初のサイクルからコーディングをしてしまったため、最初のプロトタイプが完成するまでに多くの時間がかかってしまいました。その間サイクルが滞ってしまったうえ、仕様変更でお蔵入りとなってしまったコードもありました。方向性が定まらない初期のサイクルにおいては、インタラクティブな紙芝居のようなイメージで積極的にプロトタイピングツールを使えばよかったなと思いました。

・PoC開発では魅せ方が超重要
PoCにおいては、実案件と比較するとあまり高い品質が求められませんが、その分魅せ方の良し悪しが成果物の評価を大きく左右します。PoCの現場では技術者であっても、成果物をより良く魅せるために、簡単なデザイン、動画編集はできたほうがよいと感じました。

感想

今回のIBM DX チャレンジでは、サービスデザインから開発までの一連の流れを主体として体験することができました。そして、発表を見た人からのフィードバックから学んだこともありました。
自分自身のサービスデザインを具現化しフィードバックを受けられる機会は貴重なので、今後もこのような取り組みに積極的に参加したいと思っています。

デザイナーさん大募集

現在Tangityではデザイナー職を積極的に採用しています!サービスデザイン、UXデザインのクライアント業務の経験がある方、ぜひ私たちと一緒に働きませんか?募集要項など詳細はこちら。お待ちしております。

インスタグラムやってます!

TangityのInstagramです。ぜひフォローしてください!


この記事が気に入ったらサポートをしてみませんか?