ソフトウェア開発のスピードを向上–開発者の「フロー状態」を維持する3つのポイント(後編)
今回は「ソフトウェア開発のスピードを向上–開発者の「フロー状態」を維持する3つのポイント(後編)」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
先日公開された前編では、デジタルトランスフォーメーション(DX)の加速に伴って、さまざまな規模や業界の企業が、自社のソフトウェア開発の在り方を見直し始め、製品やサービスの競争力を高めようとしているトレンドの変化をお伝えしました。
開発規模や体制によっては、日本ではいまだに主流となっているウォーターフォール開発は、いくつかの工程に区切って開発と検証を繰り返すため、急速に進化するテクノロジーのスピード感に十分に対応していないことも多々あります。そのため、市場が求めるサービスをより速く提供するためにも、より柔軟かつ迅速にソフトウェアの開発を推進することができるDevOpsの採用に取り組む企業も多くなってきています。また、効率性と品質担保の観点から、オープンソースを活用したソフトウェア開発は、変革やイノベーションを推進する企業にとって、主要なモデルとなっています。
一方で、スピード感のあるイノベーションが優先される中、開発方法論だけでなく、それを実現させるために不可欠な開発者の働き方(=開発者体験)の改善にも焦点が当たるようになりました。開発者が能力を最大限に発揮できる最高の環境を提供し、開発作業の障壁を排除してプロセスを可能な限り円滑にすることによって彼らの能力を高めることが、イノベーション創出を加速させることにつながると、企業の経営陣は気付き始めています。
今回は、前編でご説明した「開発フローと繰り返し作業の自動化、AIの活用」に加え、DevOpsを開発現場に定着させ、スピード感のあるイノベーションを進めるのに必要な開発者体験の向上に取り組む際に重要な3つのポイントのうち残りの2つをご説明します。
前編を読んでない方は是非先にこちらをご確認ください。
優れた開発者体験を実現するには、ワークフローを円滑に進めるための機能を導入するだけでは不十分です。開発プロセスの全ての段階にセキュリティ対応が施されているという安心感を開発者に対して提供する必要があります。
自動テストツールを使うことによって、開発者はコードのマージやテストの実行など、ワークフローの一部を高速化できます。継続的インテグレーション/継続的デリバリー(CI/CD)プラットフォームを導入することで、チームはコードをデプロイする前に毎回テストできます。これにより、コードが正しくコンパイルされ、パフォーマンスの高い、すなわち許容できるコードのみが生成されることが保証され、生産性が向上します。
膨大な量の既知のセキュリティ脆弱性を把握することや、新しいゼロデイ攻撃について常に対策することは、ほぼ不可能です。しかし、セマンティックコード解析エンジンは、開発ワークフロー全体にセキュリティを組み込むことができます。自動化されたコードの安全性や有効性をスキャンするツールは、リポジトリーのコードを定期的にチェックして、脆弱性を迅速かつ確実に特定します。また、さまざまなプログラミング言語やそのパッケージへのセキュリティ勧告を追跡できるため、あらゆる種類の開発プロジェクトが恩恵を受けることができます。
これらのツールにより、GitHubでは2022年、脆弱性を抱えるパッケージが前年比で50%も多くアップデートされ、1800万プロジェクトの安全確保に貢献したことが分かりました。サプライチェーン全体がより安全になることで、開発者は夜も安心して過ごせるようになります。
脆弱性を修正できるかどうかは、組織がセキュリティを「シフトレフト」し、組織全体の責任として脆弱性の対処に取り組めるかどうかにかかっています。本番直前で品質保証を全てテストするのではなく、開発プロセスの各段階にセキュリティ対応を組み込むことで、より安全なソフトウェアをより迅速に作成できます。開発者はセキュリティの専門家である必要はありません。だからこそ、開発者がより安全なコードを摩擦のない方法で簡単に開発できるようにすることが重要なのです。
さまざまな企業で話を聞いていると、プロセスの自動化によってコードが見えにくくなり、その結果、レビューがしにくくなるのではないかという懸念が示される場合があります。しかし、そのような懸念は不要です。コードレビューは、オープンソースの重要な部分です。
多様でグローバルなオープンソース開発者のコミュニティーを利用するメリットの1つは、有能で意欲的な開発者の集団にすぐにアクセスできることです。共通の価値観に基づくコミュニティー内で働くことで、開発者は専門知識の共有、コードの共有、ワークフローの再利用といった恩恵を受けることができ、コードを強化するモチベーションが働きます。
企業は、インナーソース戦略を採用することで、組織内にオープンソースコミュニティーを効果的に構築できるようになり、オープンソースコミュニティーの繁栄に関するこれまでのノウハウから利益を得ることができます。透明性の高い開発者同士のコラボレーションを促進することで、より優れたソフトウェアをより迅速に作成できます。また、非公開のコードは環境内に安全に保持され、適切な権限を持つ開発者のみがコントリビュートできるため、企業の機密性は担保されます。
コードレビューそのものを自動化できるということは、オープンソースコミュニティーの知識を全てのプロジェクトに自動的に反映することができるということであり、ソフトウェアサプライチェーン全体にとってもWin-Winとなるものです。
自動化は、開発現場に革命をもたらす最新のトレンドに過ぎません。イノベーションを加速させ、開発者の生き方や働き方にポジティブな影響を与えることができるため、その影響力は無限大です。
自動化は組織の適応能力に影響を与え、世界中のビジネスリーダーは自動化がもたらすメリットを認識し始めています。世界経済フォーラムは、80%以上のビジネスリーダーがワークプロセスの自動化を加速させようとしていると推定しています。さらに、Deloitteによると、3社に1社以上の企業がすでにビジネスプロセス管理ソフトウェアを導入し、ワークフローの自動化を進めているとのことです。
企業は、開発者に対して最適な開発環境を提供することがビジネスを推進する為に必要不可欠であるという事実に気付くべきです。自動化の導入を阻む障壁を克服することで、企業は開発者に力を与え、イノベーションが成功するための最適な条件を作り出すことができるのです。