SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

実例で学ぶ、コード品質の高め方

なぜ今、コード品質が求められるのか? ChatGPT時代を生き残るためのエンジニアの基礎スキル

第1回 コード品質の指標とコード品質が求められる背景

なぜ今、コード品質か?

 ソフトウェア品質の要素についていくつか見てきましたが、表題に戻りましょう。「なぜ、今、コード品質か?」という話です。現在、どの産業もソフトウェア抜きには語れません。

 ただし、単に動くソフトウェアがあれば良いというわけではなく、その品質がビジネス上の差別化要因として非常に重要になってきています。例えば、半導体製品であっても、それを取り扱うSDK(Software Development Kit)がすぐに使えるレベルであることが採用率に効いてきますし、外食産業であっても、予約サイトのUI/UXの出来は経営上の重要な要素です。

 以下で、ソフトウェア品質がビジネスへ影響を与える例を示しましょう。

顧客満足度の向上

 ソフトウェアの品質が高ければ高いほど、顧客は製品やサービスに満足する可能性が高くなります。バグやエラーが少なく、期待どおりに動作するソフトウェアは、顧客のニーズや要求を適切に満たすことができます。顧客の満足度が高まると、リピーターの増加や口コミによる新規顧客の獲得など、ビジネスの成果に直接的な影響を与えます。

競争力の維持

 品質の高いソフトウェアは、競争力の維持や差別化のために重要です。類似の製品やサービスが存在する市場では、品質の向上が競争上の優位性をもたらします。顧客は信頼性が高く、バグやセキュリティの脆弱性が少ないソフトウェアを選好し、競合他社の製品よりも優れた品質の製品を求めます。

コスト削減

 品質の低いソフトウェアは、バグ修正や問題解決に多くの時間とリソースを費やすことになります。例えばクローンコード※が多数含まれるプロジェクトの場合、フィールドで発生した特定のバグに修正を行っても、同様に修正が必要な箇所が他にも多数あり、それらを見落としてしまうことでまた別の場所でバグが発生してしまいます。結果として修正が終わらず、開発コスト・保守コストの増大を招きます。

※クローンコード

 ソースコード中に存在する互いに一致または類似したコードブロック。コードクローンは、ソースコードのコピー&ペーストによる再利用や、頻繁に用いられる処理などにより生成され、保守を困難にする原因となります。

サービスレベル

 SaaS製品では、ユーザーにサービスレベルを保証しているものがあります。品質が問題でクラッシュやデータの損失などの障害が多発し、保証しているサービスレベルを満たせなかった場合、製品の売り上げが得られないこともあります。

 以上は一例にすぎません。ソフトウェア品質は、今やビジネスの成功に不可欠な要素です。品質の高いソフトウェアは顧客満足度を向上させ、競争力を維持し、生産性を向上させ、コストを削減し、信頼性と安全性を確保します。

おわりに

 今回は、コード品質の指標としてよく使われる3つの要素「実行効率」「可読性」「保守性」についてと、なぜ今コード品質が求められているのかについて説明しました。次回は、「なにがコード品質を決めるのか?」と題し、コード品質を測るための様々なメトリクスやその利用方法について解説します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
実例で学ぶ、コード品質の高め方連載記事一覧

もっと読む

この記事の著者

浅原 明広(株式会社Sider)(アサハラ アキヒロ)

 日本IBM、株式会社フィックスターズなどで、半導体製造装置や医療画像機器など、大小様々な組み込み製品向けのソフトウェア開発プロジェクトに従事。 現在、フィックスターズ子会社の株式会社Sider にて、ソースコードのコピペ管理ツール『CloneTracker』を開発・提供。最新のツールや方法論を用いた、ソフトウェア開発者体験の向上に強い関心を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

千葉 滋(東京大学情報理工学系研究科教授)(チバ シゲル)

東京大学 情報理工学系研究科 創造情報学専攻 教授

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/17984 2023/07/26 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー