個人個人の最適解
私は仕事柄、特定のユーザーに向けたプログラムやシステムを作成します。私自身のレベルはさておき、プロジェクトとして最初から運用・保守に至るまで、ほとんどのフェイズに関連できるようこなしてきているつもりでいます。
「受託開発」と呼ばれる様式ですが、この種類の案件に携わっていると感じるなかなかに難しい問題があります。それは、どのような技術をどこまで適用させて利用してもらうか、という点です。
私は今までのコラムでも、比較的多く最新の技術に触れていかなくてはいけない、というスタンスで書いてきました。その考えはまったくぶれないのですが、「そこで身に付けた技術や知識を、実際の業務においてどこまで適用するか」「どのように適用させるか」という部分では毎回、頭を悩ませています。
業務上では、多種多様な制約が存在します。例えばそれは費用であったり、人員であったり、はたまた政治的な制約というのも発生します。往々にして、それらは複合的に発生することが多いため、案件ごとに固有の難しさがあると思います。
例えば、複数人で開発を行う場合、技術的な話題として「ある時点で自分は利用できるが、他の人間が習得していない技術を使うかどうか」という問題があります。
この問題に対する方針は数多くあります。1つは「他の人間に習得してもらうよう、時間を取って教える方法」です。将来的なことを考えるとベストな方法ですが、他の要因が関連すると、ベストどころかワーストになることもあり得ます。
例えば、時間的な制限がある場合。短期間の中で成し遂げなければならない場合、プロジェクトに参加するメンバーの技術レベルの向上は、非常に難しいです。仕事としてシステム開発を行うのですから当然、納期は守らなければなりません。そうなると、「どのあたりでバランスを取るか」という判断が求められます。メンバーのレベルも上げつつ納期も守る、そのためにはどこまでをレベル上げに費やせるだろうかといった点をよく考える必要があります。
また、PCの習熟度が低めのユーザー向けシステムの操作方法をキーボード主体にしてしまうと、良くないことだってあります。「○○管理は一般的にこのような操作がメジャーです!」という意を聞く機会もありますが、「業界として一般的かどうか」は、実際に利用するユーザーにとってはそれほど重要度が高くない場合があります。たとえ、ある操作法が一般的で非常に当たり前のものであっても、そのユーザーにとっては不向きであることも多々あります。反対に、長い期間PCを利用してきているユーザーに対しては、キーボード操作のみで入力処理が完結できる方が好ましいケースは多いです。
新しい技術を導入する場合、過去の技術のリメイクを利用する場合なども、同様です。対象となる相手に適しているものでなければ、たとえ多数の人間が利用していようと、相手にとってはそれほど価値が高くないものになりえます。
「新しいから使う」のではなく「適しているから使う」、でなければいけないのだと思います。
このように、私達エンジニアの仕事では、「唯一の絶対的な解」があるケースはほとんどありません。どのような問題に対しても数多くの方法が存在し、「こうでなくてはならない」という型はほぼありません。
プログラミングにしても、システムの全体像にしても、対応・対処方法は星の数ほどあります。理想的なシステムアーキテクチャと呼ばれる形はありますが、それが相手に適しているかというのはまた違う問題です。場合によっては、「あえて理想的ではない形を取る」ことが望ましい場合も必ずあります。
もちろん、「あえて」という言葉を盾にし、思考を放棄してしまうのは良くありません。良いことではない、どころではなく、やってはいけないことです。言い訳にするのではなく、考えに考え抜いた末に「あえて」という言葉のもと、理想的な形から変化させたものを提供するのが大切です。
私達エンジニアとしては、相手に適しているシステムを提供するために、多くの技術や多くの知識に触れる必要があるのではないでしょうか。いつ利用できるかは分かりませんが、その時になって困るということをできるだけ減らすためにも、常日ごろからの努力というのが、後になって結果の差としてあらわれてくるのだと思います。
コメント
Jitta
> 「新しいから使う」のではなく「適しているから使う」、でなければいけないのだと思います。
「適している」というのも、難しいですね。
実際にあったことですが。あるお客様の所では、キャラクター ベースのユーザー インターフェイスが長く使われていました。そこに、パソコンでシステムをリプレースしよう、ということになりました。お客様の担当者(といっても、情報システム部門の担当者で、エンド ユーザーの担当者ではない)は、「使う人は年のいった頭の固い人だから、今まで通りのインターフェイスで良いですよ」と、おっしゃったそうです。そんな使いにくいインターフェイスではなく、Windows としての標準的なインターフェイスを提案したのですが、受け入れてもらえず…。が、完成後にお客様の担当者が異動になり、新しい担当者から「どうしてこんな使いにくい画面なのですか?」といわれ、現場でも「使いにくい」といわれ。。。
確かに、受注当時の担当者や、考えていた使用者にとっては「適している」インターフェイスのはずですが、1年足らずで「適していない」インターフェイスになってしまったようです。
Ahf
Jitta さんコメントありがとうございます。
言われる通り「適している」というのは、非常に個々人で変化してしまう要素ですので大変難しいところだと思います。
私も似たような事例を体験していますので特に、
>受注当時の担当者や、考えていた使用者にとっては「適している」インターフェイス
このあたりがものすごくよくわかります。
理想としては色々思うところは出てくるのですが(UIを簡単に交換できるようにとか)、現実的にはまだまだ難しいのが実際だと思います。それでも開発側としては
「今いる人達に合わせるか」
「今後に合わせるか」
等々、できるだけ選択肢を用意してユーザーと考えていかなくてはいけないですよね。
永遠に考え続ける必要のある問題の一つなのかな、とも思います。