システムガイドラインの運用を始めました

はじめに

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

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

本記事では、21年度上期に検討し取り組み始めた 「システムガイドラインの運用」 について その内容と背景をお伝えてしていきます。 特に今後エンジニアとして弊社に入社を検討頂ける方に向けて、 どのように技術と組織について考えているかをお伝え出来ればと思います。

medibaにおける非機能要件/運用要件

このガイドラインは弊社の開発において、 機能要件以外の、いわゆる非機能要件や運用要件についてのものになります。 プロダクトのサービスグレードや商流の違いによって差異はありますが、 概ねそのプロダクトだけでこの非機能要件や運用要件のすべてを定義するようなことはなく、 medibaとして、あるいはKDDIグループ企業として 標準化された非機能要件/運用要件をベースに検討することがほとんどです。

これら非機能要件/運用要件の内容ですが、 性能やセキュリティに関するアプリケーションやインフラを対象にしたもの、 システム全体の可用性を対象にしたもの、 システムの運用における管理やリリースなどを対象にしたもの、 監視や障害に関するもの、などなど多岐にわたります。

また、これらの実施管理は一元化されているわけではないため、 ある項目は具体的な要件から設定方法・実現方法まで記載されている、 またある項目は要求事項のみしかなく実現方法は個別に検討が必要なものなどあります。

また当然プロダクト毎の機能的な要件と、これらの非機能要件/運用要件の整合性も取らなくてはならず、 総合的な理解が必要となってきます。

こういった面から、非機能要件/運用要件の把握からその実現方式の検討、継続的な運用まで どうしてもスキルや経験が高いエンジニアに集中しがちで属人化することが課題となっています。

image

この課題を解決するために、「システムガイドライン」 を再整備し、その運用を始めました。 ※正確に言うと、「システムガイドライン」の作成は数年前に作成されていましたが、現状の課題/運用に適さなくなっていたため再整備を行ったという形となります。

システムガイドラインとは

システムガイドラインは、 Github上で管理されており、「前文」と「アプリケーション」「インフラ」「セキュリティ」「システム運用」「リリース」などと言ったようないくつかの業務別のページに分かれています。

「前文」には、ガイドラインの目的や使い方、修正方法などが記載されています。

業務別のページの内容は、上述した非機能要件/運用要件を元に具体的な実現方法を記載しています。 一例として、「アプリケーション」の業務別ガイドラインにおいては、 管理システムのログは、どのような内容を出力するか・どれくらいの保持期限にするか といったことが具体的に記載されています。

このガイドラインを新規メンバーの参画時、あるいはチームの組成時などに読み合わせ理解を深めて貰い、 実際のシステムの設計や実装時にどのような内容にすれば良いかの手助けにしてもらいたいと考えています。

image

また、ガイドラインの内容の変更に関してですが、 このような文章は横断的な非機能要件/運用要件の変更やアーキテクチャの発展などにより 最新に保つ必要があります。 変更するのが特定のエンジニアに偏らないように、また組織全体で変更内容を議論していくために エンジニアなら誰でも修正のPullRequestを送れるようなフローにしています。

最後に

今回は、「システムガイドライン」の運用についてお伝えさせて頂きました。 まだ運用を始めたばかりで目に見える効果はありませんが、 組織全体で継続的に内容を理解し修正して活用していくことで 横断的にプロダクトの品質向上に寄与して行くと考えています。

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

また、この取り組みはいちエンジニアのスキルの向上にも寄与すると考えています。 私たちのビジョンに『「良いもの」を届け続ける』がありますが、 自身の成長にも繋げてほしいとの想いもあります。

「システムガイドライン」を通して『「良いもの」を届けたい』エンジニアの方の応募をmedibaではお待ちしております。