見出し画像

【Meetupレポ】Nature Bath vol.11 開発メンバーが語る!Natureスマート電気事業の開発秘話

What's a Nature Bath ?
「Nature Bath」とは、各回のテーマについて語り合うMeetupです。森林浴(Forest Bath)からとった「Nature Bath」はMeetupを通して、Natureについても少しでも理解を深めていただけるようにという思いで命名しました。

スマートリモコンから事業をスタートした弊社ですが、2021年3月に電力小売サービス「Natureスマート電気(https://energy.nature.global)」の提供を開始し、ホームオートメーションからデジタル電力革命への一歩を踏み出しました。今回のNature Bathでは、Natureスマート電気の開発秘話というテーマで「NatureってIoT屋さんではなかったの!?」「電力事業の開発って面白いの!?」といった疑問にお答えしました。

Natureと電気事業とテクノロジー

VP of Engineering @songmu
Nature株式会社 VPoE。大学で中国語と機械翻訳を学び、中国でのITベンチャーの立ち上げ、語学学校の営業兼システム担当、SIer、ソシャゲ開発のリードエンジニア、エンジニアリングマネージャー、SaaSのプロダクトマネージャーなどの紆余曲折を経て、2019年より現職。 長期運用に耐えうるインフラを意識した設計・開発を得意としており、ISUCONに3度優勝している。 OSS活動が趣味で200を超えるリポジトリをGitHub上で公開している。著書に「みんなのGo言語」(技術評論社・共著)等

松木:VPoEの松木です。Natureスマート電気の開発では主に決済周りの処理を担当しました。僕からは「Natureと電気事業とテクノロジー」というテーマでお話しさせていただきます。

- Natureとは? -
弊社は「自然との共生をテクノロジーでドライブする」(2021年11月より「自然との共生をドライブする」に変更)というミッションを掲げて事業を展開するベンチャー企業です。スマートリモコンの「Nature Remo」、HEMSといわれる家庭のエネルギーをマネジメントするIoTデバイスの「Nature RemoE」、そしてこの3月に新しくスタートした電気の小売事業「Nature スマート電気」を行っています。

スクリーンショット 2021-07-08 16.46.44

電力業界ではパラダイムシフトが起こっていて、旧電力会社が一手に発電・送電・配電を垂直的に統合して電力サービスを提供していたところから、徐々に分散されてきています。つまり「中央集権から自律分散へ」ということで、モノリシックなシステムの限界がきているというどこかで聞いたようなことが電力の業界でも起こっているんですね。弊社はこの電力業界のパラダイムシフトに対するサービスを提供したいと考えています。

- 「同時同量の宿命」電力事業の難しさ。 -
電気は貯めておくことが難しいという性質があります。したがって、需要家と呼ばれる僕たち電気利用者が電気を使う量と、その時に発電している量を一致させる必要があります。「同時同量の宿命」です。

内部的には需要に合わせた電気の市場的な価格変動も発生していますが、これまでは発電側が需要側に頑張って合わせるという構造になっていたため、僕たち電気利用者側にはあまり意識されていませんでした。

しかし、この構造のために問題が起こっています。例えば、真夏の一番暑い時期に皆さんエアコンを使うので、その時期に年間需要のピークが発生しますね。そうするとそのピークに合わせて発電しないといけないのでそのためにしか稼働しない発電所が存在します。その他にも、急な需要変動への対応が難しいという課題があります。急な需要変動があった場合に合わせられないと、2018年に地震の影響で北海道であったように広い範囲で一斉ブラックアウトが起きてしまうのです。

発電側だけが頑張って調整することへの限界がきているために、分散的な調整力の必要性が高まっています。例えば、家庭内の機器の群制御。エアコン、蓄電池、電気自動車、給湯器の分散的コントロールが調整力に貢献すると考えられています。

- 私たちが実現したいこと -

スクリーンショット 2021-07-08 16.48.24

僕たちはNature Remoという製品からスタートしました。 スマートフォンアプリやスマートスピーカーから家電を操作できるスマートリモコンです。1番最初に販売されたNature Remo のパッケージには「スマートエアコンで快適な生活を」と書いてあるんですね。

スクリーンショット 2021-07-08 16.49.11

Nature Remo はもともとエアコンがメインターゲットで、ピークシフトや需給調整のための調整力として活用するということを最終的な狙いとして作られたプロダクトでした。ただ便利でないとお客様に振り向いてもらえません。そういった合理性も大事な部分で「便利でもあってエコでもある」気持ちの良い生活の実現が僕たちの提案です。

スクリーンショット 2021-07-08 16.49.39

2020年からNature Remo Eも販売開始しました。家の電力状況のモニタリングや太陽光や蓄電池の制御のできるデバイスです。EVのバッテリー制御も現在実装中。このNature Remo Eも家庭の電力量の最適化を図るとともに調整力としての可能性を期待して作られたプロダクトです。

スクリーンショット 2021-07-08 16.50.20

そして、この3月にリリースしたのがNatureスマート電気です。こちらはログイン後の画面になりますが、Nature初めての SPAアプリです。

スクリーンショット 2021-07-08 16.50.47

小売電力事業に参入した理由は、将来的に電気の調整をするにあたり電気を売買できるようになる必要があったためです。プランはスマート、フラット、ハイブリッドの3つを用意していまして、スマートはいわゆる価格変動プラン。需要が逼迫している時は高くあまり使っていない時は安いというようなプランになります。電気を賢く使っていただくために、インセンティブプログラムも今後展開を考えていまして、将来的には太陽光パネルとバンドルした電力プランの提供、PPAやBehind The Meter といわれるような事業を構想しています。

僕はもともと電力畑ではないのですが、通信回線の自由化にすごく似ている部分があるなと感じています。通信回線自体は NTT が持っていますが、ISP にはすごく選択肢があるところがありますよね。小売電気事業者も ISP みたいな存在でインフラを保有しないで電気を売っています。最近だと配電網ライセンスという、電線を一般事業者が運用できるようにする話も始まっていますが、これもダークファイバーに似た話で面白いです。電電公社民営化以降の流れがかなり何年か遅れで電力で起こっているのかなと感じられるところが興味深いですね。

今後は再生可能エネルギーの普及を推進したいと考えていますが、マクロなトレンドとしても太陽光のコストが下がり、EVの普及が進んでいるという動きがあります。EVはガソリンを燃やさないクリーンなエネルギーで動く自動車と言うイメージが強く、実際にその通りですが、巨大なバッテリーを積んでいることと、EV側から家に電気を給電することができるのもポイントなんです。現在は一番上のモデルであれば 100kwhぐらいのバッテリーを積んでいて、これは満充電の状態で一般家庭であれば1週間ぐらいは持たせることができる量です。そういう意味でもEVは期待されている機器ですね。

- 今後の技術的な展望 -

スクリーンショット 2021-07-08 16.51.35

今後はNature Remo自体で利用状況の可視化や家電・機器の自動制御に取り組みたいと考えています。また、電力量予測による電力調達の効率化、最終的には電力売買プラットフォームづくりも行っていきます。

インフラ面では、社会インフラ的な存在になっている中で、より堅牢に安定した透明性の高いサービスを目指していきたいと思ってます。そしてそのノウハウを電気というリアルインフラな世界でも通用させたいです。

バックエンドはGoで書いていますが、様々なデータをお客様に分かりやすく可視化することに取り組んでいきたいですね。また、100万台規模の群制御、ヤシマ作戦みたいなことが実現できるかもしれない面白さがあります。APIを拡充してパートナーの企業さんにも開発、組み込んだりしやすくしたいです。

データエンジニアリングおよび機械学習方面では、すでに僕たちのシステムに集まっているセンサーデータ、電力データの活用をしたいです。また、よりわかりやすく使いやすくするために、閾値ベースでの家電の自動操作機能から脱却したいですね。

フロントエンドに関しては、お客様が触る大事な箇所なので弊社のデザイナーと協議しながら良いUI/UX を作っていってもらいたい。また、優位性でもある継続的インテグレーションは引き続き行いたいです。今後は電気事業の新機能追加やデザインリニューアルも含めたアップデートを検討してます。

ファームウェアに関しては、変化し続けていることが安定している時代になってきているので、ファームウェアも変化・アジリティをあげていくチャレンジを強めたいです。他にはIoT機器のオブザーバビリティの向上や、将来的にはコントロールをもっとエッジに寄せていく試みでしょうか。ただ機器のリソースがすごく貧弱という課題もあるので、いかに賢くできるかはチャレンジングなところですね。

最後にハードウェア。ソフトウェア同様に高速にインテレーションを回せるようにしていく必要があり、3Dプリンターがオフィスにあるのはそのためです。一方で1回作ったら後戻りできない部分が多いので、慎重に堅牢になる必要性もありますね。今はハードウェアエンジニア2名しかいませんが、ラインをふやして高頻度で新製品だして行けるようにしたいです。もしかしたら今みなさんが想像もしてないようなハードウエアの可能性もあり、きっと面白い環境になると思います。

開発メンバーが語る!Natureスマート電気事業の開発秘話

Software Engineer @bokken_
大学院卒業後、株式会社リコーに入社。ビデオ会議システムの周辺システムのクラウド開発に従事。その後、社内のビジネスアイデアコンテストで大賞を受賞し新組織を立ち上げ、バックエンドからフロントエンドまでを幅広く担当。2020年9月からソフトウェアエンジニアとしてNatureに参画。

-Natureスマート電気開発の始まり-

スクリーンショット 2021-07-08 16.56.56

Nature スマート電気は、2020年8月8日代表塩出が1件のエントリーを Kibela に投稿したことからスタートしました。これが小売り電気事業参入の全ての始まりで、私は「小売り電気やるぞ」ということを全然知らない状態で9月にNatureに入社しました。

スクリーンショット 2021-07-08 16.57.55

ですので、まさしくこちらの本のタイトルの通り、「うちの会社電気売るんだってよ」状態で電気の開発について知りました・・・(笑)。この本は知識ゼロの状態から「小売電気事業とは何か?」「どうやって進めていくか?」が知れる本です。ネタのように扱ってしまいましたが、 Nature スマート電気開発メンバー全員読んだバイブルです。

-開発タイムライン-

スクリーンショット 2021-07-08 16.59.02

8月に小売り電気事業の参入が社内で公知の事実になり、9月からBizチームが市場調査を実施。この段階では開発タスクは具体的ではなく、電力小売り事業に関するドメインエキスパートも不在の状態で走り始めています。先ほどのバイブル本によると、小売り電気事業の開始までの目安はおよそ1年間。しかも、システム開発パッケージ製品を選択することを想定して必要な期間を1年としていましたが、Natureでは開発パッケージを使わずに自社開発をしました。この段階でリリースまで残り7ヶ月という状態です。パッケージをカスタマイズするよりもチャレンジングな開発を7ヶ月でする必要があったわけです。ベンチャーのヤバさを突きつけられたような体験でしたね(笑)。

スクリーンショット 2021-07-08 17.00.00

そんなヤバい状況が緩和された10月。ドメインエキスパートのメンバーが参画し不明瞭だったタスクがだんだん明るみになったことで「お、できるんじゃないかな」という雰囲気が漂い始めてきました。開発メンバーも増えたので湯河原にあるラボで合宿をしてタスクの洗い出しを行います。

この時 Githabのissueで個々人でタスクを管理していたところから、ZenHab を本格的に運用し始めてカンバンでプロジェクト進行することにしました。電気事業は新規事業開発という点に加えて、プロジェクト進行方法を模索するというところでもチャレンジングでしたね。

- Natureスマート電気の開発 -
実際にした開発を少しご紹介させていただきます。今回 Nature初のフロントエンドを含む、シングルページアプリケーションを開発しました。システム全体の構成は、
① 電気の使用量を取得するバッチや課金請求のバッチ、小売電気会社の切替のバッチ
② フロントエンドのための API
③ フロントエンド
となっていて、①、②を今日の登壇者3名で開発しました。

まず、バッチ類は Amazon ECS のSchduled Tasks で動いています。その中でも特に苦労したのは、小売電気事業者の切り替えの処理ですね。めちゃくちゃ難しかったです。古のSOAPのwith Attachmentを使う必要がありましたがそれが使えるいい感じのクライアントがなかったり、仕様が大量のPDFとExcelで存在していてドメイン知識がないと読み解くことが難しいなど、とても苦戦しました。テスト含めて1万行ほどになりますが、今のところ大きなバグもなくユーザーさんにどんどん Nature スマート電気使っていただいているので、開発をしたそうさんは本当にすごいなと思ってます。

フロントエンドは株式会社アートマンさんに協力をお願いし、開発のワークフローを良い感じに整えていただいています。具体的には API の仕様をSwaggerで定義するようにしていて、この仕様をもとにフロント側ではTypeScriptのクライアントの型を生成してます。フロントエンド側を型でしばれるので意図しないリクエストを送りつけることもなく、開発中のやり取りの祖語がほとんどありませんでした。おかげですごくスムーズに開発ができました。API Sprout や apinterstellar を使って開発中のレスポンスを任意に変えて試しやすいような仕組みも整えてあります。その他、依存パッケージの更新に関しても Renovate を利用して最新パッケージに追従するようになってます。課題としては、現状はテストが少ないので、パッケージの更新も慎重にやる必要があることですね。

Natureスマート電気の配信にはAWSのAmplify を使っています。Amplify は簡単に Web アプリケーションを構築できるサービスで、数クリックでドメインの設定や、CI/CD、別環境の立ち上げなどができてとても感動しました。

スクリーンショット 2021-07-08 17.01.00

このように11月から2月までは、紹介させていただいたような開発をて、1月に社内で初の電力の切り替えが成功。とても感動しましたね。2月にはフロントエンドの機能も開発が完了し、無事3月1日にNature スマート電気がリリースとなりました。

- 電気事業の難しさ -

スクリーンショット 2021-07-08 17.03.26

やはり馴染みのないドメインでしたので知識の獲得がとても大変でした。現メンバーも数ヶ月かけてドメイン知識つけたので、新規メンバーが参入したときにキャッチアップは大変だと思います。社内勉強会を行ったりドキュメントは残っていますが、まだ改善できると感じています。
また、電気関係のAPI 群の仕様やインターフェースが複雑で、PDFやExcelベースである大量の資料を理解して成果物に落とし込むのが非常にハードな仕事でしたね。一定、ぬくもりのあるオペレーションが必要なところもあるので、完全システム化は難しいとも感じています。

- 電気事業の面白さ -

スクリーンショット 2021-07-08 17.04.55

Nature Remo シリーズと組み合わせることで他社にないサービスを提供できるところが面白いです。ユーザーさんが手間を払うことなく、電気料金を下げたり、エコな活動ができることは、Nature スマート電気だからこそできることです。先日 Nature スマートエコモードというエアコンを電気料金が高いときに自動調整する機能をリリースしましたが、手間なくエコにできるようにしていけるのが良いところですね。

また、昨今電気料金の高騰にみられるように需給調整の課題を始め、これらのエネルギー問題に真っ向から挑戦できる面白さがあります。世界規模の問題の解決に繋がっていてやりがいも感じますね。ただ、まだまだ足りていないこと、開発すること、課題はたくさんありますので、チャレンジングで面白い環境です。

スクリーンショット 2021-07-08 17.05.36

最初は無謀に見えるところから始まった Nature スマート電気。色々な方々とともに無事にリリースできました。システムに関してはできるだけ最新のものを取り入れる方針で、陳腐化させず継続的に機能追加できるような仕組化しました。まだまだ Remo 含めてサービス・機能の開発・アップデートというのが必要ですが、地球規模の問題に真っ向から挑戦するサービス。とても面白い挑戦になっていると思います。

Talk session

ここからは、ソフトウェアエンジニアsoh335のモデレートでご参加いただいた皆様からの疑問や質問にお答えするトークセッション行いましたので、その一部をご紹介します。

Q.今までのNatureと違う開発体験でしたか?
松木:かっちりと物を作る必要があるので調べてもらうことが多く、Biz チームとのコミュニケーションが多く発生しましたね。ZenHubを活用しみんなの課題をいっぺんに見る会を多めに設けることで上手く進めることができたと思います。

Q.大変だったことについて教えてください
小河:スピード感です。かなり速かったと個人的に思っています。テストがすごいタイトで制限された環境しかなく、それを北原さんが爆速で通していましたね。

松木:最初に市場連動のプランをリリースするためにシステムをスクラッチで作ることになりましたが、それをやる意義や、他社との差別化がどこかなどをみんなに理解してもらったのがよかったですね。理解促進のために代表の塩出にプレゼンをしてもらったことで、仕様で曖昧なところがあっても、きっとこういうプロダクトだからこうに違いないといった各自の判断で動けるところがありました。それにより頑張って間に合わせられられた側面もあったと感じています。

Q.難しさはどこにありますか?
小河:デバイスと一緒に組み合わせて電気のサービスを提供するのは前例のないサービスのため、サービス設計を始め全部1から行う必要があるところです。楽しさ半分、難しさ半分で、ひーひー言いながら開発を進めています。

松木:そうですね。最近はスマートエコモードをリリースしましたが、これからも僕たちの独自性のある機能を作っていく必要があるので、より難しいチャレンジングな課題が待っているとも感じます。

あとはシンプルに電力自体が難しいですね。学べば学ぶほどいかにこれまで意識せずに使えてこれてたかと感じましたし、既存の仕組みもやっぱりすごかった。でも変わっていかないといけないし、そこにどう影響を及ぼしていくのか。リアルワールドに影響を及ぼせるところが面白いなって思っています。

北原:僕らはGoを使っていますが、GoとXMLの組み合わせは常にいいものではなくて。そこでSOAPを扱う必要があり、新しいライブラリを作るなどの苦労はありました。あと普段見かけない仕様書をたくさん読まなければいけないみたいな珍しい体験もありました。

また、小河さんや松木さんが話した通り、「Nature Remo」「Nature Remo E」「Natureスマート電気」を組み合わせてサービスや新しい価値を作っていくことが僕たちのベースラインなので、これからのチャレンジングなところですね。

Q.最後に....
Natureではまだまだやりたいことがありますので一緒にチャレンジしてくれるエンジニアを募集しています。

スクリーンショット 2021-07-08 17.07.51

エンジニアはソフトウェアエンジニア7名、ハードウェア2名です。デバイスの話はあまりできませんでしたが、Natureではご覧の通り様々な領域の技術を扱っていて、各方面で採用をしています。最近はRustのエキスパートの人が入社したりですとか....どんどん改善したり、新しいサービス開発を行っていきたいので、ご応募もお待ちしています!

採用ポジション一覧

いいなと思ったら応援しよう!