サービス自動化のインターフェース

2021/07/11

アウトプットの品質は、バラつきによって測れる。
バラつきを狭い範囲に制御するには、プロセスの多くを自動化し、パラメータの組み合わせを少数に抑えることが有効と言える。

“少数"の適切な水準は未知ではあるが、数十、数百、数千というオーダーに分類整理できる。
経験的に、数百のバリエーションを持つプロセスセットは制御できているとは言いがたく、無秩序な状態に近い。
よって、10〜100パターンの自動プロセスを構築することが、高品質なサービスを持続的に提供する前提条件となるだろう。

個別のプロセスは通称「タスク」と呼ばれ、請求決済などの業務手続きや、ソフトウェアビルドなどの技術処理といった広範な作業ターゲットを含む。

インターフェース

以上の条件から、サービス自動化のインターフェースとはタスク起動のインターフェースであり、100種類程度のタスクを的確に素早く選択できる手段を考えれば良い。

無数の試行錯誤から結論的に言えば、100種オーダーの選択型インターフェースとしては、マウス主体のGUIではなくキーボード入力可能なCUIの方が優れている。

一般的なキーボードは、アルファベット26文字と10種類の数字、その他記号類を直接入力できる。
たとえば、このうち数字選択のインターフェースを考えると、1回の入力につき0〜9の10種のタスクを指定できる。

選択メニューの階層化により、2回入力するケースで100種(10x10)、3回入力すると1,000種(10x10x10)の選択インターフェースとなる。
これは従来からあるコンテクストメニューだが、100種類オーダーのタスク選択を効率的に実装可能な方式と再評価できる。

現実的にはコンテキストメニューは2ストローク以降がスパースになるため、3ストロークで100種前後のメニューを提供する実装が現実的な姿になるだろう。

数値入力に関する補足

数値入力に限定するのは、スマートデバイスをサポートする想定による。
現在普及しているQWERTY式ハードキーボードの文字種をフルに割り当てれば、もちろんストロークは減らせる。 そして、ハードキーボードを利用できる環境では、よりスムーズなインターフェースを提供できる可能性がある。

スマートフォンなどのデバイスをサポートする場合には、画面上に描画されるソフトキーボードが前提となる。ソフトキーボードは人間の指の可動範囲の制約を受けている。
ソフトキーボードの入力正確性はキーあたりの描画面積の広さに依存しており、文字種を増やすほど不安定さが増す。

これらの制約条件を総合すると、数値入力を主体とする3ストローク程度のメニュー選択がバランスがとれている。

実装例「tkn-runner」

コンセプト実装として、 tkn-runnerというオープンソースツールを作成した。
これは自動実行ツールの一種であるTektonのCLIに、数値入力インターフェースを実装したプラグインだ。

プロセス自動化についてはTektonが拡張性の高いフレームワークを提供しており、そもそもの入力インターフェースが2ストロークになっている。

Tektonが2ストローク構造(Pipeline/PipelineRun)になっているのは、タスク再利用の観点で進歩してきたものであり、ここで検討したインターフェースとマッチしているのは偶然である。

2ストローク"M x N"のMとNを増やす(たとえばアルファベットを加えた36x36への拡張)はTektonの基本機能の範囲で自然だが、3ストロークに拡張するにはプラグイン実装の努力が必要、という関係になる。

チャットボットとの関係

従来の周辺技術として、チャットボット・インターフェースがある。
じっさいにTekton上の実装は、Jenkins向けチャットボットのリプレースとして進めている。

チャットボットには明確なデザインを見出せないが、ここで検討した10x10x10入力方式は、チャットボットのうち、チャットとボットの要素を除去した方式と言える。

チャットボットは人格を想起させるような対話装飾をテーマとしている。事務的なCLIと比較評価すると、サービス運用プロセスでは人格的装飾は純粋にノイズの可能性があると捉えている。

サービス品質の制御

以上、サービス高品質化を目的とするインターフェース設計を概観した。
これはプロセス数のバリエーションに強い制約をかけ、自動化するアプローチの要素技術と言える。

対比すべきアプローチは、現場の担当者に任せ、ドキュメント化により人・人間で継承する従来方式である。
どちらの方式が優れているのかは先験的ではない。言えることは、従来のアプローチが各現場の努力にも関わらず実際問題として相当バラついている、ということだ。

有意義な方向にアウトプットを均質化し、そのバリエーションが数百オーダーでどの程度の活動目的をカバーできるのは、個別のタスク実装の洗練にかかっている。

⁋ 2021/07/11↻ 2021/07/11