【コラム】Provii‼誕生秘話 ー第1章ー リソース管理ツール 初号機の誕生
- #Google Workspace(旧G Suite)
- #Provii!!
ルーキー社員が生みだし全知全能のエンジニアが育てた、Google Workspace 管理者を救うクラウドサービス Provii‼ の知られざる誕生と進化の歴史~
多くのお客様にご利用いただいているリソース管理ツール Provii‼ はどのように誕生したのか。
知られざる開発裏話から現在のクラウドサービスとして進化を遂げるまでの秘蔵話を、個性あふれる開発者と陰の立役者たちにインタビューしました。
Provii‼とは
Google Workspace 内で管理者が管理する各種リソースデータの変更を 「スムーズに」「間違わず」行うためのお手伝いをするクラウドサービスです。Google Workspace のリソースデータの一括確認・一括設定を実現し、管理者様のお手伝いをします!Provii‼を導入することにより、管理者様の負担を大幅に削減し、設定項目のミスや漏れを軽減させることが可能となります。
詳細はこちら https://clo.flight.co.jp/provii/
フライトソリューションズのクラウドインテグレーション部 ではクラウドサービスの導入・移行・運用支援をサポートしており、中でも Google Workspace の Googleグループ運用については、クライアントやベンダー各所から多くのご要望、ご相談を受けていました。
「設定項目が多すぎる」「操作ミスが発生しやすい」「確認場所が多く手間がかかる」
このようなお悩みをまとめて解決できないものかと、クラウドインテグレーション部の大野部長は思案にくれる日々でした。
―開発に至った背景を教えてください
当時、ベンダーがクライアントへGoogleグループの管理の案内を行っていて、退会ボタンがでてしまう(注釈1)とか、突然メールが届かなくなったり(注釈2)とかの不便な点を全部説明していたんですよね。
その説明が長くて長くてお客さんも眠くなっちゃうし、毎回同じ問題が出る状況をなんとかしないといけないねって、仕事仲間でもあり長年の友でもあるベンダーのX氏と連日語り明かしてました。その中で「じゃあその不便な点をAPIで設定変更できちゃうツールを作ろう!」という話しになり、開発することになったんです。
(注釈1)ユーザーが操作可能なGoogleグループの画面上に退会ボタンがあり、こちらをユーザー自身が誤って押してしまうことで意図しない退会ができてしまいます。
(注釈2)上記の意図しない退会により、メールが届かなくなったり、ドライブやファイルへのアクセス権が剥奪されます。
2017年、当時のクライアント案件で必要となったこともあり、まずはデスクトップアプリとしてGoogleグループ設定ツールの開発がスタートしました。このツールはいずれクラウド化して多くのクライアントへ利用してもらえるであろう、と大野部長にはProvii‼の未来がその当時から見えていたのです。
そして、開発者として白羽の矢が立ったのが、新卒で入社したばかりの森田さんでした。
開発者は新卒1年目のルーキー社員!?
―依頼されたときはどんな気持ちでしたか?
いかにも開発!って感じでワクワクして飛び込みました。
内容的にも、まぁできるだろう、と特に悩まずに設計書を書き始めました。当時は、条件を聞いて設計書から順番にこなしていっただけで、実際にお客さんと話したとかは全然なかったんです。最終的に作ったものを誰に渡したのかなどもよくわからず…。
―入社1年目で長年ご愛顧いただける自社ツールを開発されるなんて、すごいですね
(森田さん)入社後3か月ほど外部研修があって、その成績みたいなものは社内共有されてたと思いますが、なぜ私がアサインされたのかはよくわかりません。当時いくつかふられた中の案件の一つがたまたま現在のProvii‼として成長したのだと思います。
淡々と語る森田さんは、現在ではクラウドインテグレーション部の開発チームを支えるプロジェクトリーダー。とはいえ、当時はピカピカの新卒ルーキーだったため、初めての開発には手厚いフォローが必要です。
フロンティア精神あふれる当時の開発チームマネージャーKさん、口は少々悪いが技術面ではまじめな先輩のYさん、そして頼れる部長の大野さん、と森田さんが質問できる相手は多く、サポート体制は整っていたそうです。
―先輩方からはどんなアドバイスがありましたか?
(森田さん)大きな修正に至るようなアドバイスは特になく、用意した選択肢の中で方向性を相談しながら決めていったり、APIの操作の仕方で詰まった時に一緒にエラーを確認してもらったりはしました。私自身があれこれと細かい部分が気になる性格なので、自ら質問しに行っていたことが多かったです。
―不安やプレッシャーはありませんでしたか?
(森田さん)あまりなかったかと思います。結構自由にやらせてもらっていました。
ねずみ色の名もなきデスクトップアプリの誕生
森田さんが手がけた開発当初のリソース管理ツールは、現在のProvii‼とは見た目も機能も全く異なるものでした。ねずみ色の昔ながらのWindowsデスクトップアプリといった様相で、初期設定後はGoogleグループの設定情報を取得する機能と、取得した設定情報に対して設定値の変更をする機能の2つのみ。
≪当時の管理画面≫
― 開発について教えてください
(森田さん)プログラミング言語は、当時も現在もクラウドインテグレーション部ではPythonが多かったですが、開発時の言語指定はなく、入社後の研修がJavaだったこともあってそのままJavaを使用してつくりました。そこにGoogle APIを使っての要素がちょっとプラスされたような内容でしたね。
開発にどれくらい時間を要したのかは覚えてませんが、研修後ほぼ初めての案件だったので、時間がかかったのか否か判断つかなかったですね。
― 製品名について教えてください
(森田さん)開発当初はこれといった名前はなく、機能そのままの「グループ設定ツール」と呼んでいたので、名前に特に思い入れはないですね。
当時は大々的に売り出すという感じでもなかったですし。現在のProvii‼ はまさに製品名という響きでいいと思います。
Provii‼ になってからの方が長いので、今となってはあれはもうProvii‼だなと思います。
― 嬉しかった思い出はありますか?
(森田さん)開発半ばで、画面にグループがずらーっと並んだ時は、実際に動くものが出来上がった喜びを一人でかみしめました。
― 苦労した点を教えてください
(森田さん)知識がない中で、ツール側のグループ設定とGoogle Workspace 側の画面設定との繋がりを調べるのはめっちゃ大変でした。Google Settingsは項目がこれだけいっぱいあるんですけど(下記図参照)、APIで設定を変えて、次にGoogle Workspace 側の画面を見てどういう値が設定されたかの属性をひとつひとつ確認する作業を繰り返し行って、130項目以上の表を作りました。
この資料作成で1週間くらい画面とにらめっこしてたと思います。本当に大変でした。ただ、この作業が1番勉強になったところでもありました。
≪当時のグループプロパティ設定項目資料≫
(コメンテーター郡司さん)これはAPIで取れる値だから、マニュアルだったりGoogle公式ヘルプ記事とかはないですよね?
(森田さん)はい、ないですね。
例えば、ツール側の設定値「ALL_IN_DOMAIN_CAN_JOIN」は、管理画面側の設定値4項目のうちのどれにあたるのかなどを、API設定してから画面を確認して、というように検証していました。
(コメンテーター郡司さん)やっぱりひとつひとつ検証しながらだったんですね!
(森田さん)まあ多分これだろう、と当たりは付けながらですけど。全部確認したはずです。
涙のプレゼン、セカンドステージへの旅立ち
クライアント向けのデスクトップアプリとして開発されたリソース管理ツールは、いよいよテスト段階へ。この時点ですでに、Googleグループのプロパティ値に関するセキュリティリスクを発見するなどの活躍を見せていました。しかし、実用化への道は容易ではなかったそうです。
(森田さん)検証については大野さんから「社内利用のGoogle Workspace に対してこのツールを使って設定してみるのはどうでしょう」と話があり、外部のお客様に提案する前に社内で機能説明などのプレゼンをしました。
OJTの一環としての開催でもありましたが、当時は発表が苦手だったので説明がうまくできず…。
厳しい社内評価を受けたものの、プレゼンからみえてきた弱みの改善、社内の検証環境での結合テストや運用テストを経たのち、当初ご依頼いただいたクライアントへリソース管理ツールは無事納品されました。
そして実はそのクライアント様、現在に至るまでの長きにわたりProvii‼をご愛顧いただいているのです!
当初の依頼であったGoogleグループの設定機能のみを搭載したツールが完成し、森田さんは別の案件へ。生みの親の手から離れた初号機のデスクトップアプリは、その後クラウドサービスとして進化していくのです。