開発者体験<Developer Experience>
「開発者体験」という言葉を耳にする機会があり、英語でDeveloper Experience表記するのを略して「DX」と呼ぶと知りました。今まで聞いていた「DX」はDigital Transformationの略でしたので、全く別の考え方のようです。
システム開発の効率化を促進するツールとサービスを提供している弊社OpenTextとしましては見逃せない内容のようでしたのでどのようなものか確認してみました。
“システム開発を行っている会社において、開発者の幸福度、満足度に注目し改善することでハイパフォーマンスな組織にする”
ということのようですが、どういうものかまだ良くわかりません。
システム開発現場の状況
私がシステム開発系の会社でSEをしていたころも現場の状況は厳しいものでしたが、現在も大変な状況であることに変わりはないようです。
開発に関連した作業を効率化するツールの導入がなされていないところも多く、日々の作業の忙しさから最新テクノロジの勉強が困難であり、更に日本ではIT技術者の不足がこれから更に加速すると言われています。
以下の図にあります通り30%のプロジェクトにおいてプロジェクト管理ツールを導入していないとなっていますし、2030年には80万人のIT人材不足になると言われています。
開発者にとっては非常に厳しい現状と、将来性への不安が重くのしかかっている形であり、その問題に取り組み解決を図るのが「開発者経験(Developer Experience)」と言えるようです。
システム開発を行っている会社では、社員であるIT技術者が有能でパフォーマンスを発揮してくれる環境が安定して長く続いてくれることを期待するでしょう。そのために人材の採用や育成に力を入れているはずであり、その人材が実力を発揮できる環境を整える必要があることも十分理解されているはずかと思います。
可能であれば社内のIT技術者全員がいわゆる“ハイパフォーマー”になってくれれば会社全体のパフォーマンスも向上すると期待されます。
しかし、「ハイパフォーマー」「ミドルパフォーマー」などの分類は相対的なものであり、「働きアリの法則」でも知られている通り、組織の中でハイパフォーマー:ミドルパフォーマー:ローパフォーマーの割合は
2 : 6 : 2
と一定に保たれると言われています。
会社全体のパフォーマンスを向上させるには全てのIT技術者層の底上げを行い、個々の力を発揮してモチベーション高く作業が出来る環境の構築が必要だと言えるかと思います。
開発者体験の向上に必要なこと
人材育成のためのトレーニングや最新技術の習得、システム品質の向上に必要となるものが「工数」です。
システム開発において工数が足りなければ必要なテストや確認作業が出来ず、品質の低いものを納品してしまうと後で問題が発見され、発見されるまでにかかった期間に比例して修正にかかる工数が増大するという悪循環に陥ります。
将来のための投資として最新技術の勉強のための工数を確保するには、現状を分析して「ムリ」「ムラ」「ムダ」を見つけて作業の自動化を行い、AI機能の導入によって改善を図っていくことが重要と考えます。
とはいえ、運用方法や組織というものは全体的にを変更することが非常に困難なものですので、取り組みが可能な小さな課題を見つけて改善を行い、それを広げている活動を継続することが大切です。
いきなり「AIを会社全体で活用する仕組みを作る」ということは出来ないと思いますので、まずは日常の業務においてAIで効率化できることを探して、AIの活用方法や効果を学ぶところから始めるのが良いのではないでしょうか。
そこから徐々にAIのしくみを理解していき、自分の組織・会社にカスタマイズしたAIサービスに取り組んでいけるように進めているという流れです。
(特にハイパフォーマーな)技術者は最新技術に対する学習意欲やチャレンジ精神が高いはずなので、日々の業務を行いながらも、効率化によって捻出した工数を有効に使って新たな分野を切り開き、更にはそれを周囲の人たちに広げて行ってくれるでしょう。
AI によるシステムDevOpsの効率化
DevOpsはそれだけでも開発プロジェクトの効率化を目指すことが出来ますが、最近ではDevOpsの各活動にもAIの活用が広がっています。
例えばOpenText™ Core Software Delivery Platformでは、以下の図にあるような機能でこれまで以上の作業効率化を図ることが可能になるものです。(※この図には将来的な実装予定も含んでいます)
- 蓄積されたプロジェクトデータから現在のプロジェクトを分析し、アラートなどを表示
- 要件、バックログからテストケースを自動生成(現在は英語のみ対応)
- 自動テストのスクリプトで、テスト対象のオブジェクトを画像からAIによって識別
OpenText™ Core Software Delivery Platformソリューション
Software Delivery PlatformはOpenTextが提供しているSaaSソリューションであり、システム開発の各工程をトータルで支える機能を持っています。UFT OneやLoadRunner、ALMなどの製品で培ってきたテスト自動化やプロジェクト品質管理の機能をクラウド上に集約し、小規模から大規模な開発プロジェクトまで広範囲に使用することが可能となっています。
Software Delivery Platformは多くのCI/CDサーバ等の環境とインテグレーションすることが出来るため、既存の環境を生かしたまま開発の効率化を機能テスト/パフォーマンステスト、監視やリリースの自動化に取り組むことが可能となります。
Developer Experienceの効果
書籍「LeanとDevOpsの科学(インプレス社)」では、約23,000件のアンケートデータから実際のアジャイル開発やDevOpsに現場においてツールやプロセスの導入が企業のパフォーマンス向上に大きく貢献しているということを筋道たてて紹介されています。
この書籍ではアンケートと調査の結果から、アーキテクチャのキーポイントとして以下の点などが挙げられています。
- システムのタイプとデリバリーのパフォーマンス
調査結果から、システムのタイプがSOEであってもSORであってもデリバリーのパフォーマンスを向上させることは可能だが、次のキーポイントである容易性が需要であるとされています。
- 注力すべきはデプロイとテストの容易性
特に疎結合のアーキテクチャにおいては、「テスト容易性」と「デリバリー容易性」によってパフォーマンスを向上させることが出来るとされています。
- 必要なツールをチーム自らが選択できる
ツールをチームが選択できる場合、ソフトウェアデリバリのパフォーマンスが向上し、それが組織全体のパフォーマンスにも好影響を与えるとされています。
最後の「ツールがチーム自ら選択する」という点は、開発者が好むOSSを推奨しているように思われるかもしれませんが、実際の開発現場ではツールに予算を使わない傾向が強くOSSを使用するしかないという状況が多いのではないでしょうか。
便利なツールをチームが選択できる機会を奪っているのであれば、それはパフォーマンスの向上を妨げる要因となりますので、企業としてはツールの選択肢を広く持つべきだと思います。 殆どの企業において、ツールの導入は効率化に大きく貢献しており、開発者のモチベーション向上に役立っていると記載されていますので、興味がありましたら書籍を参照下さい。
今回のまとめ
IT技術者の不足が問題になっている今、作業の自動化や効率化によって技術者のモチベーションを高く保ち、より一層活躍出来る環境を整えることが重要だと考えます。
そのためにDeveloper Experience(開発者体験)という考え方を参考にし、開発者の活躍できる場を整えることが企業の競争力強化に繋がっていきます。