SHOEISHA iD

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

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

特集記事

PSP入門 新しいプロジェクトを見積もるための10のステップ 第1回

自分の開発したプログラムの平均値を計る


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

PSP(パーソナル・ソフトウェア・プロセス)とは、ソフトウェア開発におけるプロセス標準を提供するものです。開発者が自身の作業について、計測し、指標化し、管理できる方法を取得することで、個人のソフトウェア開発レベルの向上を目指します。品質や進捗について上司、プロマネ、委託元と揉めそうになったら何を武器にして闘うか、を知るといった意味でも有効でしょう。

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

はじめに

 突然ですが皆さんは、自分がどれくらいのサイズのプログラムを、どれほどの生産性でコーディングできるのか、はっきりと上司の方に話せるでしょうか。例えばあなたは、10KLOC(K Lines of code)のソースコードを何時間かけて書きますか。1週間でどれくらいの規模のプログラムをコーディングできるでしょうか。

 今、こう思ったかもしれません。

「新規性やプロジェクト特性によって、プロジェクトの生産性は大幅に変動します」

 しかし、新規性がまったくないプロジェクトは、ほぼありません。その「新規性」「プロジェクト特性」をどこまで正確に数量化し、見積もりに反映できているでしょうか。とどのつまり、こういうことになっていませんか?

「自分の経験に理由をつけて、えいっと出す!」

 …なんて勇敢な。勇敢な方は嫌いではない、むしろちょっと好き、ですが。

 もとい。私は今、アメリカ合衆国にあるSEI(Software Engineering Institute)で、PSP(パーソナル・ソフトウェア・プロセス)について勉強しています。このPSPとは、ソフトウェア開発におけるプロセス標準を提供するものです。

 これまで改善が叫ばれてきた上記のような問題、つまり、生産性や見積もりの正確さ、自分が作る製品の品質の検証、などといった問題に、「自分がプロジェクトのエンジニアだとしたら、担当する部分の製品をどういう方法で設計してコーディングし検証するか、またはどういう方法で品質、コスト、納期を約束し、守るか」というアプローチで、答えを出そうとする理論です。

 品質や進捗について上司、プロマネ、委託元と揉めそうになったら何を武器にして闘うか、を知る。今のところは、このような認識で構いません。

 これを踏まえて、次節以降を読み進めてください。

筆者の立場

 ここで少し脇道にそれますが、PSPの認定プログラムと、執筆時点(2007年7月)での筆者の立場をお話ししておきます。

 私は現在、PSPスキルを持った開発者としての認定(SEI-Certified PSP Developer)を取得すべく、年に数回、SEIと日本を往復しています。PSP認定資格には、「開発者」「コーチ」「インストラクター」の3段階があり、今は最初の認定である「開発者」を取得中のため、まだSEIが正式に認めたインストラクターではありません。

 この連載は、PSPに興味のある方、またはPSPをまったく知らない方を対象に、PSPの概観を把握してもらうことを意図して執筆しています。

 より深くPSPを学びたい方は、筆者の経験を含め、SEI認定を持ったインストラクターの講義を受けることを強く勧めます。また、2007年8月にPSP参考書籍の翻訳本(翔泳社刊)の発刊が予定されています。こちらも参考になるでしょう。

PSPを始めるにあたって

 さて連載第1回では、PSPを採用し自分で展開しようと思った時に、まず何から手を付けるべきなのかを紹介します。

 PSPでは、まず自分に一番馴染んでいる開発方法で開発した、プログラムのサイズと開発にかかった時間を計り、自分で作りこんだ欠陥(defect)を全件記録して、それらをデータとして蓄積します。つまり、「自分は今、何にどれくらいの時間をかけているのか」を知る作業です。

開発時間を計る

 PSPでは開発の各フェーズを以下の6つと定義して、計測することを求めています。

  • 計画立案(planning/PLAN)
  • 設計(design/DLD)
  • コーディング(code/CODE)
  • コンパイル(compile/COMPILE)
  • テスト(test/UT)
  • 事後分析(post mortem/PM)

 各フェーズにかかる時間は、できればストップウォッチで測って記録することを求めています。たとえば、「計画立案」中に電話がかかってきたら作業を中断しますね。その時はストップウォッチを止めます。もしくは作業を中断した時間を記録し、総時間から引きます。会議があるなら、もちろんストップウォッチは止めたままです。この要領で計測していきます。

 では、まずは何かプログラムを書いてみましょう!

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

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

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

メールバックナンバー

次のページ
PSPプログラミングの第一歩

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

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング