こんにちは、はじめまして。Contents Creation Division Product Unit 1 (以下:SaaS事業部)のエンジニアの松島です。
本記事では、SaaS事業部の主軸サービスであるeGift Systemのシステム運用方法や、エンハンスの進め方をご紹介します。
チームについて
本題に入る前に、SaaS事業部のチーム構成についてご紹介します。
- マネージャー: 1名
- ディレクター: 3名
- うち、カスタマーサポート兼務: 2名
- エンジニア: 7名
- うち、リードエンジニア: 2名
※ 2021年4月15日現在
SaaS 事業部が抱えているシステムについて
SaaS 事業部では、下記の3システムを開発・運用しています。
- eGift System
- eStamp System
- チケットコード管理 System
eGift Systemは、eギフトの生成・販売・管理を一貫して行えるサービスです。この eGift System の管理画面から、販売サイトと商品を作成し、eギフトを発行することができます。 他にも、以下の記事では eStamp というスタンプカードを電子化するサービスについてご紹介しています。
上記の3サービスとは別に、eGift System をベースとした大規模キャンペーンや、海外用にカスタマイズしたシステムを保守・運用しています。 例えば、マレーシアで展開している eGift System や Go To トラベルキャンペーンの電子クーポンなどです。
このようにSaaS 事業部では、お客様のニーズにあわせた多種多様なサービスを開発しています。
eGift System の運用
先に紹介しました通り、eGift System とは、eギフトの生成・販売・管理を一貫して行えるサービスです。 簡単に説明しますと、CMS(Contents Management System)をお客様に提供し、商品登録やチケットに関する情報を設定するとeGift(チケット)が発行できるシステムです。
弊社が発行しているeGiftの基幹システムと思っていただければ、なんとなくシステムの規模感が分かるのではないでしょうか。
システム運用と言っても色々ありますが、エンジニアは主に以下の内容を実施しています。
- Sentryを用いたシステムエラーの監視
- AWSのアラートを用いたシステムのキャパシティ管理
- 業務運用で発生した課題の解決
- ブランド様対応に伴う、新規機能の実現方法検討/開発(新たな消し込み機能の開発など※)
上記運用業務から必要に応じて開発を行っていくのが、主な流れとなります。
それでは実際にSaaS事業部で、どのような流れでeGift System の開発を行っているかをご説明します。
※新たな消し込み機能の開発については、こちらの記事で詳しくご紹介しています!
R&D から二次元コードリーダー消込を eGift System にリリースした話
タスクのアサイン
まずは、発生したタスクに応じてメンバーをアサインします。
eGift Systemの開発には、SaaS事業部に所属しているエンジニア全員が少なからず関わっています。
大きめのタスク(業務運用で発生した課題の解決
や ブランド様対応に伴う、新規機能の実現方法検討/開発
など)は、マネージャーがメンバーのリソース状況を考慮して、アサインします。
技術選定や技術的な解決方法などについては、エンジニアも上流工程から参加することができます。
より良い仕様、より良いプロダクトにするためにエンジニア視点から提案することが可能です。
小さめのタスク(Sentryを用いたシステムエラーの監視
や AWSのアラートを用いたシステムのキャパシティ管理
から発覚したバグフィックス、リファクタリングなど)は、随時気づいたメンバーが修正しています。
これ以外にも、エンジニアの提案ベースでの機能追加や自動化・効率化など、自らタスクをアサインして開発が進むこともあります。
また、日々サービスを運用していく中で、突発的にタスクが発生する場合もあります。 その場合には、ベテラン・新入社員など関係なくリソースを見て割り当てられます。 ほかにも、毎月発生する運用業務をリードエンジニアが行う場合もあり、担当する業務を制限しないフラットなチームです。
開発フロー
次に開発フローをご紹介します。
先述したとおりeGift System は、弊社の基幹システムのようなものですので、内部統制に則った承認プロセスであるIT統制の対象となっています。 健全なシステム運用のために複数の承認を得る必要があり、リリースに至るまでには時間がかかります。 具体的なリリースまでのフローは、以下の通りです。
- 開発
- PullRequest 作成
- リードエンジニアを除く、メンバーの1人以上によるレビュー・承認
- リードエンジニアによるレビュー・承認
- ステージング環境での検証・承認
- リリース
この手順は、IT統制上大きな変更はできませんが、メンバーの作業負荷を軽減するために随時相談しながら改善しています。
最近ではチーム内で検討した結果、3
が追加されました。
3
を追加することにより、リードエンジニアのレビュー工数が低減されました。
さらに副次効果として、メンバーがコードレビューをすることで、チーム全体のスキルアップをはかる狙いもあります。
その他にもSlackのワークフローを導入するなど、IT統制上で必要な作業を効率化・自動化しています。
このように少し億劫な承認フローになっていますが、メンバーが自主的にシステムの改善点を見つけ対応しているため、ほぼ毎日リリースが行われています。
おわりに
先ほど「ほぼ毎日リリースが行われている」と書きましたが、言い換えれば、eGift System には改善すべき点がたくさんあるということでもあります。 また、おかげさまで多くのブランド様に eGift System を導入していただいているため、各ブランド様の要望に応えつつ、他のブランド様でも使える汎用的な機能の開発が求められています。
今後もより多種多様な eGift を生成し、eGift の文化を広げていくために、新たな機能の開発やシステムの改善に取り組みたいと思っています。 そのためにSaaS事業部では、同じ目標に向かって一緒に働けるメンバーを募集しています。
興味を持ってくれた方はこちらからご応募ください!お待ちしております!