03-ユーザが何をするかを観察する(あなたはユーザではない)

プログラマが知るべき97のこと」の3つ目は、ユーザインターフェイス・ユーザ価値・要求定義などに関わる話です。まとめれば、「開発者はユーザではないため開発者目線でアプリケーションを開発しがちだが、それは間違いであり、ユーザにとって使いやすく、本当にやりたいことを実現できていないケースが多い。ユーザが何をどうして欲しいかを知るには想像しても仕方ないので直接観察する事がベストだ」という事です。
ここで出てきた心理学用語「偽の合意効果」は気をつけてはいるものの改めて言われはっとしました。心理学の用語で特に集団心理の強い日本では陥りやすいように思えます。アンケートなどを取るにしても、公開して行うと最初に投票した人の所に票が集まりがちです。AとBがあったとしてどちらも甲乙付けがたい(もしくは付ける価値がないと判断)場合、先に誰かがAを選ぶとAを選ぶようは状況はよく見かけます。偽の合意効果はこの逆のパターンで、先に何人かがAを選択した場合、残りの人もAを選ぶだろうと考えてしまう状況でしょう。それは日本において同調圧力として現れる事もあります。
ソフトウェア開発の話に戻すと、ユーザ不在で議論が行われるのは日常茶飯事です。残念な事に本当に利用するユーザと直接の対話を行ってのソフトウェア開発を経験した事のあるエンジニアはごく希であることが現実です。自分も幾つかの特殊な小粒案件以外ではありません。直接ヒアリングしたいと提案しても「無理。できない。ありえない」となるわけです。そうなると、ユーザはどんな状況で業務を行い何が必要とされているのか?どのくらいのスキルレベルの人が使うのか?マシンスペックは?と想像力を働かせざるを得ないわけです。最近の気付きとしては、そんな想像力のスキルが求められる状況が基本というのがオカシイという事です。きのこ本にもあるようにエンジニアがユーザと対話するのが自然ならば、想像力を働かせるのではなく実際に見て観察し答えを導けるわけです。その方が、仮定を立てて想像するよりも確実で早く、なにより簡単ですから。
とはいえ、悲しいことに日本のソフトウェア開発の現場では「ユーザが何をするかを観察する」ことは難しく、「ユーザが何をするかを想像する」スキルが重要かと思います。コミュニケーションが重要とか言っておきながら、ユーザとのコミュニケーションは禁止とか酷い話ですよね。

プログラマが知るべき97のこと

プログラマが知るべき97のこと