デバッグ不十分だけど、うまくできている可能性もあるし、納品してしまおうか。。
こんにちは、古賀です!
本記事では、
プログラマーは、
はてな
「納期」と「バグゼロ」どちらを優先すべきか?
という悩みについて、回答したいと思います。
プログラマーなら、「納期」と「バグゼロ」、どちらも守りたいところですが、
どちらかしか守れないとしたら、どちらを優先すべきか?
そして、そんな状況の場合にどんな行動を取るのがベストなのか?
そんなことについて、お話したいと思います。
この選択を間違えると、
あなたの信頼度がガタ落ちしてしまいます。。
新人プログラマーの方は、
特に気を付けなければいけない部分になりますので、
今回の話が参考になればと思います。
自己紹介が遅れましたが、
わたしは大学卒業後、上場IT企業に就職し、プログラマー、システムエンジニアとして
約10年間働きまして、現在フリーランスをしております。
プロフィールの詳細はこちらです。
-
プロフィール
こんにちは、古賀正雄です。現在36歳です。 簡単ではありますが、こちらのページで自己紹介とこのブログについてお話します。 高校時代 学生時代は主に野球をしていました。 進学先の高校も野球で選びました。 ...
続きを見る
※YouTubeに同内容を公開しております。
プログラマーは「納期」より「バグゼロ」を優先すべき!
結論ですが、
プログラマーは「納期」より「バグゼロ」を優先すべき!
です!
厳密に言うと、「バグがまったく出ない!」ということは稀ですので、
「バグゼロ」は「デバッグ作業を十分に行った!」と解釈してください!
「確信犯的に納品するな!」ってことです。
なぜ「バグゼロ」の方を優先すべきなのか?
それは、
「バグが発生した方が信頼を失いやすい」
「納期を守っても、バグが発生すると結局時間が掛かる」
からです。
バグが発生した方が信頼を失いやすい
「いや。。納期を守らなくても信頼を失うんじゃ。。」
と思われた方がいるかもしれません。
確かに納期を守れなくても、信頼を失うかもしれませんが、
失う度合いが違います。
後述しますが、納期を守れなくても、
信頼を失う程度を最小限にする方法があります。
一か八かで、デバッグが不十分なプログラムを納品すると、
「質の低いバグが発生する可能性が高い」
です。
「質の低いバグ」は、
「これ誰でも気付くだろ。。」
っていう類のバグですね。
バグはどんなに気を付けても、少しは出てしまうものです。
でも「質の低いバグ」は絶対に出してはいけません。
「あぁ。こいつは仕事が雑なやつなのね。。」
というレッテルを張られてしまいます。
信頼を失うと、仕事がやりづらくなります。
正しいことを言っても、聞いてもらえなくなります。
どちらを優先すべきかと問われたら、
「納期」ではなくて、「バグゼロ」を取りましょう!
納期を守っても、バグが発生すると結局時間が掛かる
これは言われてみれば当たり前ですね。
結局バグが出て、その後修正作業をするのであれば、
修正作業時間にプラスして、テスト担当者にも時間を取らせてしまっているので、
余計に時間が掛かります。
万が一「ノールック納品」の勝負に勝ったとしても、
それはたまたまに過ぎません。
いつかは負けます。
人間はそれでも、勝負に出てしまうんですよね。。
わかりますよ。。
それは、
「遅れることを報告したくない!」
からですよね?
※「デバッグがめんどくさいから」は止めましょうね(笑)
だから一か八かの勝負に出てしまうと。
でも「報告」は避けて通れません。
「良い報告」をして、被害を最小限に、
あわよくばプラスに変えましょう!
プログラマーの納期が遅れた時の正解行動!
「バグゼロ」を取った!
けど、納期に間に合わない。。
そんな時に取るべき行動は、
ポイント
「遅れることを早めに伝える」
「後どれくらいで作業を終えられるかを伝える」
「不備がある部分を伝えた上で、現時点のプログラムを納品する」
この3つです!
この3つを守れば、遅れる報告をしたとしても、
大幅に信頼を失うことはありません!
遅れることを早めに伝える
プログラムを進めていくと、
「ちょっと納期に間に合わないかも。。」
と感じることがあると思いますが、
その時点で遅れる可能性があることを伝えておきましょう。
ギリギリの報告は信頼を大幅に下げてしまいます。
これはプログラムに限った話ではありませんね?
プロジェクトが遅れてしまいそうな時も同じです。
お客さんに早めの報告です。
わたしは過去のプロジェクトで、
お客さんに工程が遅れてしまう報告を期限ギリギリに言ってしまい、
「もっと早く言うべきでは?」
と釘を刺されたことがあります。
間に合ったなら、
「間に合いました!」
で結果オーライですから、遅れる可能性があると思った時点で報告しましょう!
後どれくらいで作業を終えられるかを伝える
早めに遅れることを伝えても、
「遅れます!」
だけではダメです。
後どれくらいで作業を終えらえるかを、併せて報告しましょう!
報告を受ける側もどれくらい作業が遅れるかで、対応が変わってきます。
もしかしたら遅れることは特に何も問題ない場合もあります。
その場合は思う存分デバッグして、質の良いプログラムで恩を返しましょう!
「後どれくらいで作業を終えられるか?」
これが分かるようになるためには、
普段自分がどれくらいの作業を、どれくらいのスピードで作業を終えられているか、
データを取っておくと良いです。
わたしも若い頃は毎日記録を残してしました。
それを続けてきたおかげで、
「このプログラムが何日で終えられるのか?」
という見積能力が徐々に付いてきました。
あとは、「準備」や「プログラムの作り方」ですね。
こちらの記事を参考にして、プログラムを続けていくと、見積能力はさらに高まります!
-
優秀なプログラマーは準備が違う!勝負はコーディング前に決まる!
プログラマーとして働き始めたけど、 まだまだバグも多いし、作業スピードも、周りからの信頼もいまいち。。 なんか効率が良くなる裏技みたいなやり方はないかな。。 こんにちは、古 ...
続きを見る
-
プログラムを作る手順は?土台作りがプログラム開発のスピードと質を高める!
プログラム開発って、どこから作り始めればいいんだろう? やっぱりユーザーが始めに動かすところから順番に作るのが一番かな。。 こんにちは、古賀です! 本記事では ...
続きを見る
不備がある部分を伝えた上で、現時点のプログラムを納品する
「遅れてしまう!」
と報告しても、相手から、
「どうしてもすぐプログラムを使いたい!」
「出来ているところからテストをしたい!」
と言われることがあるかもしれません。
※ちなみに部分的なテストはあまりおすすめできません。
コーディング前準備の記事に書いてある「段階的引継ぎ」と同じ理屈です。
そんな時は、
「まだここの部分の実装が終わっていません。」
「この部分のデバッグが終わっていません。」
とまだ不完全な部分を伝えた上で、プログラムを納品しましょう!
そうすれば、バグが見つかったとしても問題ないですし、
相手が無駄に時間を消費しなくて済みます。
まとめ:プログラマーは納期か?バグゼロか?
ここまでの話をまとめます。
まとめ
プログラマーは「納期」より「バグゼロ」を優先すべき!
理由は、
- バグが発生した方が信頼を失いやすい
- 納期を守っても、バグが発生すると結局時間が掛かる
の2つ。
納期に間に合わない時に取るべき行動は、
- 遅れることを早めに伝える
- 後どれくらいで作業を終えられるかを伝える
- 不備がある部分を伝えた上で、現時点のプログラムを納品する
の3つ。
信頼を失わないどころか、プラスに働くこともある!
「報告の仕方」がすべて!
納期を優先すべき時がないわけではないです。
「他システムと合わせて、このシステムを稼働するのに間に合わなくてなってしまう」
とかそんな時です。
でも、プログラムの開発工程であれば、
まだそんな切羽詰まった時ではないので、
プログラマーは余程のことがない限り、「バグゼロ」を優先すべきです。
システム稼働後に重大なバグが発生して、
データのリカバリーが必要になってしまうことの方が、影響が大きいです。
会社の数字(業績)のために、
「絶対間に合わせないと!」
ていう場合もあるかもしれませんが、お客さんにとっては関係ないですからね。。
こんな場合も納期を優先すべきではないですよね。
新人プログラマーであれば、報告さえキチンとすれば、
納期に間に合わなくても、そこまで問題ではありません。
「品質」の方が1000倍大事です!
品質重視で仕事をし続けていけば、信頼も溜まっていきます。
急いで間に合わせたい気持ちもわかりますが、
グッと押さえて、良いプログラムを納品しましょう。
目先に拘らず、丁寧に!
それがいつかプラスになって自分に返ってきます!