このテーマについて読んだ優れた本には、Why Programs Failがあります。これは、科学的手法を適用してバグを特定して解決することから、デルタデバッグに至るまで、バグを見つけるためのさまざまな戦略を概説しています。この本のもう1つの興味深い部分は、「バグ」という用語がなくなることです。Zellerのアプローチは次のとおりです。
(1)プログラマーがコードに欠陥を作成します。(2)欠陥は感染を引き起こします(3)感染は広がります(4)感染は失敗を引き起こします。
デバッグスキルを向上させる場合は、この本を強くお勧めします。
私自身の個人的な経験では、アプリケーションに多くのバグを発見しましたが、管理者は単に新しい機能を引き出すために私たちを先に押します。「このバグを自分で見つけたが、クライアントはまだ気づいていないので、気付くまでそのままにしておく」とよく耳にします。バグを積極的に修正するのではなく、事後対応することは非常に悪い考えだと思います悪循環に陥り、多大なストレスと燃え尽きを招き、最終的には欠陥のあるシステムになります。
バグが見つかった場合、コミュニケーションも別の要因です。電子メールを送信したり、バグトラッカーに文書化することは問題ありませんが、私自身の経験では、他の開発者は同様のバグを見つけ、コードを修正するためにあなたが置いたソリューションを再利用するのではなく)、独自のバージョンを追加するため、コードに5つの異なるソリューションがあり、結果として肥大化して混乱しているように見えます。そのため、バグを修正するときは、数人が修正をレビューし、同様の問題を修正し、対処するための優れた戦略を見つけた場合にフィードバックを提供するようにしてください。
limistは、バグの修正に関する興味深い資料が載っているThe Pragmatic Programmerという本に言及しました。前の段落で示した例を使用して、私はこれを見ていきます:Software Entrophy、ここでは壊れた未亡人のアナロジーが使用されています。2つの壊れたウィンドウが表示される場合、積極的な姿勢をとらない限り、チームはそれを修正することに無関心になる可能性があります。