設計上の「バグ」は悪い兆候ですか?


29

ユーザーが設計上のものについてバグレポートを提出するのは悪い兆候ですか

それは通常、アプリケーションが混乱したり不明瞭であることを意味しますか、それとも特に明記しない限り、1回限りのユーザーの間違いまでそれをチョークする必要がありますか?

(実際にはそのような報告はありません。これは、設計上の「バグ」の存在が悪いことであるかどうかについての純粋に仮説的な質問です。)


19
おそらくロータスノーツのプログラマーの何人かはコメントすることを望んでいるでしょう。なぜなら、標準的な返信は「バグではなく、あなたが理解できない機能」だからです。
ジェームズアンダーソン

5
開発者に与えられたユーザー要件が、ユーザーが求めていると思うものと一致しないことを示唆しています。
-temptar

7
@temptar「それは私が求めたものですが、それは私が望んでいたものではありません。」
StuperUser

5
最近、正確に、具体的には仕様で明示的に記述された(および仕様フェーズで議論された)動作のために、「バグ」ワークアイテムが割り当てられました。動作はユーザーの観点からは非常に予想外である可能性がありますが(他の場所に注意を払った特定の設定は無視されていました)、仕様が文字通り「時間を節約するために今のところそれを無視しましょう」と書かれている場合、私にとってそれはバグではなく、変更要求です。確かに、それを変更したい場合には良いケースを作ることができますが、バグとは呼ばないでください
CVn

7
@Dunk:夏時間の存在を顧客に納得させることができなかったため、毎日24時間を想定したシステムを実装しました。彼らは、25時間の日があるとは信じていません。それはプログラムのバグですか?
–MSalters

回答:


54

それは悪い兆候ですか?調査する価値がある警告だと思いますが、それは必ず起こると思います。

人々が何らかのフィードバックを私に送信するとき、私はそれを3つのバケットにフィルタリングしようとします:

  • 機能リクエスト
  • ミスコミュニケーション

何かが明らかに道に動作しない場合にバグがあり、あなたが期待する、また道ユーザーが期待します。たとえば、私の名前を尋ねられ、「Scott」と入力してEnterキーを押し、「Hi Joe!」と言いました。

機能リクエスト

これは、「これについては一度も話したことがないが、プログラムはマウスジェスチャから左利きだと推測し、[OK]ボタンを画面の左側に移動できますか?」のようなものです。これは、現在の動作があなたとユーザーの両方期待に一致するが、期待を変えたい場合です。

ミスコミュニケーション

とき、これは、あなたがシナリオから1つの成果を期待するだろうが、ユーザーは、異なる結果を期待しています。期待を伝えていないだけで機能要求になった場合もありますが、そうだと思っていました。あなたの期待が間違っていることが証明された場合、これはバグになることがあります。

ただし、多くの場合、ユーザーにはないという知識があります。「この画面で、自分の姓と名が同じレコードを2回追加できます。これは明らかにバグです!」あなたの応答は、「同じ姓と名を持つ人が世界中にたくさんいるので、その組み合わせを一意にする必要はありません。カスタマーサービスは、類似した名前と住所の重複を検出したと判断し、手動で確認するように依頼します。」

そのため、すべてのバグレポートを読む必要がありますが、ほとんどの複雑なシステムには、実際には単なる機能要求であるか、要件の誤った伝達であるバグレポートがあります。現実の世界の根本的な複雑さを理解していないことが、おそらくこれらの問題の最大の原因です。


3
誤った伝達には、伝達および合意された期待の誤った記憶(または単純な忘却)も含まれます。
ピーターテイラー

1
大きな違いはありますが、できればアプリケーションは誤通信を説明しようとするべきだと思います。同じ名前の複数のユーザーに対して、アプリは「これは新しいJohn Smithであると確信していません」というオプションを付けて、「これらの1つではないことを確認しました」
アレックスアンドロノフ

@Alex Andronov-誤解は、実行するアクションがないことを意味するものではありません。ドキュメント、ツールチップなどを変更する、トレーニング資料を更新する、または場合によっては簡単な説明をして先に進むことです。
スコットホイットロック

7

これはこれまでの回答では触れられていなかったため、無知なユーザーベースの兆候である可能性もあると付け加えます。私は、「無知」という言葉を軽con的または卑wayな方法で使用せず、彼らの領域またはソフトウェア自体の複雑さに関する適切な知識や教育がないことを単に表現する方法として使用します。

ほとんどのユーザーは、特定の要件を満たすためにソフトウェアがどれほど複雑であるかを認識していません。努力の80%の効果の一部は、機能の20%のみになります(フリンジおよび例外の場合)。

彼らは、ソフトウェアが本質的に特定の方法で動作する必要がある理由を理解していないことがあり、多くの場合、多数の欠陥やデータの破損などを防ぎます...

これは、明確で簡潔な文書化とコミュニケーションにより改善されるため、心配する必要はありません。


2
+1ですが、複雑と複雑の違いを調べてください...ソフトウェアは複雑である必要はありませんが、非常に複雑な場合がよくあります。
マルジャンヴェネマ

これは非常に真実です。私が遭遇する最も一般的なケースは、ユーザーが多対1の関係と多対多の関係の違いを認識していないことです。よく寄せられるリクエストは、「レポートのヘッダーに注文番号を表示してもらえますか?」です。そして、私が説明しなければならないのは、ケースの約95%で作業対象の注文番号は1つだけですが、クエリに複数の注文のデータが含まれる場合が多いことです。次に、ヘッダーのすべての注文番号をコンマで区切ってリストするか、レポートの各詳細行に注文番号を表示するかを尋ねる必要がありますか?
スコットホイットロック

@ScottWhitlockはい、同じことです。優れた開発者またはビジネスアナリストは、顧客が求めることを行うだけでなく、そもそもなぜそうした要求をしたのかについて、彼らが経験している中核的な問題を見つけ出そうとするべきです。問題を特定したら、適切なソリューションを特定し、適切な要件またはユーザーストーリーを記述できます。
maple_shaft

5

その分野の専門家であるユーザーがいる場合、大きな問題が発生する可能性があります。設計上、あなたのソフトウェアを見つける会計士が一般的な会計手順に従っていない、またはあなたが間違った式を持っていることを発見したエンジニアを想像してください。これが正しいかどうかを確認するために調査するのはそれほど難しくないはずです。必要に応じて、再設計して修正してください。

特定のUI機能や、通貨記号やその他の書式を設定する必要があると考えられるフィールドに関する意見は、少なくともフィードバックが得られるまで検討する必要があります。これを研究することはもう少し難しいかもしれません。


1
それでは、単一の答えはありません。ケースバイケースで評価する必要があります。私もそう思いました。
Maxpm

5

私の経験による設計上のバグは、ユースケースが実際のユーザーに適合しないことを意味します。ユースケースに実際のユーザーを使用することについて読んでみてください(名前とサムネイルの説明を与えるだけで、ユースケースの品質が向上します)。

著名なOSベンダーが「この動作は仕様によるものだ」と言うとき、彼らは一般に実装の容易さや商業的優位性を念頭に置いていました。そうでない場合は、ユーザーの実際のスキルセットとソフトウェアとの関係を調べてみてください。彼らは一日中それを使用していますか?楽しみですか?TPSフォームを置き換えたため、週に1回ですか?


5

UIは最小の驚きの原則に従う必要があります-設計どおりに機能する機能に関するバグレポートが繰り返されるということは、この原則が正しく守られていないことを示しています。


3
または、分割されたユーザーグループがあること。たとえば、webappがデスクトップを模倣しているとします。ウィンドウを閉じるとプログラムが閉じられると思いますか?Windowsユーザーの場合はYes、Macユーザーの場合はNo。
ケプラ

1
@ケプラ-あなたは良い点を挙げます。すべての人を満足させることはできないため、ここで説明したような「バグ」の場合は、「修正」後に以前よりも多くのバグレポートが得られないようにするための調査が必要です。
ジョリスティマーマンズ

1
たぶん、しかし「何百人もの人々がこれについてバグを提出した!」というデータを引用することは、はるかに強力です。少数の狂暴なユーザーが、あなたが彼らの個人的な「最低の驚きの原理」の個人的な解釈に違反したことをあなたに告げることであり、彼らは驚いています。ある人の「驚き」は別の人の「素直な」ものなので、私は後者に少し疲れています。
ジェフアトウッド

@Jeff Atwood-sayingにあるように、「1つのツバメは夏を作らない」、「1つのバグレポートは設計エラーを意味しない」。機能である何かに関する単一のバグレポートは再設計の原因ではなく、共通の機能に関するいくつかのレポートでさえ、ユーザーの大部分が「修正」なしでは満足しないことを必ずしも意味しません。特に、元のリリースがすでに人気があり、人々がそれを「そのまま」使用することに慣れている場合。
ジョリスティマーマンズ

2

バグには2種類あります。機能がプログラマの意図と一致しないか、機能が要件と一致しません。プログラマは、前者に焦点を当てて後者を犠牲にする傾向があります。簡単に言えば、ユーザーが多くの「設計上のバグ」を報告している場合、あなたの要求はあなたが思っているものではありません。


2

必ずしも。報告されたバグは、最初に定義された範囲外のソフトウェアを使用している可能性があります。A、B、Cを実行するように設計されたソフトウェアを考えてみてください(簡単な例では、線、三角形、長方形を描画します)。Dが論理的な次のステップ(五角形など)である場合、ユーザーはDがそれを行うべきであると仮定する場合があり、そうしないことはバグです。しかし、これが元の範囲外であれば、それはバグではありません。代わりに、設計の見落とし(バグ)、仕様の灰色の領域、または開発者とユーザーが行った別の仮定のセットが考えられます。

(編集-@Marjan Venemaの提案に従って、答えに私のコメントを追加しました。


私はそれがバグレポートとしてマークされているのを本当に見ていません。提案や機能リクエストに似ています。(ただし、一部のバグ追跡システムでは、とにかく1つとしてカウントされる場合があります。)
Maxpm

1
私はほとんどの場合同意しますが、それは設計の見落とし(バグ)、仕様の灰色の領域、または開発者とユーザーによって行われた異なる仮定のセットを意味します。
ジェームズマクラウド

1
ジェームズ、そのコメントを回答に追加すると、回答全体が良くなります。
マルジャンヴェネマ

1

主にデザインが一般的ではなく、ユーザーの要件が完全に理解/分析されていないという事実による悪い兆候だと思います。

デザインには2つのカテゴリがあります-偶然のデザイン。-意図的な設計。

偶然の設計は、このような問題を頻繁に引き起こし、維持できません。


1

ユーザーの「無知」に関するmaple_shaftの回答に追加したいと思います。また、ユーザーの90%が自分の経験とシステムの使用方法のみを気にすることにも留意する必要があります。彼らは他のユーザーを気にしません、なぜ彼らはそうすべきですか?デザイナー/開発者としての私たちの仕事は、さまざまな種類のユーザーからの意見を取り入れ、すべての人にできるだけ適したものを作ることです。ほとんどの場合、誰にとっても最適なソリューションを作成することはできません。

しかしもちろん、ユーザーからのフィードバックを読んで評価する必要があります!結局のところ、彼らはあなたの創造物を使用する人々です!


0

バグリクエストを送信するユーザーは通常、設計について相談されなかったため、意図的に設計を決定したバグと見なすことは驚くことではありません。ユーザーにとって、期待どおりに機能しないものはすべてバグです。

多くの場合、問題はBAまたはPMが実際のユーザーではなくマネージャーからのみ要件を取得したという兆候であることがわかりました。多くの場合、管理者がシステムに期待することは、データを入力する人が実際に必要とするものとは大きく異なります。私は実際のユーザーから直接データを収集するように教えられましたが、最近出会ったほとんどのBAはマネージャー(そして一般的には比較的上級のマネージャー)にしか話しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.