BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース モデル化可能開発: カスタムツールがシステムを説明可能にする方法

モデル化可能開発: カスタムツールがシステムを説明可能にする方法

原文(投稿日:2022/02/03)へのリンク

モデル化可能開発 (Moldable Development) は、すべてのソフトウェア開発の問題に対してカスタムツールを構築するためのプログラミング方法だ。Glamorous Toolkit は、カスタムツールのモデル化に使用できるモデル化可能開発環境だ。

Tudor Girba 氏は、2021年11月の QCon Plus でモデル化可能開発について話した。

Girba 氏は、モデル化可能開発は、システムを理解しようとする、今日のソフトウェア開発における唯一最大の費用に対処するものだと述べた:

今日の開発者だけでも、通常、時間の半分以上を手作業でテキストアーティファクトを読んで、次に何をすべきかを決定することに費やしています。システムを要約するカスタムツールを作成することにより、この作業の大部分を最適化します。これにより、より迅速かつ自信を持って意思決定を行うことができます。データサイエンスに似ていますが、これはソフトウェアのためのものです。

モデル化可能開発を経済的に実行可能にするためには、カスタムツールを安価にモデル化できる環境が必要だ。Glamorous Toolkit は無料でオープンソースであり、Girba 氏が説明したように、多くの入力ソースで動作するように作られている:

これを使って Java、JavaScript、Ruby などさまざまな言語で記述されたコードについて推論します。同時に、それぞれのページが多言語ノートブックでもあるナレッジマネジメントプラットフォームでもあります。

Glamorous Toolkit は、モデル化可能開発をフォローして開発されているため、広範なケーススタディでもある。たとえば、ディストリビューションには、環境自体の開発を支援するために構築された 1,000 を超えるカスタムの小さなツールがある。

Girba 氏によると、モデル化可能開発は、ソフトウェア開発における競争優位性の主要な源泉になる可能性があるとのことだ:

私は、5〜10年以内に企業がシステムの内部についての物語を作成する技術的なストーリーテラーを雇うことを期待しています。私はこれらの物語が売り込みや公開マーケティング資料になることさえ期待しています。

InfoQ はモデル化可能開発について Tudor Girba 氏にインタービューした。

InfoQ: モデル化可能開発とはどのようなイメージですか?

Tudor Girba 氏: QCon Plus 2021 で示した例を見てみましょう。コンポーネント A で定義されているフィーチャートグルをコンポーネント B で使用されると、これら2つのコンポーネント間には依存関係が生じます。ただし、この依存関係は、トグルが表現されているフレームワークをあなたが理解している場合だけ見ることができます。したがって、これらの依存関係に関する図を自動的に描画するには、システムの詳細を知った後にツールを作成する必要があります。

それは一例です。システムで最も興味深い問題は、コンテキストの詳細に関連しており、カスタムツールの恩恵を受けることができます。このようなツールは、クエリ、視覚化、さらにはインタラクティブなブラウザがそうかも知れません。そして、それらは、ソースコード、構成、ログ、プロダクションのイベント、データベースのデータ … システムを取り巻くあらゆるものに関するものである可能性があります。

InfoQ: Glamorous Toolkit の使用例をいくつか挙げていただけますか?

Girba 氏: 最初に少し背景を説明します。Feenk では、顧客の困難な問題を解決することで資金を調達しています。私たちは、既存のシステムで何らかの危機に直面した顧客と、競争優位性を求めている顧客の2種類の顧客と協力しています。

変更が必要なレガシーシステムを使用しているチームと共に仕事をする場合、システムの可視性が不足していることが課題になります。カスタムビューはシステムを要約し、問題が明らかになると、通常、解決策がすぐに続きます。

同じアプローチを、未知の API やデータソースの探索に適用できます。また、新しいシステムを作る場合にも役立ちます。たとえば、システム内のオブジェクトを視覚化することで、技術者以外の人が理解できる方法でユビキタス言語を示したイメージを作ることができます。

これらの一見異なる領域すべてで Glamorous Toolkit を使ってカスタム環境を作成します。そして、これらすべての場合において、カスタムビューは、技術者と非技術者の間のコミュニケーションを可能にし、それが新しいフィードバックループにつながります。

InfoQ: 新しいフィードバックループとはどういう意味ですか?

Girba 氏: テストがコードになると、人々はより複雑なシステムを作成できるようにするための新しいフィードバックループが導入されました。インフラストラクチャがコードになると、新しいフィードバックループにより、企業はこれまで不可能だった新しい種類の価値を生み出すことができました。今度は、ツールをコードにして、それぞれのシステムを特定の詳細にプログラムできるようにします。コンテキストツールを使用すると、システムについて深い会話をすることができ、システムを操作する方法が劇的に向上します。

InfoQ: モデル化可能開発はどこでどのように適用したらよいでしょうか? 欠点は何でしょうか?

Girba 氏: 私たちはすべての開発の問題にそれを適用します。クレイジーに聞こえるかもしれませんが、目の前の問題が快適でないと感じるときはいつでも、私たちは立ち止まって、問題が美しく感じるまでカスタムツールを作成し、その後解決します。

欠点については … 現時点では、モデル化可能開発を実践していない場合の欠点が考えられます。人々は、手当たり次第にツールを構築することは無駄だと言うかもしれません。興味深いことに、私たちはテストについて同様の会話をしていました。もちろん、やり過ぎは想像できます。そのため、ツールの経済性を理解することが重要です。どのツールをいつ構築するかは、確かに関連する関心事です。ただし、これらのトレードオフを理解するには、まずツールを作成する必要があります。それを回避する方法はありません。

そして、それをやりすぎることは想像できますが、現時点では、その問題からはほど遠いと思います。問題は、予算がすでに割り当てられているということです。どのように使うかはあなた次第です。読み続けるか、読み上げを行うツールを作成することができます。つまり、ツールの構築が高価費用だと思われる場合は、ツールを構築しないようにしてください。

InfoQ: モデル化可能開発はどのように採用すべきでしょうか?

Girba 氏: 取ることができる最も簡単なステップは、システムについてどのように推論するかについて話し始めることです。それを継続的に行うと、すぐにあなたの周りの新しい機会に気づき始めるでしょう。

さらに深く掘り下げるには、モデル化可能開発における2つの役割について学ぶ必要があります。ファシリテーターは、データサイエンティストと同じようにツールを構築する方法を知っています。ステークホルダーは問題を所有し、適切な情報が与えられたときに行動することができます。開発者から CEO まで、システムに関与するすべての人が積極的なステークホルダーになることができ、またそうあるべきです。2つのうち、トレーニングが最も難しいのはステークホルダーですが、最初のカスタムツールは安価に作成することに焦点を当てる必要があります。これは、基本的に、テクノロジーの一部といくつかのパターンを学ぶことになります。Glamorous Toolkit は、何が可能かを探るのに適しています。

カスタムツールを作成して意思決定に組み込むことができれば、作業の仕方を変更するときに真の価値が引き出されます。

InfoQ: 日常業務でモデル化可能開発を利用することから何を学びましたか?

Girba 氏: 10年以上経った今でも、新しい驚くべきことに気づいています。これは、スペースが広く、未踏であることを示しているだけです。私たちは会話の始まりしかないと確信しています。また、システムの内部との関係についてグローバルな会話を開始すると (そして開始しなければなりません)、イノベーションの新しい波が可能になると確信しています。

作者について

この記事に星をつける

おすすめ度
スタイル

BT