プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

プログラマにバグを直してもらう方法


ソフトウェアに問題が発生した。できるだけ早く直してほしいと思いますよね。それが重大な問題であればあるほど。


でも、現実には必ずしもプログラムをすぐに直してもらえるかどうか分かりません。いえ、むしろ直してくれるのであればラッキーな場合も多いのです。「それは仕様」「技術的には可能だが実現は難しい」こんな言葉を聞いたことはありませんか!?


どうしてプログラマは問題を修正してくれないのでしょう。どうすれば直してもらえるのでしょうか?

詳細なレポートを作る


まずは問題の詳細なレポートを作りましょう。


問題が発生したら、発生させる手順や環境をできるだけ詳細にまとめます。いつから問題がおきるようになった、こんな操作ならばエラーにならない、というように、気づいた点はなるべく多く列挙します。可能であれば開発者が容易に現象を再現できるようにしておくと問題解決が早まります。


「xxが動かない」とか「xxが使えない」とだけ書いてあるレポートはまず相手にされません。ソフトウェアは様々なコンポーネントが複雑に構成されていることが多く、原因も多岐にわたります。実際に起きている問題を特定させるためにも、様々な角度から現象を見てみることが大切です。

修正の依頼


レポートができたらそれを開発元へ報告する時、気をつけることがあります。いきなり「バグだ」と言ってプログラムを責めないことです。


プログラマにとって自分の作ったプログラムは我が子同然です。プログラムを責められたプログラマは自分が責められたと受け取ってしまい、自己防衛に入ります。結果として、バグをなかなか直してくれない、ということになりかねません。


ソフトウェアの利用者にとっては問題を解決したいわけで、プログラムを修正することが目的ではないはず。問題がプログラムにあることが明らかである場合を除き、いきなりバグだと言うことは避けましょう。


逆にプライドを刺激する方法は有効です。「私にはどうしても原因が分からなかった」とか「修正することは難しいでしょうか」といった言動は、プログラマのやる気を出させることがあります。もちろん相手にもよりますので、実際は臨機応変に。

問題を客観的に見よう


「こんなのはプログラマのバグに対する姿勢の問題ではないのか。もっと前向きに問題に向かってくれればいいのでは」それはたしかにその通りですし、そういうことができるプログラマも大勢います。しかし、実際にはここに書いたような行動をする開発者の方が多いのです。それは事実としてとらえておく必要があります。


いずれの場合でも大切なことは問題を客観的に見るということだと思います。問題の真の原因は何なのか。それは本来どうあるべきなのか。利用者も開発者もお互いの利害関係や損得にとらわれるのではなく、真実を見つめることができるようにしたいものですね。