新規開発時の技術選定の指針について

初めに

こんにちは。エンジニアの野崎です。最近は現場でプロダクトの開発を行いつつ、 兼務としてCTO準備室に所属しテックリードというロールを持ち、複数のプロダクトにまたがるテクノロジーセンターの課題を 技術的な点を軸にしながら解決に向けて取り組んでいます。

※参考記事:2020年度エンジニア組織について | mediba Creator × Engineer Blog

本記事では、テックリードの取り組みとして21年度上期に検討し取り組み始めた 「新規開発時の技術選定の指針」 について その内容と背景をお伝えてしていきます。 特に今後エンジニアとして弊社に入社を検討頂ける方に向けて、 どのように技術と組織について考えているかをお伝えて出来ればと思います。

これまでの技術選定方針

これまでは、新規開発時には各プロダクト毎に利用する技術(ツール・ソフトウェア)を選定して来ました。

各プロダクト毎に利用する技術(ツール・ソフトウェア)を選定することで、 プロダクトやそのチームにあった開発をし、新しいものを積極的に取り入れることを目指していました。 この方針で数年たちましたが、この点は達成できてきました。

ただ、その中で特に運用保守において上手くいかない点・歪みが生まれてきました。 今回「新規開発時の技術選定」の指針にて、部分的に利用する技術(ツール・ソフトウェア)の指針を設けることによって 複数のプロダクトにおいても横断的に運用保守をより効率的に品質高く行うことを目指したものになります。

新規開発時における技術選定の指針

今回取り決めた「新規開発時の技術選定」の指針について、 そのまま公開は出来ませんので、3点にポイントを絞って説明します。

■指針1. 以下の領域において、基本となるツール・ソフトウェアを指針を定義する

  • パブリッククラウド
  • コンピューティング
  • バックエンドアプリケーション開発のプログラミング言語
  • データベース
  • CI/CD環境

ここでは全て記載しませんが、 例えば「パブリッククラウド」においては「AWS」を利用すること基本とする、といった内容です。

また、ここに挙げた領域以外のもので検討中のものもあります。 例えば「ネイティブアプリケーション」についてですが、 社内で開発運用実績もありますが担当するチームが一つになっていることもあり、検討している段階になります。

領域やツール・ソフトウェアの選定に当たっては、 プロダクトにとってコアとなる技術領域か、ライフサイクルはどのくらいを見込んでいるかなど鑑み、 既存システムでの採用事例・既存メンバーのスキルセットを重要視し選定を行いました。

■指針2.「指針1」に記載されていない場合は、センター内で話し合い決定する

今後新規開発時の要求要件によっては、「指針1」で定義したものでは実現出来ない可能性ももちろんあります。 その場合は、新規開発の担当チームだけではなく、他の開発チームも含めセンター内で話し合って決定していきます。その上で、導入事後のフィードバックを行い再評価します。

■指針3.「指針1」の内容は1年程度のスパンで見直しを行う

「指針1」の内容も、長い年月を経ると継続的なメンテナンスに問題が出たり、 より良い代替のツール・ソフトウェアが出てくる場合もあります。 そういったメリット・デメリットを評価せずに技術を硬直化させることは望んではいないため、 定期的に内容を評価・見直していきましょう、ということです。

これら指針を軸に、 「横断的な検討→試行→評価」のサイクルを目指すことが骨子にあたります。

medibaにおける開発の特徴

ここでは、medibaにおける開発の特徴を取り上げ、 「新規開発時の技術選定」の背景を説明します。

大きな特徴として、 一つのプロダクト(システム)の新規開発から運用(グロースフェーズ)・保守まで、 社内で一気通貫で対応することが挙がります。 また、「新規開発」や「運用」を専門にするチームはなく、 あくまでプロダクト毎でのチームで担当するのも特徴的です。

社内で扱うプロダクト(サービス)数は数十ほどあり、 必然的にチーム組成の機会が多くなります。 下記の図を使って説明します。

image

例として、プロダクトAとBの時系列で「新規開発」「運用」「保守」のフェーズと その時点で必要とされるエンジニアを図示してみました。

プロダクトBの運用フェーズ開始時について考えてみます。 簡単のためにプロダクトAの運用メンバーが、プロダクトBの運用を担うことになる場合、 プロダクトAとBの採用技術が大きく異なる場合、 その技術的な習得、オンボーディングなどに大きく時間を取られてしまい、 本来運用(グロースフェーズ)に期待されるような積極的な開発やシステムの安定性を高める取り組みが達成できない、 あるいはそもそもチーム組成が難しいといった課題が発生してきました。

このような背景から上述の「新規開発時の技術選定」の指針を作成しました。

最後に

ビジョン:「良いもの」を届け続ける

テクノロジーセンターのビジョンとして、『「良いもの」を届け続ける』があります。

日々現場での業務を行っていると、 短期的な納期や自チームのメンバーにしか意識が集中することが多く、視点が狭くなりがちです。 時にはこう言ったビジョンに立ち返り、長期的に組織全体や業界全体にも目を向けつつ 「良いもの」を届け続けるために、自分たちが使う技術をより良く変化させていくことは、 組織としても個人としても更なる成長に繋がると信じています。

ビジョンの実現のために、 地道に一歩ずつ一緒に取り組んで頂けるエンジニアの方の応募をmedibaではお待ちしております。

1 note

  1. mediba-ce posted this