「エネチェンジ」の開発現場のリアル─社会インフラを支えるエンジニアの挑戦
ENECHANGEでは「『エネルギーを選ぶ』を常識にする」ことを目指し、電力・ガスの切り替えプラットフォーム「エネチェンジ」を提供しています。
本記事では、そんな「エネチェンジ」の開発を担うエネチェンジ事業部でサーバーサイドエンジニアとして活躍するN.Hさん、M.Mさんのお二人にインタビューを実施しました!
「エネチェンジ」の開発チームのリアルや、やりがいについて語ってもらいました。
「エネチェンジ」のサービスページはこちらです。
「エネチェンジ」を運営するプラットフォーム事業について詳しくは下記解説記事もご覧ください。
プロフィール
N.H

大学院を卒業後、回路設計のハードウェアエンジニアとして従事。Webアプリ開発に興味を持ち、ソフトウェアエンジニアへ転向。前職でWebアプリ開発に携わったのち2019年2月にENECHANGEに入社し「エネチェンジ」や「エネチェンジ・マイエネルギー」の開発・運用に携わるサーバーサイドエンジニアとして活躍中。
M.M

新卒ではSIerで基幹システムの開発に携わったのち、データベースエンジニアへ。勉強会などでRubyに触れたことがきっかけでRuby on Rails(Rails)エンジニアへ転向し、2社を経験後、2019年9月にENECHANGEへ入社。サーバーサイドエンジニアとして「エネチェンジ」や「空室通電エネチェンジ」の開発・運用にて活躍中。
ENECHANGEを選んだ理由と現在の業務
──ENECHANGEに入社したきっかけはなんですか?
N:私は転職活動を始めた際に登録したWantedlyでENECHANGEを知りました。当時はRailsを使った自社サービスの事業会社を探していました。
ENECHANGEは初めてメッセージをもらったその日に面談、その翌日には次の面接、内定をいただいた翌週から入社と非常にテンポ良く進みました。当時はまだ社員数が40人程度とまだ小規模な組織でしたが、競合の少ないユニークなプロダクトを持ち、社会的意義のある事業を展開している点に魅力を感じ入社を決めました。
M:私は転職媒体でスカウトをもらってENECHANGEを知りました。スカウトを送ってくれたのがRubyコミュニティで見かけたことのある方だったので興味を持ちました。
エネルギー業界という将来性のある分野で、自分のスキルを活かせる環境だと感じたのが入社の決め手です。
──現在の業務内容と役割を教えてください。
N:現在はサーバーサイドエンジニアとして、「エネチェンジ」の追加機能開発や運用業務を担当しています。
また実際の電力使用量に基づき、より自分に合った料金プランが分かったり、毎月の電気代の目安を超える際にアラートを出す「エネチェンジ・マイエネルギー」の機能開発にも携わっています。
M:私も同じくサーバーサイドエンジニアとして、「エネチェンジ」のダッシュボードの開発・運用や、新規サービス「空室通電エネチェンジ」の開発を担当しています。
特に新規サービス「空室通電エネチェンジ」では営業チームと連携しながら開発を進め、技術とビジネスの両面を考慮した設計を行うなど中心となってリードしました。
(エネチェンジ・マイエネルギーの開発秘話はこちらからもご覧いただけます。)
エネチェンジの開発の進め方
──「エネチェンジ」の開発の進め方を教えてください。
N:基本的には営業やカスタマーサクセスのチームの要望を踏まえて、優先順位を調整しながらリスト上で開発項目を整理しています。優先度の高いものからタスクを割り振り、2週間スプリントで開発を進めています。
技術的な観点での提案等はエンジニアからも出すことができ、基本的にポジティブに受け入れてもらえる環境です。より良いプロダクトを作るためにチームを超えて一体となって取り組んでいます。
M:私が新規開発を担当した「空室通電エネチェンジ」の開発でも、営業チームと密にコミュニケーションを取りながら開発を進めました。最初はざっくりした構想だったものを、エンジニアの視点で整理し、実装可能な形に落とし込んでいきました。そういった柔軟な開発スタイルが取れるのは、エネチェンジならではだと思います。

開発における工夫と継続的な改善
──アプリを構築する上で工夫したことはありますか?
M:バックエンドはRailsで開発していますが、特にRailsのコードは複雑になりやすいので、開発時には相互レビューをしながら、将来の自分が困らない設計を意識するようにしています。
例えば「空室通電エネチェンジ」では、不動産テックのAPIを運用し、各不動産会社と連携して物件情報の取得や通電依頼、通電の廃止依頼ができる仕組みを提供しています。
この中で、例えば通電依頼の日付設定について、APIで取得した日付データをそのまま使うケースと、特定の日付の計算やルールを考慮しなければならないケースがありました。
そのため物件情報や通電依頼の更新は変わらないので共通として、日付設定についてはAPIデータを使う処理と特殊な日付計算の処理を柔軟に切り替えられるようにしました。
こうすることで、新しい不動産会社が加わったり、日付計算の仕様が変更になる際にも柔軟に対応できるようになっています。
N:取り組みとして印象的だったのは料金シミュレーション機能のパフォーマンス改善です。
シミュレーションの際は郵便番号、世帯人数、生活時間帯の情報などを入れていただきます。そういった各ユーザーごとに変わる部分もありますが、料金表などは頻繁には変わりません。そういった頻繁に変わらないものをキャッシュすることで、データベースへの負荷を減らす工夫をしています。
また、以前はリクエスト発生時に複数のソースからデータを取得、加工や計算をしていましたが、計算処理を効率化するため、料金計算で使用しやすい形式にデータを前処理したり、過去の電力使用量の生データを時系列や特定の条件で検索しやすいように加工・集約したりしています。
また処理負荷が高いがリアルタイム性を必要としない計算を非同期のバッチ処理として実行し結果を保存しておくことで、料金シミュレーションの診断にかかる処理時間を半分程度に削減しました。
──エネチェンジの開発で技術的に難しかったことはありますか?
N:特に難しかったのは、料金計算のパターンの多様性への対応ですね。
電気料金は基本料金や燃料調整費、容量拠出などさまざまな要素から構成されており、事業者ごとにそれぞれ導出方法が異なるので、柔軟な設計をする必要があります。
また各社それぞれの割引キャンペーンがあるのでその適応条件や、アンペア数などの契約内容で変動する条件なども考慮するようにしています。
そのため各料金計算を独立したコンポーネントとして切り出し、組み合わせる設計にすることで、新しい料金項目や、計算ロジックの変更に柔軟に対応できる設計にしました。
また共通ロジックの適切な抽象化はしつつ、例外的な処理や特定プランの固有の条件は個別の機能として実装し分離するなど、過度な一般化を避けることでシンプルで保守性の高い設計を心がけました。
M:別のチームが管理している電気料金プランのデータを取り込む処理についても特徴的で、苦労しました。
今後の話になりますが、その料金プランデータをエンジニアが介さずに直接反映できるような改善にも取り組んでいきたいと考えています。これができると開発チームの負担を減らしながらスピーディーなサービス提供が可能になると考えています。
──負債の返済はどのようにしていますか?
N:やはり長く運用しているサービスで一定の負債は発生しますので、日々の継続的な改善が大切だと考えています。例えば小さな負債は既存機能の改善の際に一緒に返済するなど、気づいた時に都度取り組んでいます。
M:大きなリファクタリングが必要だと思ったらMTGで提案し、段階的に進めるようにしています。もちろん優先度の調整は必要ですが、こうした提案は受け入れてもらえることが多いです。
ENECHANGEの開発組織の魅力
──ENECHANGEでチャレンジしたことはありますか?
N:今まさにですが、技術領域を広げています。
最近インフラ周りに関して、全社横断で管理していたCTO室から事業部へ権限移譲が進んでおり、インフラに触れる機会が増えています。専門性を持つCTO室のサポートを受けながら品質は担保しつつ新たな領域に挑戦できるので楽しいです。
M:ブラックボックスになってしまった機能を触りながら、改善プロセスの整理や資料への落とし込みを進める中で、色々なコードに触れられたのは勉強になりました。
また開発に携わった空室通電エネチェンジのサービス提供が開始して、大きい会社に導入していただけた時には、その会社とのやりとりも担うなど、自社サービスですが外部とのコミュニケーションをとる機会があったのはチャレンジングでした。
──ENECHANGEで開発に携わる魅力はなんだと思いますか?
N:やはり社会インフラに貢献できる事業に携われることですね。電気やガスといったライフラインに関わるサービスなので、自分の開発した機能が多くのユーザーに影響を与えるのを実感できます。
また自社サービスなので提案がしやすく、受け入れられやすいカルチャーもやりがいを感じます。ざっくりした要望から仕様を考えたりすることもあるので、言われた通りに開発するだけでない面白みもあります。
働き方の面ではフルリモートで働かせてもらっていて、チームにもフルリモートメンバーがいるので疎外感もなく働きやすい環境だと感じています。
M:そうですね。私もフルリモートなので働き方については同じ印象です。
また裁量を持って業務できる点も魅力に感じています。
ビジネスサイドとコミュニケーションをとる機会が多いですが、エンジニアの意見を吸収しながら優先順位やスケジュールの調整をしてくれるなど、開発への理解があってありがたいです。
ENECHANGEで新しい挑戦をしたいエンジニアへ
ENECHANGEでは、エネルギー業界のDXを推進し、社会にインパクトを与える開発に携わることができます。
技術を通じて社会課題を解決したいエンジニアにとって、挑戦しがいのある環境です。
また、エンジニアリングだけでなく、ビジネス視点を持ち、プロダクト開発の意思決定に関わる機会も豊富にあります。ご自身のスキルを活かし、成長できる環境が整っています。
興味を持っていただけた方は、ぜひカジュアル面談でお話ししましょう!