スマートスピーカーを駆使して業務改善に挑戦

若林直希氏(以下、若林):「スマートスピーカーがクラウドを開発!? 今後のクラウドを支えるもう1人のチームメンバー」と題して、発表します。よろしくお願いします。

突然ですが、アジャイル開発をしているみなさん、こんな課題がありませんか? 「スクラムイベントのたびに毎回準備をするのが面倒だ」、「あ! スクラムイベントの時間が過ぎている!」……こういった課題を抱えている方がいるんじゃないでしょうか?

私たちのチームは、アジャイル開発でこういった課題を抱えていて、この業務課題をスマートスピーカーを使って改善しようと挑戦しました。始めは単純なツールとして業務課題の解決に挑戦していき、最後は、主体的に動くAIアシスタントに成長させることを目指しています。

また、スマートスピーカーの業務課題の改善を通じて、エンジニアのワクワク感や新しい技術の習得を目指そうと試みました。本日は、このスマートスピーカーを使った日々の業務改善について、お話ししたいと思います。

本資料の内容は、あくまでも個人の見解なので、所属する組織の公式見解ではありません。この点だけご注意ください。

申し遅れましたが、私は若林直希と申します。所属はKDDI株式会社で、「KDDIクラウドプラットフォームサービス」、その中でも「ベアメタルサーバーサービス」というサービスの開発を担当しています。KDDIに所属はしているんですが、携帯に関する業務にはまったく関わりがなく、法人向けのクラウドサービスの開発を担当しています。

サービス開発には、主にPythonを利用しています。趣味はカフェ巡りやボルダリングですが、昨今のご時勢でなかなかできていないので、最近は「スプラトゥーン」をずっとやっています。そろそろプレイ時間が3,000時間になってしまいそうなくらいです。

そろそろ本題に入りたいと思いますが、まず簡単に業務を紹介します。先ほども簡単に説明したとおり、私はベアメタルサーバーサービス、クラウドサービスをアジャイルで開発しています。このサービスは、主にPythonで開発していて、お客さまが実際に使うWebポータル画面や、バックエンドの開発を担当しています。

アジャイル開発における3つの役割

みなさん、アジャイル開発はご存知かと思いますが、簡単に説明すると、開発中に発生するさまざまな状況の変化に対応しながら開発を進めていく手法です。要件定義、設計、開発、テストを経てリリースするときのサイクルを短くすることで、より素早くお客さまに価値を提供する手法がアジャイル開発です。

アジャイル開発における役割は、大きく3つあります。

まずはプロダクトオーナーですね。プロダクトオーナーは、そのサービスを作るうえでどういった仕様にするのか、サービスの要望を開発に伝える役割です。また、デベロッパーやスクラムマスターが開発した内容を、成果物としてリリースするのか最終決定するのもプロダクトオーナーの役割となっています。

続いてスクラムマスターは、プロダクトオーナーとデベロッパーの間に入って、デベロッパーチームの開発を円滑に回す役割です。

最後にデベロッパー。私はこのデベロッパーの役割を担っていて、プロダクトオーナーから下りてきた要望に応えるために、開発を進める立場にいます。

「スクラムマスター」は「スクラムイベント」のファシリテーター

今回、私たちが紹介したい業務改善が、スクラムマスターの業務に関する内容なので、スクラムマスターの業務内容を少し深掘りして話したいと思います。

スクラムマスターは、先ほど述べたとおり、チームの開発を円滑に回すのが大きな役割となっています。

スクラムマスターが、チームの開発を円滑に回す上で実際にどんなことをやっているかというと、「スクラムイベント」の進行です。スクラムイベントというのは、アジャイル開発の中で、チーム内でコミュニケーションを取るための時間です。例えば「デイリースクラム」、毎日の朝会ですね。あとは「スプリントプランニング」。私たちのチームが、1週間単位で実施するタスクを洗い出して、どんな開発をするかを決める場となっています。

また、その1週間で開発した成果物の報告をする場が「スプリントレビュー」になっていて、スクラムマスターはこういったチーム内のコミュニケーションを円滑に進めるための、スクラムイベントのファシリテート役を担っています。

スプリントプランニングで洗い出した1週間のタスクがきちんと1週間で終わるような制御、他のタスクが割り込んでこないように制御するなども、スクラムマスターの役割となっています。プロダクトオーナーとデベロッパーの間に位置するので、プロダクトオーナーとデベロッパーのコミュニケーションをサポートします。

さて、私は今までの説明で「コミュニケーション」という言葉を特に多く使ってきたんですが、アジャイル開発において、コミュニケーションはすごく大事な要素の1つです。

「スクラムイベント」の課題を解決するために誕生したAIアシスタント「くまごろう」

今回お話するのが、赤く囲ってあるスクラムイベントについてです。チーム内、チーム間でのコミュニケーションの部分で抱えている課題を改善していくための取り組みについて、説明したいと思います。

私たちが、スクラムイベントでどんな課題を抱えていたかというと、私たちのチームではスクラムマスターが基本1人だったので、各スクラムイベントのファシリテートを1人でするのが大変だ、ということ。毎回のタスクの管理やタスクボードの準備、操作が面倒、気づいたらスクラムイベントの時間になってしまっている、スクラムイベントが長引いて終わる時間が過ぎてしまっている。こういった課題がありました。

この課題を解決するために、私たちは「くまごろう」を誕生させました。先ほど説明したとおり、私たちは業務課題をスマートスピーカーを使って解決しようと挑戦しました。スマートスピーカーで動いているAIアシスタントが「くまごろう」です。

なぜ「くまごろう」なのかいうと、私たちのチームにイメージキャラクター、マスコットのようなキャラクターがいて、それが熊のキャラクターなので、そこから「くまごろう」という愛称が生まれました。

このAIアシスタントの「くまごろう」を成長させるのと同時に、エンジニアのワクワク感や、新しい技術の習得をコミュニケーションを通じて目指すのが私たちの挑戦です。スマートスピーカーを選んだ理由の1つとして、スマートスピーカーは音声インターフェイスなので、私がアジャイルで大切にしている、コミュニケーションを通じて課題を解決するのにぴったりのツールかなと考え、こちらで挑戦をしています。

既存のスマートスピーカーとは異なる独自のツール「くまごろう」

さて、これから「くまごろう」の説明に入るんですが、いったい「くまごろう」とは何なのかというと、既存のスマートスピーカーである、Google HomeやAmazon Alexaとはまた別の独自のツールとなっています。具体的にどんなツールなのかというと、Raspberry Piですね。Raspberry Piと付属のディスプレイやマイク、スピーカーを組み合わせたものに、Google Assistant SDKを導入したものが「くまごろう」です。なので、既存の製品とはまったく別の、独自ツールとなっています。

今回、なぜRaspberry PiとGoogle Assistant SDKを選んだのかを説明します。まず、なぜRaspberry Piを利用したのかですが、先ほど説明したスクラムイベント、これは毎日の朝会や1週間のタスクを洗い出すスプリントプランニングの場ですね。ここで我々が使っているタスク一覧を管理するツールを表示したかったので、今回ディスプレイが使える、Raspberry Piを採用しました。

また、解決したい課題がたくさんあって、今後開発していく上でなるべく自由度がほしい、柔軟に対応したい、という思いから、カスタマイズの自由度が高い、Raspberry Piを採用しました。既存の製品を使うよりも、自分たちで開発を進めていけるRaspberry PiやSDKなどを使うことで、ワクワクした技術力を付けられるというのも理由の1つとなっています。

なぜGoogle Assistant SDKなのかは、もちろんAlexaのSDKでもよかったんですが、Google Assistantのほうが、我々がもともと持っていたスキルで取り掛かりやすいという理由で、Google Assistant SDKを採用しました。

「くまごろう」の説明をしましたが、Google Homeや既存のスマートスピーカーとどういった違いがあるのかを簡単に説明します。違いはたくさんあるんですが、大きな違いを表にしました。

まず、既存のGoogle Homeでは、設定方法が基本的にアプリからになります。 Google Homeアプリからさまざまな設定を行えるのがGoogle Homeなんですが、「くまごろう」の場合は、Google Assistant SDKがPythonファイルでのプログラムになっているので、Pythonファイルを編集して各種設定を行っていきます。

機器の立ち位置は、Google HomeはGoogle homeアプリから見たときに、もちろんスマートスピーカーとして扱われるのですが、「くまごろう」の場合は、例えばエアコンやスマートライトといったようなスマートデバイスと同じ立ち位置にいます。

また、1つ大きな違いで、ウェイクワード(Wake Word)があります。ウェイクワードというのは、スマートスピーカーが処理を待ち受ける前に反応するためのワードです。例えばGoogle Homeであれば「OK Google」になるんですが、「くまごろう」の場合、好きなワードに変更できるのが大きな特徴となっています。

続いてコストですが、Google HomeはNest HubやMiniといった、さまざまな種類がありますが、およそ1万円前後します。今回、「くまごろう」は他のプロジェクトで使っていたRaspberry Piや、社内で余っていたディスプレイ、マイク、スピーカーを利用しているので、基本的には無料で取り組みを進めています。 (後半へつづく)