見出し画像

東京ガス内製開発チームの技術スタックと開発環境【2022年版】

はじめまして!
東京ガスのCX推進部デジタルマーケティンググループでテックリードをしております中島です。東京ガスの内製化を推進すべく今年の5月に東京ガスにJOINしました。

内製開発チームは、その名の通り内製開発を進めるチームであるため、「自らが手を動かして開発を行うこと」が求められています。そのため、開発手法や開発環境、利用する技術なども内製開発チーム独自のものを採用しています。今回は内製開発のチームがどのような環境と技術スタックで開発を行っているのかを一部ご紹介したいと思います。

技術スタック


内製開発はまだ始まったばかりのため、今後利用する技術は増えていくと思いますが、現時点で利用してる技術についてご紹介したいと思います。

技術スタック

フロントエンド

まずReactとVueの選択においてReactを選択しました。肌感としてReactが優勢であると感じていたことや、自分も含めてReactの経験者のほうが多かったことが理由です。それに加えて、フロントエンド開発におけるライブラリ選定や環境整備などを必要最低限にしたく、Next.jsを利用して開発を行うことにしました。

BFF

現在のチームの課題としては内製開発を始めたばかりであり、エンジニアを十分に確保できていません。そのため、開発言語を共通化し、エンジニアがフルスタックに動ける状況を作るため、フロントエンドに合わせてバックエンドもTypeScriptを利用することにしました。

フレームワークとしてはNestJSを採用しました。採用を決めた理由としては、実装方法がある程度フレームワークによって決められており、人によって実装の仕方が異なってしまい、構成がぐちゃぐちゃになることを抑制できると考えたことが理由の一つです。また、ドキュメントも英語ではあるもののしっかりと整備されており、大きなプロダクトを持つ企業がすでに採用も観測されたことが後押しとなりました。

実際に使ってみて、NestJSを採用して良かったと感じているのですが、その内容についてはまた別のnoteで書きたいと思います。

インフラ

現在の開発ではインフラはAzureを利用しています。この点に関しては、積極的にAzureの採用を決めたわけではなく、東京ガスグループ全体でAzureが広く使われており環境も整備されていたため、直近で内製開発を推進していく上ではAzureを利用することが価値を出す上で最短であると判断しました。

一方で、グループ内でもAWSの利用環境なども整備・普及活動が進められており、内製開発チームでのAWS利用も検討していきたいと考えています。私自身もAWSユーザであり、内製開発チームには元AWSのSAが参画していることもあり、AWSの有識者がチーム内に多いということもあります。

開発環境


開発環境も整備中ですが、どのような環境で開発をおこなっているのかご紹介したいと思います。

開発環境

開発端末

各エンジニアが希望する端末を支給して開発を行っています。もちろんMacも利用可能ですし、Windows端末を希望することも可能です。開発のスペックは生産性に直結すると考えていますので、エンジニアにはメモリも32GB以上のものを支給しています。

ツールについて

開発に必要なツールはプロダクトオーナーと相談しながら、導入を進めています。コード管理、ドキュメント、デザインなども比較的モダンなツールが導入されています。上記の表の中で、あまり目にしないツールはLinearではないでしょうか?

Linearというツールはご参画いただいたフリーランスのエンジニアの方からご紹介いただいたツールです。私も今までの会社ではZenhubやJiraを利用することが多かったのですが、それらのツールに比べて軽量かつシンプルでありながらも、アジャイル開発に必要な機能は備わっており、非常に直感的で使いやすいツールです。こういったツールも積極的に導入していける環境です(非常に良いツールなので詳細は別のnoteで)。

開発プロセス


開発プロセスは1スプリントを2週間としたスクラムをベースにしたものを採用して進めています。しかしながら、東京ガス自体が非常に大きな会社であり、内製開発チーム以外のチームと連携して開発を進める関係上、どうしてもスクラムをやや崩したものになってしまうというのが正直なところです。このような大きな会社でその点をどのように進めていくのがベストなのかというところは、今まさに模索しているところです。

さいごに


技術スタックや開発環境をご紹介しましたが、いかがでしたでしょうか?内製開発チームはDX推進にはエンジニアやデザイナーの力が重要だと考えており、エンジニアやデザイナーの開発体験向上は非常に大事なことであると考えています。

まだ立ち上がったばかりのヨチヨチ歩きのチームです。改善の余地はたくさんあると思います。また来年、内製開発チームがどのように進化し、どのような環境で開発を行っているのかご紹介できればと思います。

最後までお読みいただき、ありがとうございました!