7

これがすでにカバーされている場合、または本当にwikiに属していると思われる場合はお詫び申し上げます.

私は、バイオサイエンス業界向けのマイクロアレイ印刷機を製造する会社のソフトウェア開発者です。私は主に、C++ での GUI 開発を介してさまざまなハードウェア (空気圧、油圧、ステッピング モーター、センサーなど) とのインターフェイスに関与し、サンプルを吸引してマイクロ アレイ スライドに印刷します。

会社に入社したとき、ハードウェア関連の問題が発生すると、セットアップ全体がフリーズすることに気付きました。ハードウェア/ソフトウェア/誤用など、具体的な問題が何であるかについて誰も賢明ではありませんでした.それ以来、私は改善しました.ソフトウェアのタイムアウトと例外処理を導入することで、PLC コマンドが正常に完了しなかった、不適切な FPGA 応答コマンド、その他のさまざまなデッドロック タイプの状態など、発生したハードウェア関連の問題をより適切に特定して対処できるようにすることで、状況をある程度改善します。さらに、ソフトウェアはログを記録するようになりました。特定の問題の要約を表示し、ユーザーに通知してスレッドを正常に終了します。このソフトウェアは組み込まれておらず、シリアル ポートを使用してインターフェイスするだけです。

達成されたことにもかかわらず、非ソフトウェア関係者は、これらの場合、彼らが私に報告している「ソフトウェア」の問題が実際にはソフトウェアの問題ではなく、むしろソフトウェアが問題を報告しているが原因ではないことをまだ十分に理解していません。それ。誤解しないでほしいのですが、大量のレンガのようにソフトウェアのバグを突き止めて、何らかの方法で堅牢性を向上させる方法を検討することほど楽しいことはありません。私はこれらのことについてほとんど第六感を持っているので、システムを十分に知っています.

これは何度説明しても、本当に通じません。彼らは依然として、基本的にハードウェアの問題 (最終的には修正される) をソフトウェアの問題として報告しています。

同様の指差しの経験に耐えた他の人から、そして彼らがそれらに対処するためにどのような方法を使用したかを聞きたい.

更新 ここには、同じ賛美歌のシートからほとんど歌っているいくつかの素晴らしい応答があります。より説明的になります。ハードウェアに障害が発生したときにコマンドを識別してきれいに爆破することが最初の段階だったと思いますが、それでも十分ではありませんでした。次の段階では、素人にとってかなり無意味な PLC コマンドを、より示唆に富むものにマッピングします。「PLC コマンド M71 タイムアウト」が「シリンジ システムの初期化に失敗しました。十分な真空に達していることを確認してください」など...

4

8 に答える 8

2

エラーメッセージに「ハードウェアの問題」というラベルを付けてみてください。あなたの主張を理解するかもしれません。

于 2010-06-17T12:51:38.733 に答える
2

おそらく、ユーザーへのメッセージまたはログファイルのエントリとして問題を報告する場合は、障害のあるハードウェアであることを明示的に明確にする必要があります。

「ステッピングモーターが応答しない」。

残念ながら、人々が見たり操作したりするのはソフトウェアであるため、ソフトウェアすべてであると想定しています。

于 2010-06-17T12:52:36.980 に答える
1

システムにソフトウェア以外の問題などはありません。ソフトウェアは上司であり、上司はツールの失敗を非難することはできません。

基盤となるハードウェアが誤動作している場合は、どのコンポーネントで何が問題になったかをユーザーに報告する必要があります。そうでない場合は、ソフトウェアの問題です。

たとえば、TCP切断は、再接続する必要があることを意味します。FPGAの応答の場合、ユーザーへの入力と出力が正確に何であり、誰が責任を負うのかを正確に伝える必要があります。そうでない場合、これはソフトウェアの問題です。

于 2010-06-17T12:51:54.877 に答える
1

「あなたがしていることがうまくいかない場合は、それをやめて、何か他のことを試してください」

他のコメントで指摘されているように、それはコミュニケーションであり、程度は低いですが、知覚の問題です。人々は、自分がFARを理解していないことをより簡単に非難し、自分自身を犠牲者のように感じさせるでしょう。モーターが火花を散らし、火を放ち、フィーダーにひどく過負荷をかけている人から爆発する可能性があります(すべての警告がその全体に塗りつぶされないようにします)-しかし、そのソフトウェアが応答を停止した場合、問題の原因を推測しますか?

すべてのユーザーにEEおよびCSクラスまたは10を与えることは完全に問題外なので、良好なoleコミュニケーションに頼ってください。その基本は、順不同で4つのこと(主に私の意見)です-あなたが観察すること、あなたが感じること、あなたが考えること、そして何をすべきか。それで、この考えで、私はこの応答を与えることによって実践します。

基盤となるハードウェアの一部が重要な問題である場合、ユーザーはソフトウェアのせいにするのが好きなようです(観察してください)。これについてユーザーに説明しようとするのは非現実的で時間の無駄です。それは彼らの仕事ではなく、ほとんどの人は気にしません(感じます)。あなたが試してみたいと思うかもしれないのは、彼らが使用している部品についてエンジニアリングチームと話し合い、一般的にソフトウェアでより良く機能するものを調べることです。たぶん、考慮されなかった入力のいくつかの制約がありますか?(考えてみてください)ハードウェアを変更するか、ハードウェアをよりよく理解することが、本当の答えであり、より的を絞ったエラーとそれらのユーザーへのフィードバック(完了)である可能性があります。

于 2010-06-17T13:33:43.873 に答える
1

問題を報告しているのは誰ですか?

エンドユーザーなら問題ないと思います。彼らは、自分がやろうとしていることがうまくいかないことを知っているだけです。問題を診断するのはユーザーの責任ではありません。彼らが知っているのは、「私はXをやろうとした、Yが起こるべきだったが、代わりにZが起こった」ということだけです. それ以上はすべてあなたの問題です。

ハードウェア担当者が問題はソフトウェアにあると主張し、ソフトウェア担当者が問題はハードウェアにあると主張している場合、ChrisF や他の人が指摘しているように、エラーをより正確に診断するためにソフトウェアを強化する必要があります。

上層部がハードウェア グループの責任である問題をソフトウェア グループのせいにしていて、他の人の過ちを責めるのにうんざりしているのなら、それは理解できます。繰り返しますが、ソフトウェア担当者として、より正確なエラー メッセージを作成する権限があります。「ステッピングモーターが応答していません」などと明示的に言うことができる場合は、誰かがステッピングモーターの診断を実行するように主張する「道徳的権限」があります。「ハードウェアの問題だと確信しています」というだけでは、議論に勝つことはできません。

于 2010-06-17T13:57:30.540 に答える
1

他のポスターにも同意しますが、別の視点を追加したかったのです。それはもっと悪いかもしれません. 彼らは何日も何週間もハードウェアの問題を解決しようとしていたかもしれませんが、後で誰もが銃の下にいて、修正されていないことに夢中になっていたときに、彼らが間違った問題に対処していたことに気づきました。 、ソフトウェアの問題。ですから、あなたの祝福を数えてください。彼らが常にそれをソフトウェアの問題として分類する場合、少なくともあなたはそれについて知っています. そうして初めて、トラブルシューティングを行ったり、問題解決コードや問題特定コードを追加したりして、システムを少し改善することができます。

また、これは、あらゆる場所のすべてのソフトウェア開発者がこれまでに直面したこととほぼ同じです。ただし、通常はソフトウェア対ユーザーであり、ソフトウェア対ハードウェアではありません。その場合、既知の解決策はないようです。問題に対処する方法はたくさんありますが、それを修正する方法はありません。したがって、失礼にならずにユーザーを非難する方法を説明する頭字語のリストは増え続けています: ID-ten-T エラー、PICNIC、PEBKAC など。

于 2010-06-17T12:59:56.013 に答える
0

まず、ユーザーがエラーメッセージを読ん理解する可能性が高いことを確認します。「FPGAコマンドGS_WIDGIT_FROBが無効な応答0xFF45001Cを返しました。コントローラーID576Dをシャットダウンします。(エラー1Xf)」を表示すると便利な場合があります。ただし、ユーザーは「OK」を読まずに押す可能性があります。彼らがそれを読んだとしても、それは彼らに有用な情報を教えてくれません。いずれにせよ、あなたは電話を受けています。「WidgitFrobberはメンテナンスが必要です」と表示しますが、それでもすべての重要な詳細をどこかに記録すると、呼び出しが少なくなる可能性があります。

第二に、あなたはそれがハードウェアの問題であることを知っているので、それについて何かをしてください!ソフトウェアの電子メールハードウェアサポート、または問題を修正するために必要なものは何でも持ってください。ユーザーがそれを修正するために取るべき行動を決定することを余儀なくされた場合、少なくとも時々それを間違えることは間違いありません。ユーザーが「WidgitFrobberのメンテナンスが必要です。ハードウェアサポートに通知されました(チケット#234)」と表示された場合、ユーザーは何もする必要がないことを知っています。

于 2010-06-17T13:58:13.737 に答える
0

テスト指向の開発 (必ずしも「テスト駆動」を意味するわけではありません) には、リソースを提供する必要があります。

基本的に、すべてのサブシステムには、統合前に問題を特定するための十分に徹底した一連の単体テストが必要です。問題が発生するたびにハードウェアをテストして、それがハードウェアの問題であることを確実に (またはほぼ確実に) 確認できるようにします。これは、ハードウェアを完全にテストできるように設計する必要があることを意味します。

私は大学のロボット チームのインテグレーション ヘッドでしたが、この戦術は非常に役に立ちました。

お役に立てれば。

于 2010-06-17T13:22:12.463 に答える