SHOEISHA iD

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

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

パーソナルソフトウェアプロセス(PSP)入門

パーソナルソフトウェアプロセス(PSP)実践講座
~第2日 プログラムの規模を正確に測る

パーソナルソフトウェアプロセス(PSP)入門 (2)


  • X ポスト
  • このエントリーをはてなブックマークに追加

 プロジェクトのエンジニアとして担当分を「安定した品質で/安定した生産性で/期日通りに」納入する方法を、具体的なエクササイズを通して習得する「パーソナル・ソフトウェア・プロセス」(PSP)という手法について解説します。今回は、プログラム規模(サイズ)の正確な測り方について考えてみます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 プログラマの仕事がより楽しくなる「PSP(パーソナルソフトウェアプロセス)講座」の第2回です。今回は、プログラム規模(サイズ)の正確な測り方について考えてみます。

 前回はPSPとは何かについてお話ししたのち、プログラム課題を一つ解いていただきました。その際に、「開発(6つのフェーズ)にかかった時間」「発見し修正した欠陥の数」を数えて記録してみました。

 なぜ計測したのでしょうか。今日はそのあたりからお話を始めてみたいと思います。それでは今回も一緒に、この方法「PSP」についてエクササイズをまじえ、習得していきましょう。

補足1: PSP講座の第1日をご覧になっていない方は…

 PSPの概要を知りたい場合は第1日に戻って、ざっと読んでからここに戻ることをお勧めします。PSPをスキルとして習得なさりたい方は、やはり第1日に戻り、演習を解いてから、ここに戻るとよいでしょう。

計測の意味: データを蓄積すれば見積もりに使えます

 現場経験をお持ちのプログラマさんならピンと来ると思いますが、プロジェクトは恐ろしくたくさんの「いつ終わるの?」「どれくらいかかるの?」に満ちています。マスタースケジュールをはじめ、個々のチームの作業計画、おそらく要件定義時に作成する総合テスト計画から、今日の会議の終了時刻、その後作業を予定している資料の締切にいたるまで……。また、作りっぱなしでいい成果物など一つもありません。自分が作成したモノは資料であれプログラムであれ、必ず後続の作業の入力になっているはずです。だから、「いつ終わるの?」「どれくらいかかるの?」という質問が飛び交い、場合によってはそれが強迫観念のようになるわけですね(やれやれ) 。

 前回プログラムを作る際に時間を測っていただいたのは、その「いつ終わるの?」に対する答えを準備するためです。つまり、少なくとも主要業務であるプログラム開発においては、

「前回使用した言語で、前回程度の規模の開発をする場合、
 かかる時間は平均で○○分程度です」

という答えを用意するための、一つめの材料になるわけです。もし仮に経験が一度しかなくても、あなたはきっと

「前回○○分だったので、今回も同程度だと思います」

あるいは

「前回と比べて○○なので、時間は△倍の約○×分です」

などと言うはずですね? 今後も、蓄積したデータが1点でもあるならばそれを使い、その上で技術者としての判断を発揮して、「いつ終わるの?」に答えましょう。これが、PSPにおける見積もりの立場です。よって、次のプログラミング課題(第4日で出題予定)からは規模も測ることにしましょう。

補足2

 平均とは何かについては、ほとんどの方は既にご存じだと思います。また、前回課題を解いていただいた方は、その計算式を用意する段階で思い出して、あるいは理解していただいたかと思います。つまり、

同じ定義に基づき収集したデータについて、その値の総和÷データ数

ですね。

プロセスを測るとは

 ということで、計測の意図についてお話ししました。さて、ここでこの連載のタイトルはPSPだということを思い出してください。PSPはパーソナル ソフトウェア プロセスの略でしたね。パーソナルは「個人の」、ソフトウェアは「ソフトウェア」、そしてプロセスとは「仕事の仕方」と考えてください、と前回申し上げました。では、「仕事の仕方」などという漠然とした観念をどのように計測するのでしょう。

 さっそく答えを申し上げます。今回のプログラム課題を開発するフェーズは、計画立案・設計・実装・コンパイル・テスト(実行)・事後分析、の6つです(第1日参照)。この6つのフェーズにかかった時間を測り、その時に発見した欠陥を記録することで、皆さんは各プロセスにかかる工数を測り、その品質を測っていることになるのです。お分かりいただけるでしょうか。これが「プロセスを測る」ということです。

補足3: 「フェーズ」と「プロセス」

 万が一ここで混同される方がいないように、念のため補足しておきます。

 

 「フェーズ」は、時間の流れの中の1区切りです(第1日参照)。時間は後戻りできません。よって、フェーズを巻き戻すことは原理的にはしません。一方、「プロセス」は、前出の通り、仕事の仕方です。

 

 ですから、時間という大きな流れを、仕事の視点から区切ったものがフェーズです。その中で行う仕事内容がプロセスです。よって、たまたま同じ時間軸の中に表わされていますが、同義ではありません。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
規模を「正確に」測るには ― LOC

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
パーソナルソフトウェアプロセス(PSP)入門連載記事一覧
この記事の著者

南川 しのぶ(ミナミカワ シノブ)

IT技術、IT経営のコンサルタント。主にシステム開発コンサルティング活動の他、外部セミナー、顧客先企業の内部セミナーの講師も務める。カーネギーメロン大学のソフトウェア工学研究所(Software Engineering Institute)認定PSPソフトウェア開発者(SEI-Certified P...

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4163 2009/11/26 10:22

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング