良い品質のプログラムとは何か?

記事
IT・テクノロジー

良い品質のプログラムとは何か?

いろいろな製品に品質があるように、プログラムにも品質があります。では、良い品質のプログラムとはどんなプログラムでしょうか?この記事ではプログラムの品質について考えてみました。


プログラムの品質はどのように示すか?
あなたの作ったプログラムの「品質」が良いことを他の人に伝えたい場合は、あなたならどうしますか? 実は、プログラムに限らず品質が良いことを示すのはとても難しい事です。

例えば、たくさん売れている製品の場合、利用している人の評判が良ければ、多くの方はこの製品は「良い物=品質が良い」と思う場合が多いと言えます。ところが、余り売れていない製品だったらどうでしょうか?

プログラムの場合、多くの人が利用するアプリを開発してそれを大量に売るというビジネスモデルがあります。この場合ある程度利用者が多くなれば、利用者の評判は上でも書いた通り、品質の指標になります。しかし、新たに参入して余り利用実績がない場合は、こうした指標が使えないため別の方法を考える必要があります。

また、ソフトウエアの開発を受注して開発する場合は、そのプログラムの実績はないため、同じように別の方法でプログラムの品質を示すことが受注の鍵になることもあります。

品質の悪いプログラムとは何か?
別の方法といっても、簡単には行きません。では、まずは品質の悪いプログラムは何かを考えてみることにします。 つまり、品質が悪くなければ、間接的に品質の良いプログラムと言えるのではという論理です。

ところで、「良いプログラム」と「品質の良いプログラム」は少し意味合いが違います。 良いプログラムとは使いやすくて、必要な機能が揃っているようなプログラムですが、品質の良いプログラムとは、サポートしている機能が安定して想定通りに動くものをいう場合が殆どです。

品質の悪いプログラムは、簡単に言えば「バグの多いプログラム」ということになります。 バグの多いプログラムは、プログラムでサポートしているはずの機能が、きちんと動きません。 「動くはずの物」が「きちんと動かない」のが悪いプログラムということになります。

そう考えると、品質の良いプログラムとは、バグの少ない、プログラムがサポートしている機能がきちんと動くのが良いプログラムということになります。

バグを少なくする方法は2つ!
では、バグを少なくする方法は何でしょうか? 実は大きく分けて2つあります!

一つ目は、「慎重」にプログラムを作ることです。

実は、プログラムの品質は書く人によって大きく変わってきます。 起こり得るいろいろなケースを想定して、抜けが無いようにプログラムを組み立てると比較的バグの少ないプログラムにすることができます。実際に、経験を積んだ良いプログラマーはバグの少ないプログラムを書ける人が多いのも事実です。

しかし、「私の各プログラムは品質が良い」と行って多くの人がそれをそのまま受け取るでしょうか? そんな単純なものではありませんよね?

実際に、プログラムの品質が良いことを他の人たちに納得してもらうには、「根拠」を示す必要があります。 この根拠がないとなかなか納得してもらうことは難しいということです。

話を基に戻すと、二つ目の方法は、「テストをきちんと行う事」です。

テストを行って、プログラムが正しく動くかを確認して、問題があれば修正して動くようにするという方法です。 この方法は、実際に動作を確認して動くことを「証明」しているので、説得力があります。

品質を示すのは「テスト」
従って、プログラムの品質を示すのは「テスト」が都合が良いということです。 ところで、もう少し具体的に何を示せば良いのかを考えてみます。

例えば、プログラムを作る前にプログラムの品質を示すことができるかを考えてみます。 プログラムの仕事を受注する段階では、プログラムは存在しない場合が殆どなので、テストの結果を示すことはできません。しかし、この段階でプログラムの品質を示す事ができれば、受注活動を優位に進めることができるのも事実です。

そこで、プログラムがない段階でどのようにプログラムの品質を示すのはどうしたら良いでしょうか?

ここでも鍵は「テスト」です。 テスト結果は示すことはできませんが、テストの計画(テストプラン)を示すことはできます。 つまり、このようなテストを実施するので「テスト後の品質は良い」という主張をするわけです。

テストプランを示すことのメリットは品質以外でも大きな意味があります。 殆どの場合、テストプランをみると、作成しているプログラムをどの程度良く理解しているかがわかるものです。 つまり、作成するプログラムへの理解度を示して、実施するテストの内容を示すことで、完成したプログラムの品質を示す事が可能です。

この方法を実施する上でとても重要なことは、プログラムを納品する際には、約束したテストの実施結果(テストレポート)を添えて約束通り実施したことを示すことです。テストプランで品質を示す方法は、実際にテストを実施して、そのテスト結果(テストレポート)で機能が正しく動くことの根拠にすることで完結します。

まとめ
プログラムを開発する上でその品質はとても重要です。 特に、プログラムの開発を依頼されて行う場合は、依頼元は、確実に必要な機能が動作するということはとても重要なポイントです。複数の依頼先の候補がある場合、プログラムの品質は発注先を決める重要な判断基準の一つです。

多くの提案が、プログラムをどう作るかや、納期(工期)や受注価格を全面に提案する場合も多いと思いますが、品質をアピールするのも大きな効果があります。品質の良さはアピールするのが難しいものですが、きちんと考えられたテストプランは、その提案の完成度を間接的に示すものにもなるために、効果が大きなものになります。

品質を意識したプログラム開発を提示できると、仕事の受注にも繋がります。

プログラムをどう作るかも大切ですが、作成したプログラムをどうテストするかや、テストしやすいように作るのもとても重要です。 プログラムをどう作るかはインターネットにもたくさんの情報がありますが、どのようにテストをするかや、テストをするための実装の情報は余り多くありません。この辺りをどのように身につけていくかが、ワンランク上のプログラマーになる秘訣です。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す