| チョコレートバーがお勧めだそうですが,どんなものであるのかは未確認です)
当然のことながら,お客も人間です.ユーザとプログラマは仕様や納期のことで敵対関係に陥りがちですが,「良いものを作る」という共通の目標が協調関係を築く第一歩でしょう. このように,XPは個人の人間性を重視し,グループの人間関係を重視しています.XPにおける"Four Values"の第1番目に"Communication"が挙げられていることや,"Four Basic Activities"の中に"Coding","Testing","Designing"に加えて"Listening"が挙げられていることが,それを物語っているでしょう.(ちなみに"Four Values"の根底にある第5のvalueとして"respect(尊敬, 敬意)"が挙げられていたりもします) 12の実践項目(Practices)どうです?ごくごく当たり前の精神論,一般常識が述べられているでしょ?しかしXPの優れている点は,そういったことを明文化した上に,それを実践するための具体的な項目を列挙していることにあるでしょう.そして,プロジェクトにおいてはこれらの実践項目にのみ全精力を注ぐという意味が,XPという名前の"Extreme(極端な,過激な)"には込められています. XPにおける"Practice(実践項目)"は全部で12あります.
これらの中でも特に目を引くのは"Pair Pro- gramming"でしょう."Pair
Programming"は,ふたりのプログラマが1台のコンピュータでプログラミングを行うことを規定しています.ひとりがキーボードとマウスを操作し,コーディングを担当します.もうひとりは総括的なアプローチやテストケースを考えるなど,より戦略的な立場を担
|
当します.これだけの説明だと特異なプログラミングスタイルのように聞こえますが,デバッグの時にふたりでソースコードを眺めたり,自分の知らないことを知っている人に相談しながらコーディングしたりすることはよくあることでしょう.ふたりでペアを組むことによって,技術移転を行ったり,ひとりでのプログラミングで陥りがちな思い込みや単純なミス,手抜きなどを避けることができるわけです.
また,"On-site Customer"も特徴的です.これは読んで字の如く,開発チームのメンバに"Customer(お客)"を加えることが規定されています.これは,現実には難しいことのように思われますが,Kent Beckは"If having the system doesn't bring more value to the business than having one more person working, perhaps the system shouldn't be build.(お客にとって,システムの構築よりもその間の他の仕事のほうが大事なら,そんなシステムはそもそも構築する必要がないのでしょう)"と述べています.もっともなことです.実際プログラマは,構築するシステムの問題領域について何も知りません(だからこそ"Listening"が"Four Basic Activities"に含まれているのです).つまらない誤解や勘違いを防ぐためにも,お客との密接な"Comunication"は不可欠でしょう.また,テストに関して,プログラマは単体テストを行い,機能テストはお客が行うべきだとも述べられています.そのためには"On-site Customer"が最も効果的です. それ以外の項目は,大なり小なり実践されているのではないでしょうか.少なくともヨレなかったプロジェクトであれば,思い当たることはあるはずです. 設計は?XPに関して「XPでは設計をしない(あるいは重要視していない)」という誤解があるようです.各種ダイアグラムを描くことを「設計」と捉えるならば,なるほど誤解ではないかもしれません.しかし,ダイアグラムを描かなければ設計はできないのでしょうか?現在四谷事業所では,韓国のPOSTECHから来た金(Kim)さんと尹(Yun)くんが,ASADALというシステムについて作業しています.ASADALでは,オブ |