Skip to main content

開発者中心のソフトウェアアプローチ

feature developer approach

2022年2月18日

0 分で読めます

ここ数年、「あらゆる企業がテクノロジー企業であるという考えは、業界に根本的な変化をもたらしています」(Atlassian、DevOpsプロダクト責任者 Suzie Prince)。開発という専門領域が圧倒的な存在感を持つようになり、開発者の視点を重視する声が大きくなるとともに、その声を届ける人々も増えました。この変化は昨年のSnykConの複数の講演で取り上げられ、開発者が業界をどのように変革し、ソフトウェア開発に新たな優れたアプローチをもたらしたのかについて、新たな知見が得られました。

開発者が組織に求めるもの

ツールや企業文化は、生産性や仕事への取り組み方に大きな影響を与えます。自律的に働ける環境があれば、投資もチームの意欲も高まります。DORA(DevOps Research and Assessment)のDevOps動向調査プログラムによると、「開発者により多くの選択肢を与える変革的な組織ほど、実際に高い成果を上げています」。自分たちのニーズを最もよく理解しているのは自分たちです。開発者が日々関わるツールやチーム構成について、より多くの選択肢を与えることが不可欠です。

SnykCon 2021で話し合われた、開発者のアプローチと権限強化には、3つの基本原則がありました。

  1. 開発者には、仕事を簡素化するツールが必要です。

  2. 開発者には、ほかのツールや既存のワークフローとシームレスに連携できるツールが必要です。

  3. 企業文化は、開発者が仕事に主体性を持てるよう後押しするものであるべきです。

日々の仕事を楽にするツール

Snykのプロダクト担当VP、Gareth RushgroveとのSnykConセッションで、AtlassianのDevOpsプロダクト責任者であるSuzie Princeは、開発者は「日々の仕事を効率よく、効果的に進められる」ツールを求めていると説明しました。そのためには、多くの場合、可能な限り自動化を取り入れ、時間のかかる反復作業の負担を減らすことが重要です。自身もかつて開発者だったRushgroveは、「より簡単に使えるものを使いたいというのが、開発者の望みです」と端的に述べました。開発者が担う仕事は数多くあります。使いやすいツールを選び、日々の作業を簡素化する方法を優先すべきです。

この原則は、開発だけでなくアプリケーションセキュリティにも当てはまります。シフトレフトを効果的に進め、開発者にセキュアコーディングを実践してもらうには、開発者のニーズに合い、セキュリティ教育を簡素化するツールが必要です。Rally Healthのアプリケーションセキュリティリーダー、Ari Kalfusは、実践につながるセキュリティの知見をテーマにしたSnykConのセッションで、この点について語りました。彼のチームは、設定データのテストにOpen Policy AgentのConftestを使用しています。テストが失敗した理由を開発者が理解し、対処できるよう、Conftestにカスタムの失敗メッセージを実装しました。Kalfusはチームに、「ポリシーを作成し、PRのどこに問題があるのか、どう修正すればよいのかを開発者に正確に伝えるメッセージを追加する」よう指示しています。「開発者にガイダンスを提供しなければ、効果的な支援の半分にも達していません」(Kalfus)。

How Compliance-as-Code Grants Developers Actionable Security Insights

シームレスに連携するツール

開発チームの働き方はそれぞれ異なります。同じ組織の中でも、チームごとに独自の手法があり、担当業務に合わせてカスタマイズされたツールのエコシステムを構築しています。開発者に支持されるのは、そうした複雑なエコシステムに最もよくなじむツールです。

優れたツールの基本は、ほかのソフトウェアと併用することを前提にしていることです。Rushgroveが説明したように、「開発者は、何でもできる単一のツールを求めているわけではありません」。開発者が自由にツールを選べるようにするには、幅広いソフトウェアとの互換性が欠かせません。開発者が重視するもう一つの点は、使い始める際のハードルが低いことです。「組織内の別の部署がツールをワークフローに組み込むのに時間がかかるなら、おそらく別のものを選ぶでしょう」(Rushgrove)。開発者中心のアプローチでは、書類の記入や他部署への権限申請、承認依頼に手間をかけるより、仕事を進めることを優先します。

Developers don't want someone looking over their shoulder

サーバントリーダーシップとチームの権限

業界では、象牙の塔にこもるアーキテクトが主導する体制から、進化し続けるアーキテクチャへの移行が進んでいます。開発プロセスはより小さな単位に分割され、開発者には創造性を発揮し、選択できる余地が広がりました。この変化の多くはアジャイルの導入によって促されました。そこでは、管理階層よりも「個人とその相互作用が重視されます」(Prince)。RushgroveはDevOpsの黎明期、運用部門で働く開発者でした。あらゆる企業がテクノロジー企業になるなかで、「エンジニアや開発者、運用担当者、ソフトウェアに携わる人々が、自分たちでも気づかないうちに、あるいは望んだり恐れたりしていたよりも早く、管理職になっていくのを目の当たりにしました。彼らは『自分の上司には邪魔をしないでほしい。だから自分が管理職になったら、部下の邪魔をしない』という考え方を持ち込んだのです」。こうした変革的な考え方は、業界全体で参入障壁を下げ、開発者が独自のアプローチを築く道を切り開きました。

こうしたマネジメントの原則は、セキュリティと開発の連携にも当てはまります。「コアとなる開発を終えて数か月後にセキュリティテストを行う世界に身を置き、そのコストの大きさを目の当たりにすれば、もっと早い段階で対処しようという意欲が生まれます」(Prince)。これが、アプリケーションセキュリティにおけるシフトレフトを推進する原動力です。分散化が進み、迅速かつ安全なリリースが求められるなか、開発チームのアクセス権限と責任も拡大しています。この新しいパイプラインを守るには、セキュリティも分散化の流れに沿う必要があります。TrendMicroのアプリケーションセキュリティテクノロジー担当グローバルディレクター、Mike Milnerが説明したように、「セキュリティチームの重要な役割は、開発者が何を構築しているのか、どのような新たな脅威が持ち込まれる可能性があるのかを理解すること」です。日々のトリアージを開発者に任せることで、セキュアコーディングの実践を促し、セキュリティ担当者は「開発チームが調査し、適切な修正を実装し、実際にデプロイするための時間を確保する」ことに専念できます(Milner)。

Security workflow collaboration: How security teams provide aircover for developers

自律的に動く開発チーム

力を発揮できる自律的な開発チームをつくるには、マネジメントが「チームの目標に耳を傾け、チーム自身で問題を解決できるよう支援する」ことが大切です(Prince)。リーダーやマネージャー、セキュリティ担当者の役割は、開発チームに毎回答えを与えることではなく、チームが前進できるよう支援することです。開発者が自分たちのニーズに合ったツールを選び、チームを自ら導く権限を持つことで、組織は長年にわたって生産性と安全性を維持できる、主体性のある文化を築けます。

開発者のニーズを最優先すると謳うツールは市場に数多くありますが、Snykほどそれを実現できるものはありません。アプリケーションコードをリアルタイムで保護したい場合も、オープンソースの依存関係やコンテナイメージに潜む脆弱性を検出したい場合も、クラウドの設定ミスを見つけて修正したい場合も、Snykがサポートします。業界をリードするセキュリティインテリジェンスで、開発のスピードと安全性を両立できます。今すぐ無料登録して、プロジェクトを保護しましょう。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。