「料金シミュレーション」「サービス申込」「CRM」(SaaS)の開発・保守

OVERVIEW

事業者がお客様に提供する「商品の申込みサービス」「顧客管理システム」「料金シミュレーションシステム」の開発と保守を行いました。

### 事業者がお客様に提供するサービス(SaaS)の開発・保守

#### 概要

- EMAPサービス

  - https://enechange.co.jp/service/

    - 「料金シミュレーション」(お客様用)

    - 「サービス申し込みシステム」(お客様用)

    - 「顧客管理システム」(事業者用)

  - 提供先の例

    - 株式会社ヒナタオエナジー(東京ガス子会社)

      - https://hinatao.enechange.jp/

    - その他、複数の事業者の新規提供と保守を継続的に行っております

#### チーム構成

- ビジネス担当2名、開発担当3名(新規提供開発時)

- ビジネス担当1名、開発担当1名(保守時)

#### 課題

「EMAPサービス」は複数のエネルギー事業者に提供するサービスです。提供先に応じて特定の機能の追加や無効化を行う必要があります。

すでに実装済みの事業者用の動作を壊すことなく、機能の追加や無効化をスムーズに行うことが課題でした。

#### 課題の解決方法

既存のコードを読み込み、同様の流れで実装することに注力しました。

その意図が不明である場合や、適切な書き方が分からない場合などは先輩の方にお尋ねしました。

また、既存のコードを壊さないという観点からはテストを充実させることにも注力しました。

#### 結果と考察

事業部内で最も巨大なコードベースのサービスであったため、実装には苦労をしましたが、前述の解決方法に従い周囲の方の助けも借りながら予定通りにリリースすることができました。事業者の日々の業務を効率化し、想定していた契約数をクリアすることができています。

既存コードの改修にあたっては、コードや業務フローの背景にある意図を理解する必要があります。そのため、新しくジョインしたばかりのときに一人で悩むことはあまり建設的ではなく、積極的に周囲の方に質問を行ったことが結果につながったと考えています。

- 参考

  - プレスリリース (PDF)

    - https://www.hinatao.co.jp/news/pdf/200310.pdf

#### 用いたツールや技術

- Ruby on Rails

- Vue.js・Vuex

  - ERB にコンポーネントを埋め込む形で利用しています

- PostgreSQL

- AWS Elastic Beanstalk

  - 上記を用いる中で得た知見を社内ブログに書きました

    - AWS Elastic Beanstalk にサブモジュール込みでデプロイする際は、CLI実行ユーザにサブモジュールにアクセスできる権限が必要になる

      - https://tech.enechange.co.jp/entry/2020/04/09/084500

    - AWS Elastic Beanstalk で使用される Ruby のバージョンを指定する方法と、それぞれの方法の特徴について

      - https://tech.enechange.co.jp/entry/2020/03/28/084500

- Bugsnag

- RubyGems

  - Sorcery

  - PaperTrail