ソフトウェアのバグについて
この記事では、ソフトウェアのバグや不具合について、思っている事をまとめてみました。なお、売る側の気持ちが入った文章な事は容赦ください。
ほとんどは使い方の問題
家電の不具合のほとんどは「配線」の問題と言いますが、ソフトウェアについては、ほとんどが使い方の問題です。説明をよく読んで!と突っ込みたくなります。メニューの配置が換わっただけで大騒ぎするのは大人げないです。CADの様な業務用のソフトの場合は、説明を読んだだけでは分からない事もあります。そんな場合は、声を荒げる前に、然るべきところへまずは連絡することを勧めます。
原付バイクで高速道路は走れません
「遅い」とか「PCが落ちる」という苦情の原因で多いのは、PCの性能と処理内容のつり合いが取れていないケースです。主記憶やHDDの容量が足りないPCで、大きなアセンブリモデルで隠線処理させると、時間がかかるうえに異常終了しがちです。ハードや運用の見直しをお勧めします。
そういった説明をしても、納得しない方もいます。原付バイクでは高速道路は走れないのと同じで、非力なPCでは出来る事が限られます。
それは仕様です
思っている事、やりたい事が出来なくて不満になるのは理解できますが、バグや不具合ではありません。それは仕様です。立場上そう言わざるを得ません。その上で、回避策の検討や運用の見直しをするのが大人の対応だと思いますが、まるで子供みたいに駄々をこねられる人もときにはいました。
バグと認めさせるには?
バグを認めさせるには、証拠が必要です。証拠は何か、現象の再現性です。再現性とは、開発側でも現象が再現できる事です。「このモデルを使い、この手順で操作をする、するとこの時点でこの現象が発生する。」と説明し、そのモデル(データセット一式)を送ればよいです。
中には「機密保持」と言って、モデルを一切に提出しれくれないケースがありました。再現性が無い場合は絶対にバグとは認められませんから、提出可能なモデルで再現出来る様、工夫が必要です。
※ NDAを結んでいるのにも関わらず提出を拒否されるという事もありました。(NDAの有無関係なしに提出モデルは厳重管理されます)
そのバグは直ぐには治らない
めでたく?バグのお墨付きが開発側から出たとしても、そのバグは直ぐには治りません。すぐに治らない事にいろいろな感情が湧くのも理解しますが、その感情を爆発させることはお勧めしません。SNSでどんなに呟いても治りません。
では、どうすればバグは治るのでしょうか?
以下の事情が参考になると思います。
リソース
困る(儲かる)のは誰?
熱意(執念?)
リソース
バグを修正するにも、リソースは必要です。リソースが無ければバグ修正は難しいです。
一般的に、新機能としてリリースされた直後、あるいはバージョンアップされる時はリソースが確保されます。新機能にはバグが残っているからですし、バージョンアップ時にはリグレッションの危険があるからです。
なので、製品リリースの前後のタイミングで声を上げるのが有効です。具体的には、ベータ版の評価プログラムに参加してコメントを上げることです。そのバグが治すべき対象と認知されれば、その修正にリソースが回る可能性が高くなります。
※リグレッションとは、システム開発やソフトウェアの更新などにおいて、修正したバグや不具合が復活したり、機能が低下したりすることを指すIT用語
困る(儲かる)のは誰?
バグの修正にリソースが限られる場合、そのバグから治すかの優先順位が決められます。この時、バグが修正されることによる効果をはっきり伝えるのが重要です。具体的には、売上につながるかどうかです。決める側も、優先順位の理由が必要です。売上につながる(あるいは売り上げに響く)ことをうまく伝えるのは重要です。
個人的な経験ですが、製品リリース前は、新機能の確認と同時にバグが無いか出来るだけの事をしました。挙動がおかしかったらレポート、UIが分かりにくければレポートです。日本語が通るかどうかも確かめます。バグを見つけた後もそれがリリース前に治るように熱く依頼します。客先名や売上をすこし誇張することもします。うまく説得できないと1年延ばしにされるからです。
熱意(執念?)
「〇年経ってもこのバグは治らない」と言われることがあります。文句を言うだけでは駄目です。優先順位以前にそのバグを忘れているかも知れません。
どうしても治してほしいのなら、執念を持つ必要があると思います。機会があるごとに要求をすることは有効で重要です。先に述べたベータプログラムでコメントするのもありです。フォーラムで賛同者を募ってWISHにするのもありです。待っているだけでは治りません。
文句を言うより、運用で回避
バグで無くとも、いろいろな制約で思った通りにならない事の方が多いです。文句を言って何も変わらないよりも、運用で制約を回避する方を強くお勧めします。
その時に、多少なりともカスタマイズできると運用の幅が広がります。iLogic や Inventor APIを使ったカスタマイズはその有効な手段です。自分はそれで、この業界を生き残りました。