佃です。
ちょうど昨日PSP本「パーソナルソフトウェアプロセス技法」を
眺めていました。
PSPは個人の技法を向上させるための方法を示しており、見積
り、設計、レビューの重要性を認識する(*1)ためによい方法で
あるのではないかと思います。しかし、これは設計、レビュー、テ
ストなどの工程が明確に分離されていることが前提であり、XPで
PSPを実践することは無理なのでしょう。XPでも設計、レビュ
ーの重要性は認識できますが、PSPの方がより強く認識できると
思います。
設計、レビューの重要性を感じないプログラマのレベルを向上させ
るためには、PSPの演習を行った後にXPを経験する方がいいの
か、PSPを実施することなく、XPを経験した方がいいのか、ど
ちらでしょうかねえ。
上手さんのメールによると、PSPよりもCSPの方が生産性が高
いようなので、PSPは経験しなくてもいいのかな。
(*1)PSPの概要
PSPは、7つの開発プロセスを定義している。各レベルのプロ
セスを演習問題を行うことにより経験する。低レベルのプロセスか
ら順番に取り組むため、プロセスのどのような点が改善されたかが
強く認識できるようになっている。
7つのプロセスには番号が付けられている。内容は、本を抜粋した
つもり。
PSP0 :開発時間の見積りと実績の記録、および記録結果の
分析
PSP0.1:規模見積り(感覚的)、規模測定、プロセス改善提
案の提案、コーディング基準の導入
PSP1 :規模見積り(PROBE規模見積り法)の導入。見
積りを行うために、計画段階で概念設計を実施。
PSP1.1:資源とスケジュールの見積りと計画を導入
PSP2 :設計とコードのレビューを導入
PSP2.1:設計、レビューなどのためのワークシートを導入
PSP3 :繰り返し開発の導入
各プロセスを体験することにより、次のようなことを学習するので
あろう。(想像)
PSP0、PSP0.1 : 時間、規模の予想に関する自分の感覚
が信用ならないことを学習する。
PSP1、PSP1.1 : 自分のいいかげんな予想より導入した
見積り手法の方が実データに近いことにより、見積り手法にメリッ
トを感じるようになる。
PSP2、PSP2.1 : レビューの重要性を感じるようにな
る。
PSP3を体験することにより、繰り返し開発の重要性を認識する
ようになる。
#0から始まるのが個人的にはいやだ。1から番号を付けて欲し
い。
#番号の振り方がいやだ。1、1.1ではなくて、1.1、1.2
と番号を振って欲しい。
以上
Yutaka Kamite wrote:
>
> 上手です。
>
> 前に佃さんとPSPの話をJPLoPでしました。
> XPとの関連が気になっていたのですが、XP-engにその話題があったので紹介しま
> す。
>
> Personal Software Process
> http://www.sei.cmu.edu/tsp/
>
> XP を PSP environment でやるにはどうしたらいいか
> という質問に対して、Kentが答えていわく。
>
> We don't do phases in XP, so if you're trying to specify phases you're doing
> the wrong thing. My advice- forget about XP and just program as best you
> can. Or dump PSP and acknowledge that we're all humans and not machine
> parts. Your choice.
>
> kent
>
> 私のアドバイス:
> XPを忘れて、(PSPの指定通り)一所懸命プログラミング(し、計測し、記録)す
> る。または、PSPを捨て、我々は全て人間で機械ではないことを認識する。
>
> XPでPhaseを使わないと言っているのは、PSPのような細かなデータ収集の基盤が
> 無いということだと思います。
> また、この意見の下地として「リファクタリングとかコンポーネントベースにな
> ると、行数という概念が不適当になる」という見方があるような気がします。
>
> また、別スレッドで
> read the paper by Laurie Williams? (http://www.cs.utah.edu/~lwilliam/ )
> が紹介されています。
>
> 生徒を2組に分け、PSPとThe Collaborative Software Process (CSP) で同時に
> 作業させたところ、明白にCSPがPSPを上回った。
>
> Laurie はIBMで9年間勤務(最終職務は検証テスト)した後、ユタ大学でPSPと
> CSPを教えています。
>
> ここでCSPはペアプログラミングによる共同開発を指します。
>
> 以上、ご参考まで。
>
> (では)
--
Gunji Tsukuda (tsukuda@....jp)
Systems Development Laboratory, Hitachi, Ltd.