ベトナムでの開発品質問題
「プログラムでバグが出るのは当たり前」
私自身、ずっと技術者やそれに関わる仕事をして来ていますが
これについては否定しないし、むしろその通りだと思います
ただ、この当たり前だという考え方には罠があります
「バグがあるのが当たり前だからバグが出ても良い」わけではないです
例えば
「交通事故が起こるのは当たり前」
と置き換えてみるとわかりやすいですが
「事故が起こるのは当たり前なので、事故が起きても仕方ない」ではなく
「事故が起こるのは当たり前なので、なるべく事故が起きないように気をつける」のが正しいですよね?
開発でいうと
「バグがあるのが当たり前、なので自分のコードでバグが出てしまってもそれは仕方ないことだ」ではなく
「バグがあるのは当たり前、なのでバグをできる限り出ないようにしよう、バグを潰しておこう」と考えないとダメなのです
そうしないと品質はいつまでたっても上がらないです
ベトナムでの話をすると
ベトナムでは前者のバグが出るのは当たり前、仕方ないという意識が強く、バグを出さないためにはテスターが必要だ、テスターが確認すべきだ、という話になりがちです
ベトナムでは、規模に関わらず開発のチームにテスターが入り、テスターが動作確認をするというのが当然という感じの文化があります
そのためか「動作確認はテスターがするもの」という意識がエンジニアに根付いてしまっています
トレーニングや意識改善、フロー改善などを行っていない場合は
エラーがでるコードをコミットしていたり、チェックをしていないものを納品する、というのが当たり前に発生するような状況です
そんな中で品質向上の話をすると、テスター増員やダブルチェック、テストの期間を長くするなど、コストを使ってチェックをするという方向に話がいきがちで
エンジニアのスキル向上、例えばツールを導入する、テストコードを書くなど、エンジニア側でできる仕組みで解決する方向にはなかなか向かわないです
そのため、コードの品質が上がらず、テスターがバグに気付かないとバグが発生しますし、運用フェーズなどで何度でも同じようなバグが発生します
テスターの増員や、テスターの品質を上げたところで、ある程度の品質は担保されるようにはなりますが、品質向上にはなかなかつながりません
ベトナムの開発環境では、エンジニアのバグに関する意識を変えていく必要があります
この部分をいかにうまく環境を作れるか?がベトナムでの品質向上の鍵になると思います