オープンソースで技術的負債を解決する

By 7月 22, 20208月 31st, 2020Blog, Publications

概要

Linux Foundationの新しい論文 Technical Debt and Open Source Development(邦訳:技術的負債とオープンソース開発)は、Ibrahim Haddad, Ph.DとCedric Bail, M.Sc.の共同執筆によるもので、技術的負債の原因と結果が詳細に分析されています。技術的負債の特定、それを最小限に抑える方法、オープンソース開発の役割、そしてこの問題に大規模に取り組むための戦略に関する議論が含まれています。

著者のふたりは、Samsung Researchのオープンソース グループで共同で作業し、アップストリームのオープンソース プロジェクトを使用することにより、社内で保有する技術的負債の最小化を直接経験しました。その経験は、アップストリーム開発への関与と専門知識の度合いが異なる、さまざまな製品や事業部門で使用される数十のオープンソース プロジェクトをカバーしています。

技術的負債の定義

技術的負債とは、ソフトウェア開発で使用される用語で、共同開発が行われるメイン ブランチからの逸脱によって発生したソースコード保守コストを指します。

技術的負債の構成物をより広く解釈すると、以下のようにプロプライエタリ コードそのものです。

  • 単一の組織が開発した。
  • その組織だけで保持および保守する必要があるソースコードである。
  • 場合によっては、組織はパートナーの力を借りてそのコードを保守し、その負債を背負う。

技術的負債は、次のような症状によって特定できます。

  • リリース速度の低下:新機能が提供されるまでのリリース時間が長くなります。
  • 新規開発者がコードを習得する時間の増加:内部開発者だけがコードベースに精通しているというコードの複雑さのために、新規開発者のコードを習得するための時間が大きく増加します。この症状による第2の症状は、開発者の維持や新規開発者の採用が困難になることです。
  • セキュリティ問題の増加:少なくとも、メインのアップストリーム ブランチよりも多くのセキュリティ問題が発生しています。
  • コードベースを保守するための労力の増加:保守作業は、保守するコードの本体が大きく複雑になるほど、より時間がかかるようになります。
  • アップストリームの開発サイクルとの不整合:保守のペースが維持できず、アップストリームの開発やリリース サイクルとも整合できていないことを示しています。

考えられる最悪のケースは、組織が頻繁に保守している自身のフォークのコードベースを長期に保守し続けるための労力が必要になることです。

多くの場合、短期的には、技術的負債は避けられないものです。技術的負債を抱えることは、たいていは開発者が常に決断する必要があることです。エンジニアリング作業の長期的な目標は、開発作業に起因する技術的負債を最小限に抑え、解消することであるべきです。適切なポリシー、プロセス、トレーニング、およびツールを使用することで、組織は技術的負債の削減に向けたエンジニアリングの取り組みを軽減し、指導できるようになります。

オープンソースには重要な役割があり、開発作業をアップストリームのオープンソース プロジェクトに合わせることで、組織が抱える技術的負債に直接的なプラスの影響を与えることができます。金融債務には利息の支払いが必要なのと同じように、技術的負債には別の種類の利息があり、それを支払う必要があります。利子がないということはありません。

技術的負債はあなたの開発を妨げ、あなたの新たな成長を妨げ、あなたの技術的負債をオープンソース基盤の一部にしてその価値を低め、成長し続けます。

Technical Debt and Open Source Development (邦訳版:技術的負債とオープンソース開発)をダウンロードするには、以下のボタンをクリックしてください。

The Linux Foundation
Follow Us