ソフトウェア開発は、通常、仕様と実装を一致させることを目指します。
このため、仕様を満たすことができるように設計し、その設計に基づいて実装します。そして、実装が仕様を満たしていることをテストで確認し、ズレがあれば実装を修正しますし、仕様に曖昧さがあれば明確化します。
これは仕様&実装ベースのエンジニアリングと呼ぶことができます。
これに対して、現在、ソフトウェアについて議論する際に、ユーザ体験が重視されるようになっています。
また、実際にユーザ体験を形成しているのは、ソフトウェアの実装ではなく振る舞いです。
このため、仕様と実装という枠の外側には、体験と振る舞いが存在します。
従って、体験と振る舞いをベースにした、エクスペリエンス&ビヘイビアエンジニアリングという考え方を追求してみる価値があるのではないかと思います。
リキッドウェア
エクスペリエンス&ビヘイビアエンジニアリングは、従来のソフトウェア開発のやり方では、非現実的なアプローチです。
仕様としてきっちりとした境界や機能分割を行わず、ユーザーの体験を改善していく必要があるためです。ユーザーからの何気ない体験の改善要望が、それまで開発してきたソフトウェアをすべて破棄しなければ実現できないという場合もあり得ます。
一方で、生成AIによるエージェント型のソフトウェア開発自動化が当たり前という時代になれば、ソフトウェア全体の作り直しも許容できます。
また、そのような時代には、開発者がリリースしたソフトウェアにAIエンジニアチャットボットを付けることで、ユーザーごとの好みに合わせてUIを改変することができるリキッドウェアの時代になると考えられます。
リキッドウェアとは、ソフトウェアよりももっと柔軟で、それぞれのユーザーにピッタリとフィットするという意味です。
この自動開発とリキッドウェアの時代になれば、仕様&実装というエンジニアリングパラダイムは時代遅れになるでしょう。
そして、エクスペリエンス&ビヘイビアエンジニアリングというパラダイムへと移行していきます。
ビヘイビアとは何か
端的に言えば、ビヘイビアとは時間変化する状態です。
そしてビヘイビアをテストするということは、この時間変化する状態をテストするということに他なりません。
そして、ビヘイビアのテストとは、どのように状態遷移するかを定めた仕様と合致することの確認ではありません。ユーザーの体験の良し悪しによって、ビヘイビアはテストされます。
もちろん、ユーザーや開発者が意図していない処理をするバグがあれば、それもユーザーの体験を大きく損なうため、ビヘイビアのテストには機能適合性や機能妥当性の確認も含まれます。
そうした基本的な機能要件は満たした上で、ユーザーの体験という観点で、高品質なビヘイビアであることがテストされるのです。
究極のエクスペリエンス
人間にとって究極のユーザーエクスペリエンスは、好調なときの身体の制御です。
考えてもみてください。私たちは数十キログラムもある重さの、複雑であるのに制限や制約の多い身体を、毎日制御して、目的に沿った活動に使っています。
こんなに重たく、複雑で、制限や制約の多いシステムを制御して、目的の活動をしようと思ったら、通常、相当にエクスペリエンスが悪くなるはずです。
しかし、私たちは体調が悪くさえなければ、この重たくて複雑で制限や制約の多い身体を、まるで重さがないかのように軽々と動かし、非常にシンプルな機構のように迷いなく操り、制限や制約も存在していないかのように気にも留めません。
これが、究極のエクスペリエンスです。
高品質なビヘイビアを追求していけば、身体と同じレベルのエクスペリエンスを提供できるようになる可能性があります。
つまり、たとえ処理に時間がかかり、機能が複雑で、制限や制約が多いシステムであっても、全くストレスのないリキッドウェアが実現できることになります。
さいごに
究極のリキッドウェアは、身体と同様のエクスペリエンスを提供します。
そのようなリキッドウェアは、私たちにとって、身体のようなものになります。
究極のリキッドウェアが増えたり、その機能が強化されるたびに、あたかも私たちの身体が拡張されていくように感じられるでしょう。