技術的負債とSaaS:Chemaxonのアプローチ
2024.07.22
ChemAxon
![](https://patcore.com/hubfs/image-png-Jul-22-2024-05-52-20-0115-AM.png)
Chemaxon Balázs Zaicsek(バラージュ・ザイツェック)著
ソフトウェアプロジェクトを管理したことのある人なら、技術的負債という言葉を耳にしたことがあるでしょう。どんなソフトウェアにもそれが存在します。それはどんなものでしょうか? どのようにして生まれるのでしょうか? そして、それは本当にそんなに悪いものなのでしょうか?それを取り除くことはできるのでしょうか? 本記事では、これらの疑問に答え、可能な限り回答を提供します。
「技術的負債」という用語の由来
この言葉は、ワード・カニンガムがWyCashの上司にコードメンテナンスの重要性を説明するために選んだ用語に由来します。
問題は、一貫した結果を提供できる信頼性の高いソフトウェアを作成することでした。つまり、同じ質問を二度連続してすれば同じ答えが得られるべきです。
リファクタリング、つまりコードの更新では、結果として以前と同じ機能を維持する必要があります。簡単に言えば、直ちにユーザーに価値を提供するわけではないので、一見すると単にお金を浪費しているように見えるかもしれません。
しかし、ワード氏は背後で何が起こっているのかを理解し、関係者に馴染みのある言葉で説明するために「技術的負債」という用語を選びました。彼は、成功するソフトウェアプロジェクトをリードするためには、製品に要求される機能を作成するだけでなく、期限を守り、予算内で収める必要があることを理解していました。そして、これらの目標を達成するために、時には手抜きをしなければならないこともあります。
これらの近道は必ずしも品質の低いコードを意味するわけではなく、時には柔軟性の低い解決策を生むことになります。つまり、前もって時間と労力を節約することで、将来的に変更が難しくなるという代償を支払うことになります。ワードの用語では、チームの固定された能力は固定予算に匹敵し、将来的な改善に必要な努力の増加は、今日負った負債の利息を返済するのと同じです(この意味でのリファクタリングは、負債が蓄積し続けないようにするための返済と見なせます)。
技術的負債の二重の性質
時には、技術的負債を負うことが正しい選択である場合もあります。しかし、それは将来の能力を確実に制限するので、技術的負債はできるだけ早く対処すべきです。また、将来的に再び同じ状況に直面し、迅速な変更とさらなる負債の蓄積という困難な決断を迫られることが避けられません。
ソフトウェア開発からソフトウェア所有に視点を広げると、見方が変わります。ソフトウェアの最大の価値は、その柔軟性にあります:常に実際のニーズに合わせることができます。しかし、これはまた最大のリスクでもあります:常に変化し、一つの望ましい変更が多くの変更を強いることが常にあります。
完璧なソフトウェアシステムを想像してください。すべてが完璧で、最先端です。それをコンピューターにインストールし、世界から隔離し、石に刻みます。それでビジネスを築き、永遠に変化を避けられますか?もちろんそうではありません。要件は変わり、ビジネスも変わります。世界は必ず変わり、あなたもそれに合わせて適応しなければなりません。ソフトウェアも同じです。
時が経つにつれて、新しい脆弱性が発見され、新しい攻撃方法が発明されるでしょう。単にコンピューターを世界から隔離することで、すべての脅威を避けることはできません。この戦略に賭けたとしても、新しい政府の規制が予防措置を講じるよう強制することがあります。最善の策は、継続的に更新することです。しかし、ソフトウェア製品は寿命を迎え、新バージョンへの不可避なアップグレードに直面するかもしれません。それはしばしば重大な変更をもたらすことがあります。
統合と互換性
特定の問題を解決するためにソフトウェアを使用することを決定すると、重要なスピードアップとコスト削減を期待します。ビジネスの大部分をこれらのシステムに組み込むことができれば、より多くのお金を稼ぐか、少なくとも努力を最小限に抑えることでより多くの節約ができるでしょう。これらの動機は、さまざまなコンピュータ化された解決策を求める方向に向かわせますが、異なるシステム間を飛び回る時間が増えると、利益が痛みを上回る可能性があります。答えは統合されたシステムを構築し、コンピューターに負担を肩代わりさせることです。
システムがビジネスをよりよく表現するほど、より多くの価値を生み出します。また、ビジネスが成長するにつれて、システムはますます複雑になります。市場で見つけた独立したコンポーネントから構築された自家製のソフトウェアシステムで仕事をサポートする場合、ソリューションを継続的に形作るタスクを引き受けるか、すぐに回避できない障害に直面するリスクを負います。
驚くことではありませんが、独立したソリューションの統合は、ソフトウェアが小さな構成要素から構築される方法と実質的に同じです。したがって、このアプローチも自然に技術的負債を生むことになります。今日の素晴らしい決定のすべてが、将来の高価な近道に変わる可能性があります。
無料の昼食は存在しない
決定の一つとして、無料ソフトウェアと商用ソフトウェアのどちらを選ぶかがあります。現実には、無料の食事など存在しません。すべての無料またはオープンソースソフトウェアはリスクを伴います:そのソフトウェアを作成したコミュニティにビジネスを賭けることになります。最も活発なコミュニティでさえ、方向転換し、最大の企業の特定のニーズを無視して再優先する可能性があります。そうなった場合どうしますか?コードの開発や特殊化を自分で引き受けるか、有料のサポートに頼るか、ソフトウェアの置き換えにお金を使うことになります。最後の手段として、コードの能力に要件を合わせることを余儀なくされるかもしれません。どのような決定を下しても、結果は同じです:時間、お金、リソースの浪費です。
Chemaxonのアプローチ
互換性
Chemaxonは、この問題を深く理解しています。後方互換性を確保するために多大な努力を払っています。25年以上前に統合用に作成したコード例は、最新技術でも今日も動作しています。日々時間の流れと戦い、システム内のコンポーネントをアップグレードしても、社内ソリューションの持続可能性を心配することなく利用できるようにしています。1998年にMarvinを使用し始めた場合でも、最新のオペレーティングシステムやJavaバージョンで今日も使用することができます。
進化するニーズへの適応
私たちは古いソフトウェアを生かし続けるだけでなく、今日のニーズにより適した新しいソリューションも作成しています。Javaがブラウザから禁止されたとき、私たちはMarvinJSを準備していました。業界の多くが社内システムをクラウドに移行しようとする中で、私たちはこのプロセスをサポートし続けています。現在、誰もがサーバーレスソリューションに向かっていますが、私たちは既製のコンテナ化ソリューションを用意しています。
そしてさらに、未来のSaaSに向けた取り組みもすでに始めています。