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

eXtreme Programming

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

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

参考URL:
http://objectclub.esm.co.jp/eXtremeProgramming/
0409デフォルトの名無しさんNGNG
>>408
自分のコードみたら言語によってまちまちかも。
分けた方が全体的な保守性はいいのは確かだね。
0410デフォルトの名無しさんNGNG
あんまり詳しく読んでないので怪しいけど
このDUnitのクラス構造ちょっと変わってるね。

TComponent <- composite
 + TTest <- この時点でテストを階層化してる。こいつを継承してテストを書く
  + TTestSuite <- テストの(階層的な)実行、レポート、singleton
  + TMethodTest <- TTestの個々のメソッドをオブジェクト化、テストメソッドの呼び出しを担当。テストメソッド毎にもテスト結果を持てる。

あとプロファイラなんかの拡張機能もTTestに突っ込んである。

TComponentって事は登録してフォームに貼り付けてGUIテストもできるのかな?
# ソースではregisterしてないけど
0411デフォルトの名無しさんNGNG
つーか、どっちのDUnitの話なのか明示しやがれ、ゴルァ。
つーか、同じ名前を付けんじゃねーぞ、ゴルァ。
>>386では”DUNIT"ってかいてるけど、ソースフォージの表記は"DUnit"だぞ、ゴルァ。
つーか、>>383の本買ったぞゴルァ。
まだ読んでねーぞ、ゴルァ。
0412デフォルトの名無しさんNGNG
CRCカード使ってる人いますか?
使い勝手どうですか?
0413デフォルトの名無しさんNGNG
WindowsXP発売記念age
0414デフォルトの名無しさんNGNG
それは創刊!スレでやってくれ
0415デフォルトの名無しさんNGNG
perl_unitを使ったことのある人いませんか?
make testでエラーがでて困ってるんですけど
なんとかなりませんか?
あと使い勝手はどうですか?
0416デフォルトの名無しさんNGNG
   
0417デフォルトの名無しさんNGNG
eXtremeあげ
0418デフォルトの名無しさんNGNG
極限age
0419デフォルトの名無しさんNGNG
だれか書き込んでage
0420デフォルトの名無しさんNGNG
プログラミング以外の作業にもXP使えないかな。
0421デフォルトの名無しさんNGNG
最近興味を持ち始めました。
webをまわってみても実際に何をするのかがいまいちつかめなかったので
とりあえずXP入門の本から読んでますが、珍妙な訳にくじけそうです。
0422デフォルトの名無しさんNGNG
実力があって、頭の回転という意味でも人間的にもデキルやつで、
性格もよくて、将来に何の不安もなくて、毎日楽しく生きてる、
ようなプログラマーが集まれば、勝手にXPになります。
0423デフォルトの名無しさんNGNG
>プログラミング以外の作業にもXP使えないかな。

(デジタルなどのおかげで)成果物の「完璧コピー」がとり易い分野であり、
成果物の「ただしさ」がはっきり定義できる分野ならば、
ほかでも使えるかもね。

プログラム以外で、そういう意味でデジタル化されてる分野ってーと
なにがあるでしょう?

とりあえず思いつくのが、音楽とかの芸術分野と、設計図分野。

でも芸術は「ただしさ」が定義できないんで、
UnitTestとかが意味をもたない(藁)

設計図はいけるかもね。
実際、大企業むけのシステムでは最近、(リモートでだけど)複数人間による
図の同時編集なんてのが行なわれている。もちろんVer管理もあるし、
間違いも定義可能なのは言うまでもない。
なのでUnitTestもRefactoringもPairProgもできる。

>勝手にXPになります。

それは言えてるかも。
馬鹿なやつは下らない(有害無益な)管理方法を採用してデスマーチに嵌っていく。
0424デフォルトの名無しさんNGNG
どこまでUnitTest使えてます?
ウチでは,UnitTestって言うくらいなんで,当たり前だけどIntegrationTest(組合せテストね)
では全然使えません。何が言いたいかって言うと,単純なクラス以外は適用が困難で(つまり
テストのための準備が大変すぎて)実行時テストの方が工数的に妥当だよね。
ファイルやネットワークやモジュール間通信をするクラスなんかはこれに当たることが多いなり。
で,単純なクラスってなると大抵,基礎的なクラスで,そうそういじらないと。新しいプロジェクト
じゃない限り枯れてる事も多いと。逆に上位のクラス(アプリクラスって言ってるけど)では,適用が
大変だと。むにゅー,どこに使うなり?適用事例求む。
0425デフォルトの名無しさんNGNG
>>424
禿しく同意。
cppunit 拾ってきて、UnitTest の環境作って
テストクラス書こうとして、1行目で挫折しました。
0426デフォルトの名無しさんNGNG
>>424
俺は出来るところだけテスト書いてる。だからテストが書けるのは10%くらいかな。
でも最初にこれをやることが肝心。いちどコンパイルのサイクルの中にテストが
入ってくれば徐々にテストは増えていく。1ヶ月も続けるとテストなしでは不安を
感じるようになったよ。
「テスト書いたから実行時テストは要らない」にはならないんだから、すべてを
網羅しようとしないことが大切だと思う。
0427デフォルトの名無しさんNGNG
>>426 同意。
テストユニットは几帳面で完璧主義な人には向かない。
テストユニットは動作保証というより、
コーディング前にテストを用意することにより、
設計検証として役に立つ(ことがある)。
テストを作ると「この仕様だめじゃん」とか気付く。
0428DelフサギコNGNG
 実際、どんな所でテストユニットを使いましたか?
 具体例を交えて話題が出ると
 スレも盛り上がるかと…

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧  オレ ハ DUnit ヲ
  ミ,, ゚Д゚彡  イキナリ ザセツ シテルンダケド....
   〃つl⌒|⌒l
 〜ミ,,[ ̄ ̄ ̄.]
      ̄ ̄ ̄
0429デフォルトの名無しさんNGNG
ユニットテストをしやすいクラス、しにくいクラスという話で、
テストしやすいクラスは設計の筋がよいという経験則をよく聞きます。
例えば値を計算するメソッドと、それを表示するメソッドを分けるとか。

ひょっとして関数型プログラミングの副作用をなくして参照透過性を保つとい
う考え方に通じるものがあるんでしょうか?
0430デフォルトの名無しさんNGNG
dunitもcppUnitも普通に使ってるよ。

論理処理とユーザーインターフェイスの分離は前提だよな。
そしてユニットテストは論理処理の側だけに書く。
XP的にはユニットテスト書くのが困難ならリファクタリングすべきだと思うけどどう?
0431デフォルトの名無しさんNGNG
>>424
>テストのための準備が大変すぎて)実行時テストの方が工数的に妥当だよね。
「実行時テスト」というのは初めて聞いたけど、どういうものなの?
「テストのための準備」というのを、テストをやるたびにしなきゃならないなら、
多少工数がかかっても、UnitTestを書いておいたほうがいいと思う。

>ファイルやネットワークやモジュール間通信をするクラスなんかはこれに当たることが多いなり。
これも、

>逆に上位のクラス(アプリクラスって言ってるけど)
これも、UnitTestは可能だと思うけどなぁ。

ちなみに僕は、ほとんどの場合、下位クラスはstubに置き換えて結合して、
UnitTestをやってます。
んで、下位クラスが出来たところで、結合してUnitTestを実行。

>>426
>1ヶ月も続けるとテストなしでは不安を
>感じるようになったよ。
うんうん。

となりのチームは、コンパイルもせずに、ダーっとコードを書いて、
山のようなコンパイルエラーが出て、それをちまちま取って、コンパイルできて、
動かそうとしたら全く動かなくて途方に暮れてるみたいだけど、
こんなやり方で、良く集中力が持続するなーって感心する。
0432Error401NGNG
>>427
>テストユニットは動作保証というより、
>コーディング前にテストを用意することにより、
>設計検証として役に立つ(ことがある)。

そう?
僕は動作保証の為にUnitTestを書いてるけど。

だって、穴のたくさんあいたTest Suiteだと、リファクタリングも怖くてできないし、
他の人の作ったのなんて、怖くてメンテできない。
そんなことない?

あ、僕はUnitTest依存症なんだと、今気づいた。
0433デフォルトの名無しさんNGNG
で、ペアプログラミングってやってる人いるの?
0434デフォルトの名無しさんNGNG
もう一人の人格と話しながらやってます。
0435デフォルトの名無しさんNGNG
CppUnit1.5 を VC++6.0 で使おうとしていて困ったことが。

サンプルに付いてくる HostApp はMFCアプリですが、自分が
テストしたいのはコンソールアプリです。コンソールアプリから
TestRunnder::run() を呼ぶとダイアログを表示するところで
エラーが出でしまいます。

マニュアルによるとTestRunner.dll のようなMFC と動的にリンクされる
レギュラーDLLではエクスポート関数の先頭でAFX_MANAGE_STATE
マクロを使ってモジュール状態を切り替える必要があると。

で、このマクロをつかうと今度は DllMain の多重定義のエラーが
出てしまい、いろいろ調べまわってみましたが同様のエラーに悩んで
いる人はたくさんいましたが解決法が見つかりません。

だれか解決法知っている人いませんか?
0436デフォルトの名無しさんNGNG
>>435 コンソール版の TestRunner が付いてなかったか?
0437デフォルトの名無しさんNGNG
>>435
http://member.nifty.ne.jp/glad/cpp/test/
こちらがよいと思われますぞ。
0438435NGNG
>>436
コンソール版の TestRunner というのはみあたらないですね。

>>437
実は最初に cppunit-x を使ってこれはちゃんと動きました。
プアな環境でも動作するようにつくってあるということで
独自のマクロを使っているので、VC++6で使う分には CppUnit1.5
のほうが分かりやすいと思ったのでそっちも試してみたのでした。
あと結果の表示がグラフィカルで見やすいと思ったので。。
「eXtreme Programming テスト技法」でも主に cppunit-x が
紹介されてましたが、みなさんこっちをつかってるのですか?
0439436NGNG
あり?わしが使ってるのはコンソール版なんだが、
これは CppUnit1.5では無いのか。
TextTestResult.h/cpp ってのは入ってないかい?
若干手を加えたので、どれがオリジナルか判らん状態。
0440デフォルトの名無しさんNGNG
C++Builder5にCppUnitCBをインストールしたんだけど、
サンプルのSmartPtrTestが予期した動作をしてくれないっぽい。
起動すると、「Unknown test class: TestSuite」ってダイアログが出て、その後もフォームこそ出るけど、その中のボタンを押しても反応無し。

どなたか、原因を知っている方いらしたら、よろしくお願いします。
0441435NGNG
CppUnit1.5 の TestRunner がコンソールアプリから使えない件で、
TestRunner.dll がレギュラーDLLであると書いてしまいましたが、
拡張DLLの間違いでした。拡張DLLの関数を呼ぶことができるのは
MFCアプリだけということなので、今のままではコンソールアプリから
CppUnit1.5 の TestRunner を使うことはできないみたいですね。
0442435NGNG
たびたびすまんです。
SourceForge から CppUnit1.6.2 をひろってきたら TextTestRunner
や TextTestResult というクラスがありました。これを使ったらOKでした。
>>439 ありがとう!
0443(X_P)NGNG
チーム全体で使ってみた所の感想が聞きたいんだが。
誰かいない?
0444デフォルトの名無しさんNGNG
>>443

これは読んだかな?
http://objectclub.esm.co.jp/eXtremeProgramming/XpPracticeReport.html
0445443NGNG
>>444

ありがと。
読んでみた。
なかなか面白そうだと思ったけど、444のリンク先は、実際のプロジェクトとは少し離れ過ぎている気もする。

実際のプロジェクトでやってる人の感想とか聞いてみたいなぁ。
UnitTestやリファクタリングは自分でやってみたのでどんな感じかわかるが、
ペアプロとか毎回誰がどこ組むか決められる(共同所有)、とかそういうのがうまくいくのかどうか。
なんかこんなにうまくいかなさそうな気がするんだよなぁ。

顧客周りはいってもはじまらんのでどうでもいいや。
0446デフォルトの名無しさんNGNG
まえにどっかの雑誌でインタビューしてたよ
でも全てのプラクティスを実行したわけじゃなかった
例えばペアプロ->一人で組んで、もう一人がコードレビューとか
雑誌名忘れちゃったな。日経ソフトウェアだったかな???
0447デフォルトの名無しさんNGNG
毎日ペアプロしてますがなにか?
0448デフォルトの名無しさんNGNG
毎日もう一人の俺とペアプロしてますが、なにか?
0449DelフサギコNGNG
 ∩|
 ミ ゙''゙゙゙つ
 ミ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ミ,,゚Д゚彡 < いきなりシツモンなのですが
 U U    \________

ピンク色XP本の
P180の完成したストーリーグラフ図の

5番と6番のところに黒色の塗りつぶし分がないのが
なぜかよくわかりません。

なぜでしょう。
0450Error401NGNG
現在、イテレーション4を終了した所なんでしょう。
0451DelフサギコNGNG
   .∧,,∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
@'"ミ,,゚Д゚ミ < サンクス
 UU''UU   \___________

あら、ご無沙汰してます>>Error401さん

では
5になれば
自動的に75以上のストーリーが完成するという事でいいのですか?

妙に日本語訳が意味通じない気がしますが
適当に感じたらいいのかな。
0452Error401NGNG
>>451
>あら、ご無沙汰してます>>Error401さん

ちょっと前にデータベーススレで切れてしまったので、コテハンは
やめようと思ってたんだけど、文体を変えるのが面倒なので復活
させることにしました。

>5になれば
>自動的に75以上のストーリーが完成するという事でいいのですか?

でしょ?

それから、あそこで言いたいのは、
・トラッキングせよ
・公開せよ
・ストーリー数が増えている理由を把握せよ
ってことでしょう。

>妙に日本語訳が意味通じない気がしますが

さっきP179-P181を読み返してみたけど、意味が良くわからない
ところがありました。
最初に読んだときには気にならなかったんだけどね。っていうか
精読してないし・・・。
気になる箇所があったら、しかるべき所にメールしてみればいいかもね。
0453Error401NGNG
ってゆーか、XP実践記でてるじゃん。
http://www.pearsoned.co.jp/washo/object/wa_obj46-j.html

んで、さっき買ってきた。
Servlet+JSP+DBのWebアプリケーションを例にしてるみたい。

パラパラとめくってみると、具体的な(完全な)コードがかなり
載ってる。ほとんどがServletのだけど。

なかなかよさげだよ。
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は単に「変更に伴う負荷を軽減する」ためだけのものではない

ということです。

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

シンプルデザインに関しては、以前マ板でハマッタ覚えがあるので
言及しません(汗
■ このスレッドは過去ログ倉庫に格納されています