「開発スタイル」開発法 ―仕事に合わせて,自分に合わせて―

第3章 テスト志向開発編

2008年6月16日

この記事を読むのに必要な時間:およそ 2 分

ソフトウェア開発でありがちな失敗

皆さんはこんな経験をしたことはないでしょうか?

  • 実装後の結合テスト/システムテストでバグが大発生した。
  • 実装フェーズがずるずると押してしまい,結局バグだらけのまま納品した。
  • 納期直前になって仕様の勘違いが判明して作り直しになった。

ソフトウェアというものが誕生して以来,ソフトウェアの開発はバグとの戦いでもありました。開発手法や言語・ライブラリなどは時代が進むにつれ強力になっていますが,ソフトウェアの複雑度も年々増していくばかりです。ソフトウェア開発とは多かれ少なかれ,必ず何かしら予想できない事態が発生するものだと言っていいでしょう。

開発手法に目を向けるとき,上手くコーディングすることだけに気を取られがちですが,組み立てただけできちんと動かなければ何の意味もありません。努力が正当に報われるためには,フィニッシュまでしっかり駆け抜けることができなくではいけないのです。

どんなに徹夜をしプライベートを犠牲にしても,残念ながらソフトウェア開発に「頑張ったで賞」はありません。IT産業が現代の3K仕事といわれる所以がここにあるように思います。

品質を重視した開発スタイル

前の2つの章では開発のしやすさからソフトウェア開発スタイルについて考えてみました。それでは180度方向を変えて,いかにトラブルを起こさず確実に開発を終えるかについて考えてみましょう。

もちろんコーディングがしやすいことや管理の行き届く開発スタイルというのも重要ですが,フィニッシュに視点を変えてみるとまた新しい気づきがあるものです。

開発終了の時には品質のよいソフトウェアができており,プロジェクトチームの皆が笑顔でいられることを目標として,成すべきことを終わりから逆算して開発のスタイルを考えてみましょう。

ゴール地点から逆に辿って考えよう

どんな開発手法でもゴール地点の手前にあるのがテスト(検証)の作業となります。そしてテスト・フェーズはソフトウェア開発において最も軽く見積もられがちです。

皆さんのプロジェクトは要件定義とコーディングでスケジュールが埋まってしまっていませんか? テストの予定があっても,コーディングの予備日と同じ期間にテストのスケジュールが引かれていたりしませんか? 多くの場合,受託開発であれば「顧客都合に合わせて無邪気に設定された納期」から,SEやプログラマの主張する作業時間を引いたものがテストに充てられているでしょう。個人か小規模の社内プロジェクトであれば,開発最後の2,3日かβリリースの前にわずかな隙間を設けて実施されるでしょう。

ソフトウェアエンジニアリングの古典の名著,ブルックスの『人月の神話―狼人間を撃つ銀の弾はない』では,業務用開発は趣味のプログラムの9倍の手間が掛かるとしています。思考回路のアマチュアなエンジニアがコーディングの手間だけを考えて「その実装は一日で出来そうだ」と思うなら,それを業務開発で行うと9日かかると見積もるべき,ということです。なぜならば要件決めにかかる手間やドキュメント作成などの「雑事」がすっかり抜け落ちているからです。

そこまで愚かでなくとも,見積りというものは大概甘くなりがちです。正しくスケジューリングをし,確かな工数を割り当てなければなりません。こうした意識は後回しになるテスト工程ほど重要になっていきます。

それでは,品質を重視する開発スタイルにおいてテストフェーズにはどのくらいの時間を割いたらいいでしょうか?ブルックスは自己の経験と調査結果から全開発期間の1/2という回答を出しています。要件定義1/6,コーディング1/3,テスト1/2というのがその割合です。もちろんこれは開発する対象によって変わります。OSか基幹システムかWEBアプリかによって大いに差はあるでしょうが,とても興味深い数字です。

また,テストフェーズで何を確認するかは事前に顧客と相談しておきましょう。「仕様書通りに動くこと」で済ませてしまうのはとても危険です。細かい部分など暗黙のものとして書かれていないことが多いため,仕様書は全ての役には立ちません。

受け入れテストの基準が明らかになれば,実装もそれに合わせれば良いので楽になります。

著者プロフィール

山本健(やまもとたけし)

ウノウ株式会社 QAエンジニア。パーソナルコンピュータ黎明期にPCを使い始めるも,若気の至りか芸術の道へ大きく寄り道し東京芸術大学大学院で油画を専攻。在学中から始めたサイト制作・携帯コンテンツ運営などを経て2003年より株式会社BEATにて受託開発のテスト業務に携わる。2006年4月よりウノウに参戦し,より早くより深いWebアプリケーションの品質管理を目指して奮闘中。画家としても活動しており,見た目からは連想できない繊細な画風で世間の注目を集めている。白日会会員。

コメント

コメントの記入

ピックアップ

EC事業者が注目,.shopドメインとドメイン名をとりまく新たな流れ

インターネットの可能性を広げる新たな動きが,ドメイン名をめぐって起こりつつあります。

エンジニア特化型Q&Aサイト「teratail」のトップランカーたちが語る,確実な力を付けるための“質問力”

エンジニア特化型Q&Aサイト「teratail」のトップランカーの方々に集まっていただき,座談会を開催しました。

Webサイトに“安心”をプラス―知らないでは済まされないSSLサーバ証明書の仕組み

いまやユーザといえでも必須の知識となったWeb通信の暗号化と,その信頼性を確保するための「SSL証明書」のしくみについて紹介します。

リクルートライフスタイルの技術力を追え!

ビジネスを拡大し続けるリクルートライフスタイルの技術力を,編集部の徹底取材により紐解きます。

開発スピードに限界を感じたときの処方箋

「JIRA」をはじめとするアトラシアンのツール群。多くのオープンソースソフトウェアを継続して提供する支えとなっている使い易さを探ってみます。

デジタルコンテンツを日本から世界へ―MyCommerceで始める越境EC

自社開発ソフトウェアを海外も含めてオンラインで販売したいというニーズに即したサービス「MyCommerce」を用いて,誰もが手軽に越境ECを実現するためのノウハウを紹介します。

バックナンバー

No12(2009.04)

今回のSoulHackで主に取りあげるのは,梅田望夫の「ウェブ時代をゆく」という本です。

No11(2009.03)

今回のSoulHackで取りあげるのは,阿部謹也の「世間学への招待」と他1冊の本です。

No10(2009.02)

今回のSoulHackで取りあげるのは,山本七平の「空気の研究」という本です。

No9(2009.01)

今回のSoulHackで取りあげるのは,アーノルド・ミンデルの「紛争の心理学」という本です。

No8(2008.12)

今回のSoulHackで取りあげるのは,河合隼雄氏の「カウンセリングを語る」という本です。

No7(2008.11)

特集:2008年度日本OSS貢献者賞受賞者インタビュー

No6(2008.10)

特集:エンジニアの実践的キャリアアップ思考法

No5(2008.09)

特集:事例でわかる,プロジェクトを失敗させない業務分析のコツ

No4(2008.08)

特集:ゼロからはじめるPSP

No3(2008.07)

特集:今こそ使える! プロトタイピング

No2(2008.06)

特集:「開発スタイル」開発法

No1(2008.05)

特集:エンジニアが身につけたい基本スキル 2008

-->