トップページtech
988コメント450KB

eXtreme Programming

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
12のプラクティスがありますが、
実際実用的と思われるのはTesting, Refactoringの2つだと。
Cording Standardsは常識と考えればね。

XP全般について語ってもいいですが、
むしろTesting, Refactoringの二つをメインに語りましょう。
Testingのテクニックなんざをね。

参考URL:
http://objectclub.esm.co.jp/eXtremeProgramming/
0454デフォルトの名無しさんNGNG
実践記まで翻訳なのかよ
日本人で書ける奴いねーの?
0455デフォルトの名無しさんNGNG
結構良い本だと思うけど、リファクタリングの結果、Servletとしてはダメなコード
にしちゃっている。訳注でちゃんとフォローしているからいいけど。
0456Error401NGNG
>>453の本、面白かったよ。
翻訳も良かった。こなれた日本語になってる。

ところで、XPを「究極の〜」といってる人をたまに見かけるけど、
アレ、何か元ネタあるんでしょうか?
0457デフォルトの名無しさんNGNG
コードに仕様変更があったりするとあちこちのテストを
修正しなきゃならないってのはテストとしてよくないんでしょうか?
ここを変えるとするとああここもあそこも…って感じで
ちょっとげんなりです。
0458デフォルトの名無しさんNGNG
>>456
ミスター味っ子
0459デフォルトの名無しさんNGNG
>>457
テストとしてよくないというか、プログラムとしてよくないというか…
変更が波及しています。スメルがバッドです。リファクタリングのサインです。

でも、ある程度は仕方がないと思う。
0460Error401NGNG
>>456
Googleしてみたら、テクノロジックアーツのページなんかで、
extremeを「究極の」って訳してた。
「究極のプログラミング」と言われると、ちょっと違和感あるんだけど・・・。

>>457
なぜ「あちこちのテストを修正しなければならない」ことになるんでしょう?
それがわからないと、なんとも言えません。
ひょっとしたら、テストコードのリファクタリングが必要なのかも。

foo()がbar()を呼び出していて、bar()に仕様変更が入り、その結果foo()の
挙動も変更になるので、foo()のテストもbar()のテストも変更する必要がある、
ということなら、それは仕方が無い。
0461Error401NGNG
XP本で、「究極の」って訳してる所があったかなぁ?
暇なときに探してみようかな。

なぜこのことが気になるかというと、
「XPって究極のプログラミングと言ってるが、どこが”究極”なんだよ」
みたいな批判をするのを、たまに目にするから。
0462Error401NGNG
っていうか、『XPエクストリーム・プログラミング入門』の副題が、
「ソフトウェア開発の究極の手法」
ってなってました(汗

そうかー、そうだったのか。
僕はずっと、「なんでも極端にやる、極端流プログラミング」だと思ってたのだけど・・・。
0463Error401NGNG
>>454
>実践記まで翻訳なのかよ
>日本人で書ける奴いねーの?

平鍋派と長瀬派が対立してるので難しいのかも、などと思ってみる。

# 対立してる云々は全くの想像。
# テクノロジックアーツじゃなくて、テクノロジックアートでした。スマソ。
0464デフォルトの名無しさんNGNG
ペアプロで意見が対立した場合どうしてます?

いまの会社では激しい論争を起こしても問題のない人ばかりなのでよいですが、
そうでもない環境ではどうなんでしょう。
0465デフォルトの名無しさんNGNG
例えばどういうことで対立する?
0466デフォルトの名無しさんNGNG
対立するとしたら、設計の重要な部分だろ。
他のメンバー集めてスタンドアップミーティングすれば良いだろ?
すぐにミーティングが開ける環境を作るというのも極端なプログラミング
を行いために重要だと思う。

重要な部分で無い点で、相棒と対立した場合は、あなたが折れましょう。
どうで大したことじゃないんだから。そんな所に力を注ぐことは無い。
0467457NGNG
>>459
>変更が波及しています。スメルがバッドです。リファクタリングのサインです。
>>460
>ひょっとしたら、テストコードのリファクタリングが必要なのかも。

レスどうもです。やっぱりそうですね…。
クラスの結合テスト的な部分でよくこうなるんですが、クラス自体の
機能はそれぞれのユニットテストにまかせて、結合部分ではインターフェイス
のみテストするようにした方がいいのかな? スタブで置き換えて、正しく
引数が渡されてきてるかチェックするとか…。
0468デフォルトの名無しさんNGNG
とりあえずCppUnitを試してみようとはじめてみたのですが、
ちょっと疑問です。

内部状態を遷移させ状態を元に処理をディスパッチするようなクラスメソッド
をテストする場合ってなにか有効なテストの書き方があるのでしょうか?

従来のUTでは状態遷移マトリクスを書いて、通しやすいセルから埋めて行き、
通しにくいパスは、試行錯誤しながら時には強引に状態を制御しつつ全パス
のチェックを行っていました。

CppUnitでテストをする場合もやはりこういったマトリクスから、全パスが
通るようなシナリオをひねり出してテストクラスに埋め込んで行くのでしょうか?
かなり負荷が大きいような気がしますが。
そんなものなのでしょうか?
0469デフォルトの名無しさんNGNG
テスト専用に、内部状態を直接いじる方法を用意するのって、XP的には、反則?
0470デフォルトの名無しさんNGNG
いろいろと論議を呼ぶ話題だな、それは。
0471デフォルトの名無しさんNGNG
XPむずかすぃ
0472デフォルトの名無しさんNGNG
 Stateパターンで各状態に対する処理をオブジェクトに分離し、
それぞれのオブジェクトを直接ユニットテストする。
 それらのState objectから別のStateへの変更を起こすようなアクションが呼べるように
親Interfaceを定義しておく。
 UnitTestではそのInterfaceをテスト用に正しく呼ばれたことを記録するだけにして、
その記録をassert。

 みたいにやっとるよ。
0473DelフサギコNGNG
  ∧,,∧    / めおけあー
 ミ,,゚Д゚彡 <  新年も、XPでいきまっしょい。
Π ̄ ̄ ̄|  \
|つ 新ネソ ()   
| |___.|
  ∪∪

ピンク本のP242の
インテグリティーってなあに?

唐突ですが、教えてちょ。
0474Error401NGNG
integrity constraints
0475DelフサギコNGNG
 ∩ ∩
 ミ ゙''゙〜
 ミ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < ありがと
 U U    \________

http://home.alc.co.jp/db/owa/eijiro_red
訳は完全性って所か。

ところで、新しい職場でXPの事言って
「ペアプログラミングが〜」とか言ったら

優秀そうな、おっちゃんに
「それってどうなのかなあ。」と
かなり懐疑的な目で見られてしまいました。

どうやって、XP普及を促進させたらいいかなあ。

XPのよいプレゼンテーションを
頭の中で画策しているんだけど,,,うまく思いつかない。

12のプラクチスとか言っても、
「日本的なやり方ではダメじゃないか?」とか言われると
なんとも反論が出来ん。で萎え。
0476DelフサギコNGNG

  (`´`) 
  │ │
  ∧_l   ∫   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  ∬  <  今日はウドン鍋つくタ。
   |∪ |つ=■   \ 冬はあたかい食べ物がいいね
 〜| ̄|
   U''U

ところで、XPスレが沈降しすぎて沈没しそうなので
ネタアゲ

[XP-jp:02971] 原子力発電所運用と XP の共通点

この記事面白かった。

CMMには今のところ、興味ねーので[CMM と XP]スレが詰まらん。
でもって、2チャソでスレ立てたらとか言い出すし・・・・・・・
0477デフォルトの名無しさんNGNG
日本の場合、「なにを作るべきか?」って質問に答えられるひとがクライアント側にいないから、だめでしょう。
0478DelフサギコNGNG
|,,∧ 
|Д゚彡
| U  
| ミ  
| U

>「なにを作るべきか?」って質問に答えられるひとがクライアント側にいないから
じゃあ、クライアントは何を作って欲しいんだろう?
誰にも答えられないな。
0479デフォルトの名無しさんNGNG
>475
白本を最初から最後まで読ませる。
たぶん12のプラクティス全部を理解してないんじゃないかな。
40時間労働、ペアプログラミング、テストユニット、とかの目立つとこだけ見てると、
そんな甘い話じゃないだろ、となっちゃうと思う。

俺も話を聞いてパラパラ眺めただけの時は懐疑的でした。
あれって、マニュアル的に拾い読みするのと、通して読むのとで印象が変わる。

「日本的」というのはそんな関係ないんじゃないの?
あれが「アメリカ的」というわけでも無いんだから。
0480デフォルトの名無しさんNGNG
>>476

>CMMには今のところ、興味ねーので[CMM と XP]スレが詰まらん。

でも、

>「日本的なやり方ではダメじゃないか?」とか言われると

 の対策としては、CMMとの比較も役に立つんじゃないの?

 既存の開発手法やソフトウェア工学の何が駄目で、
 XPが何を解決しているか?
 の話題なんだし。
0481デフォルトの名無しさんNGNG
>>477

>日本の場合、「なにを作るべきか?」って質問に答えられるひとがクライアント側にいないから、だめでしょう。

日本に限らず、「自分が何が欲しいか?」を本当に分かっているクライアントはあまりいないでしょう。
だから、XPでは小規模リリースを繰り返すんだし。
0482デフォルトの名無しさんNGNG
あえて日本がどうなのかを考えるに、日本人の
「建前と本音」を分けるのが好きだという困った性質を
忘れるわけにはいくまい。

みかたによっては、XPとは、「みんな(開発者も客もマネージャも)裏表や嘘偽りは無しでやろうぜ!」
という方法論だ、とも言えよう。

そこから、出来ない約束はしない(=小規模リリース、シンプルデザイン)、
プログラマ間で隠し事はしない(=ペアプロ、共同所有)、着実に出来るプログラムだけをしていく
(=ユニットテスト)、などなどが導けるのだ思われ。

で、これは特に日本人の不得手とするところなのではないか?という心配が、あると思う。
日本人は、「建前と本音」つまり嘘で固めるのが大好きだから(藁

なおこの問題は、XPに限らず、ソフト業界(ゲーム除く:あれはユーザーを「裏切って」も許されるので)全体や、
オンラインフリーソフトの方面などにも、響いている問題と思われ。
しかも昔から今に至るまでずーっと。
0483デフォルトの名無しさんNGNG
ほかにも、
悪いコードに嫌気がさす自分を偽って、だめなソースを使いつづけない(=リファクタ)、
腹が減っては戦はできぬから10秒チャージしろ(=お菓子もちこみ(藁))、なども。
0484デフォルトの名無しさんNGNG
>>482
客と開発チームの間に、嘘がないこと。
→小規模リリースなど

開発チームの内輪に、嘘がないこと。
→ペアプロなど

開発者と計算機そのものとの間に、嘘がないこと。
→テストなど

プロジェクトにかかわる幾つかの存在の間に、このように
"嘘のない関係"が築かれていくのでしょうね。
0485Error401NGNG
>>475
多分、「完全性」ではなくて、「整合性」と言うのが普通だと思います。
integrity constraint(データベース用語)は、「整合性制約」が普通だと思う。

あの本では、データの保存先を普通のファイルにして、さらにファイルを複数に
分けたときのファイル間の「整合性」の話をしてるのだと思います。
0486Error401NGNG
オンサイトクライアントは、「何を作ればいいのかわからない」ということを
解決するものではないと思います。

ビジネス上の判断(ベネフィットとか優先順位とかリスクとか)を迅速に
その場でしてもらう、あるいは、そのことについてコミュニケートしやすく
する、というのがオンサイトクライアントの主な目的ではないかと。

今、XP本を読み返す暇が無いので、間違ってるかもしれませんが・・・。
0487DelフサギコNGNG
   .∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜'"ミ,,゚Д゚ミ < XP普及のためにも
 UU''UU   \_優れたプレゼンをクレ

なまじ、自分が"出来る"と思っている人間が
意外と否定的だったりしません?

>>485
いつも、ありがとうございます。

建前と本音は大きい企業になるほど
より強く存在するもんなんでしょうかね。
0488デフォルトの名無しさんNGNG
うちの会社では、黙ってこれ(白本)を読め、ですみました > プレゼン

…プログラマの間だけですが
0489デフォルトの名無しさんNGNG
あげとく。
0490DelフサギコNGNG
         _________
  ∧,,∧   /いきなり否定から入っているからなあ
 ミ;゚Д゚彡< 白本よめってのは
  ミつ つ  \ ちょっと通じなさそうなのです。
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  

やっぱり、上に立つ立場の人が理解して挑戦しないと
イテレーション計画やオンサイト顧客系の
試みは、なかなか実践できないねー.

上司にどうやってXPを伝えたらいいのかしら。
0491DelフサギコNGNG
 >>480
 CMMのスレ読んでみたら
 痛い奴ばっかじゃん
 読まなきゃよかった。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    チェッ  
  ミ #゚Д゚彡∬
   〃  つ旦O
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
H氏の意見は正論だけど粘着しすぎ
Mは単なるネンチャク厨房だしっ
0492デフォルトの名無しさんNGNG
CMM は ISO うんたらと同じで
取ることがステータスみたいな面が大きいのが弊害だな。
0493デフォルトの名無しさんNGNG
>>490
>上司にどうやってXPを伝えたらいいのかしら。

UnitTestを上司の目の前で実演するのは効果的。
XPの雰囲気を実感させないとイテレーションとか口で説明しても
(゚Д゚)ハァ?
って顔されてしまう。

喫煙ルームでマターリと根回しするのも忘れずに。
0494DelフサギコNGNG
   .∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@'"ミ,,゚Д゚ミ < お子様だから、たばこ吸えません
 UU''UU   \___________
 でも、女性にもてたりするよね。
 アラ,キノセイカシラ

>口で説明しても (゚Д゚)ハァ?

そうそう。なんとかやっていきたいね。
0495デフォルトの名無しさんNGNG
>>491

>H氏の意見は正論だけど粘着しすぎ
>Mは単なるネンチャク厨房だしっ

H氏は議論の誘導が下手だね。
どんどん脱線させられていくし。
0496デフォルトの名無しさんNGNG
>>490

>上司にどうやってXPを伝えたらいいのかしら。

良いことしか伝えないで、口頭で同意を取り付ける。
あとは、勝手に実践する。

 権限がないなら、逸脱する。
0497デフォルトの名無しさんNGNG
口で説明して解からないなら、ゲンコツでもビールビンでも…
0498DelフサギコNGNG
  ∧,,∧   / ̄ ̄
  ミ;゚Д゚ミ <  強制的に物理アクセス?
  ミ   ミ   \__
〜ミ,UU_ミ  ビールビンハ チョット…
       ハードウェアガ コワレチャウ オソレガ…
0499デフォルトの名無しさんNGNG
>>497
下の口にですか?
0500493NGNG
>>498
AAを見ただけでネタスレと勘違いする奴が多いからsage進行の方がいいよ。
とくに連休中は。

(493の続き)
折れも吸わないけど、上司と気軽に雑談できる数少ない場所なんでよく行きます。
そういう場所なら、
「え?人月の神話読んだ事無いんですか?ダメっすよ。」
とか言っても角が立ちにくいしね。
0501デフォルトの名無しさんNGNG
>>454
激しく遅レスだけど、実践記本書きたいす。
でも顧客の都合というものが……。
実名出せない実践記ってウソくさいもんねえ。
0502デフォルトの名無しさんNGNG
なんでEPじゃなくてXPなの?
0503デフォルトの名無しさんNGNG
どうして本にしたがるのさ
Webで紹介すりゃいいだろ
紙の無駄だよゴルァ!!
0504デフォルトの名無しさんNGNG
XPの本質はいかに変更に伴う負荷を減らすかにあると思うのですがいかがでしょうか?
ペアプロとか、担当者がいなくなってもよいための1つの方法であって、
必ずしもXPだからといってペアプロをやる必要はないように思います
何か方法論のみが1人歩きしているように感じてしまいます。
0505Error401NGNG
>>504
XPを部分的に取り入れていて、痛切に感じるのは「共同所有」の
大切さと難しさです。
この共同所有を実現するために、そして、プログラムの、テストの
品質を保つのに最も重要なのが「ペアプログラミング」だと思います。

リファクタリングの勇気を与えてくれるのは「テスティング」でしょうが、
それは、適切なテストを前提としなければなりません。
適切なテストは、一人でやっていると難しいものがあると思います。
チーム全員が高スキルで、いつでも最高の調子で仕事が出来れば
別でしょうけど。

>XPの本質はいかに変更に伴う負荷を減らすかにある

それだけがXPの本質である、と言われるとちょっと違うような気がします。
それは一面をとらえただけにすぎないのではないでしょうか。

XPとは、ソフトウェアの品質・価値を最高に高め、そして開発を楽にさせる
手法である、と僕は考えています。
0506Error401NGNG
ちなみに・・・。

ずっと前にマ板で書いたことがあるのですが、僕のチームはXPを部分的に
取り入れています。
できていないのが「ペアプログラミング」「オンサイト顧客」です。
(週40時間もできてませんが、それはおいといて)

後者は、XPと比べて単純に時間がかかるだけで、何度もコミュニケーションを
とれば、ほぼ問題は無いのですが、前者ができないのは大問題です。

XPのプラクティス「単純な設計」、適切な「テスティング」、そして、コードの
品質。これを保証するのに多大な労力が必要です。
これを解決するために、不必要かもしれない設計書(メモ)と、レビューを
やっています。

ひょっとすると、ペアプログラミングをすれば以上のような問題も解決して、
週40時間も達成できるのかもしれません。
ただ、これは心理的なハードルが高くて、なかなかやる気になれないんですよね。
あまりにも今までの文化と違いすぎて。
0507デフォルトの名無しさんNGNG
>リファクタリングの勇気を与えてくれるのは「テスティング」でしょうが、

テストが全て自動でできればいいのですが、ユーザーインターフェイスの部分は自動ではできませんよね。
ですからテスト、リファクタリングのサイクルをまわしていくには、自動でテストできる部分と
できない部分をうまく分けて設計すること、いわゆるモデリングの部分も大事だとおもうのですが、
いかがでしょうか?
0508Error401NGNG
>>507
えーと、何かの反論でしょうか(汗
判りづらかったかもしれませんが、>>505-506の僕の主張は

・XPでは「共同所有」こそが最も大事ではないか
・XPは単に「変更に伴う負荷を軽減する」ためだけのものではない

ということです。

いわゆる「詳細設計書」なしの開発や、事前・事後のレビューなしの
開発を実現するにあたって、共同所有が必要であり、そのためには
ペアプログラミングこそが必要であると。

シンプルデザインに関しては、以前マ板でハマッタ覚えがあるので
言及しません(汗
0509Error401NGNG
リファクタリングに関して説明を追加しておきます。

リファクタリングをするにあたって最も重要なのが、「適切な」テストスィート
の存在です。これがなければ、他人のコードはおろか、自分のコードさえ
自信を持ってリファクタリングなんかできません。

テストは一人で作っていると、それが「適切である」という保証もないし、
適切なものにならないほうが多いかもしれません。
それを補う意味で、ペアプログラミングが重要なのであり、決して

>何か方法論のみが1人歩きしているように感じてしまいます。
ということではないと思っています。

もちろんモデリングも大事ですが、XPは最初から完璧なモデリングを
要求しているものではないと思います。そのためのリファクタリングでしょう?
0510Error401NGNG
・・・って、ペアプログラミングを実践していない人間が言っても説得力ないか(汗
0511デフォルトの名無しさんNGNG
>>508
> ・XPでは「共同所有」こそが最も大事ではないか
いや、そうは思わない。

コードは、プログラマの財産であり、仕事に対する成果でもある。
財産の共同所有とは即ち共産主義である。
共産主義は現在の資本主義よりも優れていると吹聴され、
いくつかの国家では実際に行われたが、思った通りには行かなかった。

共産主義は清すぎたと思う、そしてXPも清すぎる。
人の悪い部分は全て無視しているような気がする。
XPの「Testing」「Refactoring」についての技術的な部分に関しては同意するが、
思想的な部分「ペアプログラミング」「共同所有」については同意できない。
# 「週40時間」なんて嘘だと信じている
0512デフォルトの名無しさんNGNG
>>511
>コードは、プログラマの財産であり、仕事に対する成果でもある。
つうかコードは会社の財産だけど。
0513デフォルトの名無しさんNGNG
>XPの「Testing」「Refactoring」についての技術的な部分に関しては同意するが、
>思想的な部分「ペアプログラミング」「共同所有」については同意できない。

わたしもいまのところ(あんまり詳しくないので)そういう考えです。
アクティブに動いているプロジェクトなら、共同所有のメリットは多いかもしれませんが、
ほとんど忘れたころに昔のプログラムを修正するなんて場合には
あまり役に立たないんじゃないでしょうか?
0514デフォルトの名無しさんNGNG
>ほとんど忘れたころに昔のプログラムを修正するなんて場合には
>あまり役に立たないんじゃないでしょうか?
そりゃそうだ。そもそもXPはこういうプロジェクトは
ターゲットにしていない。
0515デフォルトの名無しさんNGNG
XPの有効なプロジェクトとはどんなものでしょうか?
逆にXPに向かないものとは?
ああ、それから私は別にXPに反対とかそういうのではないです。
XPといっても、いま1つふにおちないのでいろいろな意見が聞ければ幸いです。
0516デフォルトの名無しさんNGNG
>>515
> XPの有効なプロジェクトとはどんなものでしょうか?
・納期が自分で決められる。
・大人数のプロジェクトでない。
・クライアントが協力的である。

> 逆にXPに向かないものとは?
・納期が自分で決められない。
 仕様が決まっていないのに納期だけ決まっているプロジェクトなど以ての外。
・大人数のプロジェクトである。
 特に、終わりが決まっているので、アホみたいに人を入れ、
 責任の押し付け合いをしているプロジェクトには向かない。
・クライアントが非協力的である。
 納期間近にとんでもない仕様変更を言ったりしない、
 要求項目の質問を何度言っても無視するクライアントだと向かない。
0517デフォルトの名無しさんNGNG
>> 逆にXPに向かないものとは?
>・納期が自分で決められない。
>・大人数のプロジェクトである。
>・クライアントが非協力的である。

こういう条件が向いている(っていうか被害が少なくてすむ)
開発手法ってあるのでしょうか?
 XPの場合、上記の条件をなんとか変えるように努力を促し、
無理なら早急な撤退を求めているきがするけど.
0518デフォルトの名無しさんNGNG
>XPの「Testing」「Refactoring」についての技術的な部分に関しては同意するが、
>思想的な部分「ペアプログラミング」「共同所有」については同意できない。

 XPは思想的な部分がもっとも重要だと思うんだけど。

 「ペアプログラミング」は「共同所有」を実現するために必要だとして、
 もし「共同所有」が無ければ、「変化を抱擁する」が実現できなく
 なってしまいませんか?
 そこは自分が書いたんじゃないから直せない、
 じゃあ、変化を受け入れることにはならないでしょうし。

 また、XPは開発者が勇気と自信を持つための開発手法であると思いません?

 
0519デフォルトの名無しさんNGNG
>517
その条件全部だと、もてる発言力を総動員して、待避したほうtがいいような。
むしろ、高度に政治的な問題になるのではないかと予想。
0520デフォルトの名無しさんNGNG
>コードは、プログラマの財産であり、仕事に対する成果でもある。

そういう「慢心」を捨てることで、結果的にプログラムを改善できる、ってのがXPかと。

昔からよく言うが、営業の人間は同僚がライバルであり極端にいえば足引張りあいも有りだが、
技術の人間は同僚が協力者でなければならない。せっかく共同で何かを作るために
その場に雁首そろえているのに、そいつらが互いに協力もしないなら、ろくなものが作れないのは日を見るより明か。

その延長にXPは有ると思う。人という字は二人の人が支えあって(以下略(藁

>ほとんど忘れたころに昔のプログラムを修正するなんて場合には

たしかにそれは言える。オプソでもしばらく放置プレイされたソースなんて腐ってる。
それはソースそのものの質が下がるという意味では勿論なく、
ソースの随行者たるプログラマが不在だということだ。

活発に共同所有してペアプロしている「間」は、そのソースのことをメンバーの大勢が
「しっている」んだよね。記憶している、理解している。
ソース自体が全員からアクセス可能であると同時に、全員の記憶がソースとシンクロしている、
つまり記憶はソースを補完(そのおかげでドキュメントもたいして要らない)し、
ソースは記憶を補完する。両方が作用しあってプロジェクトは活性になる。

その状態が去ってしまい、記憶から忘却されれば、ソースだけの片肺飛行。
ドキュメントが存在する従来方法論のほうがマシかもしれない。
0521デフォルトの名無しさんNGNG
>>517
ウチの会社のこんな条件のプロジェクトばっかりだな。
不景気な世の中だね・・・。

XPなんて夢のまた夢か(;´Д`)。。
0522デフォルトの名無しさんNGNG
>>517
XP の思想が広まれば
(例えば日経なんかでひつこく喧伝してくれれば)
そういう仕事はまともなソフトウェアハウスは引き受けない
という認識を顧客が持つようになる…といいなあ
0523デフォルトの名無しさんNGNG
XPは開発者たちの文字通り「極端な」理想なのさ。
だから100%実行する必要なんてない。
楽になろうぜ
0524デフォルトの名無しさんNGNG
ペアプロしたほうが明らかに良質なコードができるが、
ある程度のカオスは許容することにして、
簡単であろう部分は単独で書くというスタイルでやっているんだけど、
これって「XP」的には駄目なのかなあ。
0525Error401NGNG
>>511
>コードは、プログラマの財産であり、仕事に対する成果でもある。
>財産の共同所有とは即ち共産主義である。

>>512さんのおっしゃるとおり、コードの所有権は普通会社に帰属しますが
それはおいといて。
XPの「共同所有」は、所有権という権利の話をしているのではありません。
知識を共有しようぜってことですよ。

>人の悪い部分は全て無視しているような気がする。

具体的には、どのようなことですか?
XPは、開発者側のもっとも悪い部分である「思い込み」「勘違い」を
解決してくれるものだと思います。

># 「週40時間」なんて嘘だと信じている

嘘もなにも、XPの「週40時間」以外のプラクティスを実践すれば、
結果的に週40時間が実現できるなどと言ってるのではないです。
週40時間もプラクティスのひとつです。勘違いしてませんか?

XPに限ったことじゃありませんが、週40時間を実現できないとしたら、それは
・仕事のやりかたがまずい
・能力不足
・できない仕事を受注している
のどれかだと思います。

それから・・・。
XPのことはよくわかった。でも、XPなんてクソだね。
って人は、何も言わずに他のプロセスをやればいいと思うんですけどね。
批判せずにはいられないんでしょうか(笑
0526Error401NGNG
>>513
>ほとんど忘れたころに昔のプログラムを修正するなんて場合には
>あまり役に立たないんじゃないでしょうか?

確かに、XPではメンテナンスに関してあまり言及がありませんね。
というか、上流の話も全然出てきませんね。
紫本を読んでいると、ユースケースさえ書かないみたいだし。
ストーリーカードがその代わりをしているみたいですが。

ただひとつ言える事は、テストセットは大きな自信になるって
ことですね。
巨大なぐちゃぐちゃのコードがあり、解析不能で、ドキュメントもなく、実際に動いている
画面を指して「これが仕様だ」なんて言われるよりは、よっぽどましかと(笑
0527Error401NGNG
紫本じゃなくてピンク本ですね(汗
0528Error401NGNG
ピンク本でもなくて、オレンジ本ですね(滝汗
すみません、何度も。
0529デフォルトの名無しさんNGNG
>上流の話も全然出てきませんね。
>紫本を読んでいると、ユースケースさえ書かないみたいだし。
>ストーリーカードがその代わりをしているみたいですが。

XPに対する疑問の1つが、「それで本当にできるのか」です。
ある程度のスキルがある人なら問題ないでしょうが、根本がよくないものを
リファクタリングしたってよくならないんじゃないのかなと。
0530デフォルトの名無しさんNGNG
>>525
511じゃないけど、俺は自分の能力を認めてもらいたいからペアプロで「完全に」共有コードになる
ことは耐えられない。同僚のコードを修正するのも自分のコードを見てもらうのも賛成だけど、
はなから共同で開発なんていや。
それにペアプロなんてしたらこうしてサボって2chもみれなくなるし。

それに俺が一番充実するのは火の点いたタスクを残業して片づけているときだから40時間なんて
守ってられないし、そもそも仕事しないで遊んでいる時間の比率で毎日の就業時間は決まる。

俺もXPの他のプラクティクスには大賛成だけど、どうもこの二つは受け入れられん。
0531デフォルトの名無しさんNGNG
>紫本を読んでいると、ユースケースさえ書かないみたいだし。
>ストーリーカードがその代わりをしているみたいですが。

ストーリーカードというよりテストプログラムがユースケースのかわりなんじゃないのかな?
だから、テストが書けないものはユースケースを書いたほうがいいと思う。
0532デフォルトの名無しさんNGNG
>紫本を読んでいると、ユースケースさえ書かないみたいだし。
>ストーリーカードがその代わりをしているみたいですが。

ストーリーカードというよりテストプログラムがユースケースのかわりなんじゃないのかな?
だから、テストが書けないものはユースケースを書いたほうがいいと思う。
0533DelフサギコNGNG

  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < ちょっと、言わしてもうらうざんす
  UU""" U U   \_______________

>>529
もしかして
>ある程度のスキルがある人なら問題ないでしょうが、
>根本がよくないものを
というのは、スキルのある人しかXPできないとか
思っているんじゃないでしょうか。

それこそが、最もよくあるXPの誤解だと思うんだけど....

XP本を読めるほどの日本語/英語がない
というのならスキルがないんだろうけど。

>>530
>はなから共同で開発なんていや。
ならXPチームからは外れてくれって、ベックは逝ってるんじゃなかた?

>そもそも仕事しないで遊んでいる時間の比率で毎日の就業時間は決まる。
俺だって、2チャソで遊びたいが
遊んでいたら仕事は終わらないだろ。
さっさと定時帰りで家で2チャソすれ。
0534デフォルトの名無しさんNGNG
>>533
>ならXPチームからは外れてくれって、ベックは逝ってるんじゃなかた?
まあ本気でペアプロするチームなら(可能なら)外れるよ。別にXPチームで仕事がしたいわけ
じゃないぞ。単に効率的な開発手法に興味があるだけだ。

>俺だって、2チャソで遊びたいが
>遊んでいたら仕事は終わらないだろ。
>さっさと定時帰りで家で2チャソすれ。
いや終わるぞ。つーか一日の純粋な仕事時間は平均したら3時間くらいじゃないかな?
それでも俺はぶっちぎりでエースだ。
第一定時で帰って家で2チャソするメリットってなに?
0535DelフサギコNGNG
>まあ本気でペアプロするチームなら(可能なら)外れるよ。別にXPチームで仕事がし
>じゃないぞ。単に効率的な開発手法に興味があるだけだ。

XPでは、そーゆー
個人プレーではいけないよって事を
ベックは比喩で「チームから外れてくれ」
って表現で伝いたいと思われ.

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    
  ミ,, ゚Д゚彡
   〃  つ旦~~
 〜ミ,,,n,,n[ ̄ ̄ ̄.]
        ̄ ̄ ̄
最初から、ペアプロで全部は無理だろうから
少しずつ、はじめは一日1時間、次の日はちょっと増やして
増やしすぎたら
それで開発効率があがるかどうかを試せって
本に紹介されてたっす。たしか。

全部ペアプロってのはしんどいと思うけど。
俺は試してみたいな。
最初から否定に走る事ないと思われ

>いや終わるぞ。つーか一日の純粋な仕事時間は平均したら3時間くらいじゃないかな?

そのへんが、XPでは完全作業時間という話で紹介されていて
完全作業時間見積りに2〜3倍をかけて実際の見積もりとする
ちうスタイルが好き。

>それでも俺はぶっちぎりでエースだ。
でも、プロジェクトのチーム全体で
失敗に向かっていたら楽しくないよね。

>第一定時で帰って家で2チャソするメリットってなに?
知らん。
0536デフォルトの名無しさんNGNG
>>535
>最初から否定に走る事ないと思われ
まあね。俺は自分で実験する気が無いから周りでもっとペアプロの評価が高くなれば
試してみるよ。

>いや終わるぞ。つーか一日の純粋な仕事時間は平均したら3時間くらいじゃないかな?
>そのへんが、XPでは完全作業時間という話で紹介されていて
>完全作業時間見積りに2〜3倍をかけて実際の見積もりとする
そうじゃなくて、見積もり作業時間が平均して3時間くらいってこと。
完全作業時間はそれこそ1.5時間くらいだろう。

>でも、プロジェクトのチーム全体で失敗に向かっていたら楽しくないよね。
あたりまえ。何がいいたいのかよくわからん。
0537デフォルトの名無しさんNGNG
>それでも俺はぶっちぎりでエースだ。
カコワルイ
0538デフォルトの名無しさんNGNG
>>534
>それでも俺はぶっちぎりでエースだ。

「そーゆー人はプロペラ帽をかぶってなさい」

いや、君の言うことはよくわかる。
漏れも(自慢したいわけじゃないが)同じだし。
でもね、XPではチームプレイによって成功を得ることが目的なのよ。

エースという言葉が出たから野球にでも例えてみると、君がたとえ必勝不敗のエースだったと
しても、135試合全部で先発完投することはできない。
君が登板する試合は全部完全試合だったとしても、残りの試合で全部負けたらチームは優勝
できないでしょ。
だから、エースは自分の出る試合でだけ活躍するんじゃなくて、選手兼コーチとして他のメンバ
ーをサポートするとか、あえて抑えに回って勝てそうな試合を全部拾うとか、そういうチームプレ
イでチームを優勝に導くの方がいい、ってのがXPの考え方なわけだ。

ペアプログラミングも、ただ単に二人でコードを書くということじゃない。
お互いに教えあって、お互いの技術や発見を共有することに意味があるんだよ。

……と、かくいう漏れもペアプログラミングはほとんど経験ないんだが(w
つーか、XPが適応できるほど余裕がある仕事なんかねーよ。うわーん!
0539デフォルトの名無しさんNGNG
ペアプロネタはマ版でやってくれ。
まともな議論は全く見当たらない。
0540デフォルトの名無しさんNGNG
ここ、sage進行ですか?

511さんとか525さんの言ってること、すごくわかるんですが。
私もXPプロジェクト意外では似た立場・似たスタンスですから。

でも、ペアプロを実践してみて、ペアでやった結果コード品質を上げたり、
OJT効果を上げたり、コーチとしてチーム全体のコードに目を配ったり、
そういったことを可能にするのはまさにエースプログラマあってこそ、なんですね。
#「全員エース級である」必要はないです。

もちろんシングルで他の人の数倍の生産性・品質を上げたり、
他の誰にも書けないようなコードを書いたりしたときの自己満足(自嘲
というのは捨てがたかったりはするんですが。
そこんところをちゃーんと評価してくれる環境にいると、やってて満足感あります。
#そういう上司を育てるためにはXPについて啓蒙しなくっちゃいけなくて、
#自分がXPに懐疑的すぎるとなかなか難しかったりはしますが。

最終的に顧客にとっての費用対効果が最も高くなる方法論(のひとつ)として
捉えることが大事で、その効果が上げられると評価・報酬も高くなる、のが本筋。
素人さんなら自己満最優先でもいいけどね。

で、個人的には、
「XPによって費用対効果が上がる案件の特質」とか、
「XP適用可能顧客の条件」とか、
「見積もりにおける理想時間とベロシティの測定のコツ」とか、
そういった方向に議論を広げたいんですが、実践されてる方いかが?
0541540NGNG
よく見たら538さんと無茶苦茶被ってました……。
0542DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,,,,ミ,,゚Д゚彡 < エースが去って会社も逝ったでは
  UU"""" U U    \ ビジネスにならないわけで…
 リスク回避リスク回避っと。

 ベロシチーって何だわさ?
0543デフォルトの名無しさんNGNG
>>542
velocity
0544デフォルトの名無しさんNGNG
>スキルのある人しかXPできないとか思っているんじゃないでしょうか。

いえ、そういうわけではありません。
XPの場合ユースケースとか書かずにプログラミングを始めることになると思うけど
そうした場合にスキルのない人がきちんとコードを書けるのか?という疑問があります。
もちろんペアプロでそのへんは補えるかもしれないけど、それだと1部の人に負担が
かかりすぎてしまうのではと。XPといったときにがちがちにドキュメントを書く必要は
ないと思うけど、ある程度は上流に時間をかけたほうがいいのでは。
0545U-名無しさんNGNG
> XPの場合ユースケースとか書かずにプログラミングを始めることになると思うけど
> そうした場合にスキルのない人がきちんとコードを書けるのか?という疑問があります。

RADツールを使うことが前提なの?
RADツールを使うスキルの無い人=スキルの無い人 なの?
0546DelフサギコNGNG
スキルのない人ってどういう人の事を指します?

俺的にはキーパンチャーレベルの人のことかと思うんだけど

この世の中で、開発に参加している人の中で
純粋な意味でのコーダーというか
キーパンチャーなんて存在するかな。
         _________
  ∧,,∧   / 
 ミ,,゚Д゚彡<  んなやつ、いねーよ
  ミつ つ  \ 
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  ダイタイ ギョウムアプリ ノ ドコニ
      プログラミング スキル ガ イルノサ....

ヒツヨウ ナノハ プロジェクト マネジャ スキル デスワ


最低限、if,for,whileと変数と関数とがわかっていれば
なんとかプログラム組めるでしょう。
開発していくうちにスキルアップできるでしょう。

”プログラム組めないSE”というのでも
それくらいは誰だってできるっしょ。二時間くらいで学習するだろさ。

元々それに達さない人・・・
掃除のおばちゃんもXPプロジェクトに参加してもらうのは
ちょっとできないよね。
0547DelフサギコNGNG

  ∧,,∧   / ユースケースってUMLの事?
  ミ,,゚Д゚ミ <  
  ミ   ミ   \
〜ミ,UU_ミ
ユースケサンタマリア ヲ オモイダシターヨ

設計図を書いたら仕様変更がやりにくくならないですか?
プログラムと設計図の同期が面倒だから
作ったらすぐ捨てろってXPでは書いてありますね。
設計図は頭とプログラムで保存しておくって事かな。

>もちろんペアプロでそのへんは補えるかもしれないけど、それだと1部の人に負担が
>かかりすぎてしまうのではと。
ペアプロパートナーが成長すると負担が減るかと。

>ある程度は上流に時間をかけたほうがいいのでは。
いつでも、設計、いつでも仕様変更
変化を抱擁して、車を運転するように
プロジェクトを成長させて逝った方が
顧客満足度が高いと思います。

>>RADツールを使うスキルの無い人=スキルの無い人 なの?
ケントベッ君はVisualアゲ4スモルトク使いなような…

UMLは手書きが基本かもー

RADというよりCASEツールかな。
0548デフォルトの名無しさんNGNG
>最低限、if,for,whileと変数と関数とがわかっていればなんとかプログラム組めるでしょう。

「いまから、web browser を開発するんだけど、ペアプロでやるよ。じゃ、プログラミング始めて」
といわれてもなにもできない人がほとんだと思うけど。
0549DelフサギコNGNG
 ∩| 
 ミ ゙''゙゙゙つ 
 ミ∧,,∧   
 ミ,,゚Д゚彡
 U U    

まったく未経験の分野の開発なら
2週間くらい調査期間をつくっておくってのも
書いてあるけど…

俺だって、ゲッコーエンジンから開発しろって
言われたら、何からやっていいかわけわかになるけど
とりあえず、テキストビューからかなあ。
0550デフォルトの名無しさんNGNG
>とりあえず、テキストビューからかなあ。
それでほんとにテキストビューのコーディングを始めるのはいくらなんでも無謀。
0551DelフサギコNGNG
 ∩ ∩
 ミ ゙''゙〜 
 ミ∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < なんで?
 U U   \________
0552デフォルトの名無しさんNGNG
XP だっていきなりコーディングはじめるわけじゃなし…
0553デフォルトの名無しさんNGNG
「ペアプログラミングの有効性は既に実証されている」そうな。

http://www.ogis-ri.co.jp/otc/hiroba/specials/oday2001/report/A3.html
0554デフォルトの名無しさんNGNG
ペアプログラミングて何?>553
■ このスレッドは過去ログ倉庫に格納されています