今こそ考えるべき開発者体験–DevOpsとAIによる効率化の関係性
今回は「今こそ考えるべき開発者体験–DevOpsとAIによる効率化の関係性」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
(前回の記事は こちら)
開発者の悩みから開発者体験向上を考えてみることで、具体的な道筋が見えてくるだろう。
例えば、システムや製品がユーザーにもたらす価値を明確にし、それを開発者が理解して作業を進めることは非常に有効なはずだ。機能がもたらす価値を理解しないまま設計、開発、テストを実施していくと、間違った仕様やテストケースに気が付くのが遅れ、システムとしては、要望とはかけ離れたものになる可能性がある。
開発スタイルとしては、短サイクル開発のイテレーション型開発で部分的に完成したものをユーザーに提供し、そのフィードバックから改善を図るのも有効だろう。
既存システムのメンテナンスは重要だが、新しい環境や技術に移行するのが困難であり、関わる開発者もスキルアップが進まないなどの影響を受ける可能性がある。AIは開発者の作業を補助することが可能であり、現在の業務を効率化することが可能となる。
まずは最新技術を活用するところから始めて、その理解を深めていく活動が有効ではないだろうか。
開発に携わっている方はお気付きかと思うが、ここで述べた「業務の効率化」「イテレーション型の開発」などは、日本でも長期間言われ続けているDevOpsとAgile(アジャイル開発)の活用と同じことを目指すものだと思える。
DevOpsは、企業の運用方針を改善する方法論なので、ツールや環境の話として説明するとお叱りを受けるかもしれない。企業の状況はさまざまなので、ここでは共通の内容として論じることができる環境/ツールの観点で進める形とする。
実際に日本の開発現場で行われているのは、「CIツールによる自動ビルド」「SCMツールによるソースコードとアーティファクトの管理」「Unitテストの実行」までという状況が多いのではないだろうか。
目指すべきDevOpsは、Agile管理サーバーによってバックログ、リリースなどを管理し、それと連動する形でCI/CD(継続的インテグレーション/継続的デリバリー)ツールから自動デプロイされたテスト環境で機能テスト、負荷テスト、セキュリティテストも併せて実行する流れになるだろう。そして、「Ops」の部分に関しては、監視ツールやログから得た情報から問題を検知し、その問題を障害情報としてAgile管理サーバーに送付するまでをつなげる形となる。
細かい部分まで含めると、以下の内容も考慮する必要があると思われる。
しかし、全てを一度に実装するのは非常に困難なので、CI/CDツールの導入などの基本部分から始めて、徐々にUnitテスト、機能テスト、セキュリティテストなどのように範囲を広げて行く形が有効になるだろう。