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

eXtreme Programming

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

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

参考URL:
http://objectclub.esm.co.jp/eXtremeProgramming/
0158149NGNG
おおお。
最初にキャプってテストは考えはしましたが、
本当にやっているところがあるとはー。
0159デフォルトの名無しさんNGNG
>>157
おおおお!まんせー!!すばらしい!!
158と同様に、157をホメテアゲタイage

ちなむとどう素晴らしいかというと、
「安易」な方法ではあるけどそれが確実で低コスト
であるのは間違いない、つまり
リーズナブルでベストな選択だ、って点が。
勝手ないいぐさで御免だけど。

>UI、アニメーション

逆にいえばそれらがテストツールにかけることが容易になればいいんですよね。

ふとWindowsMetaFileやDisplayPostscriptを思い出したんだけど、
つまり最終出力データ(=ビットマップ)じゃなくてそういうメタデータとして
表示とかを表現することにしておき、それ(多分適度に小さいだろう)のレベルで
比較するとかいうやり方でテストを行うと、いけるんじゃないだろか?
0160デフォルトの名無しさんNGNG
下記スレでなぜか、ゲーム系XPの話題が(w

『ゲーム作品、きちんとテストプレイしてます?』
http://tako.2ch.net/test/read.cgi?bbs=2chbook&key=991063240&st=27
0161デフォルトの名無しさんNGNG
eXtremeあげ
0162デフォルトの名無しさんNGNG
UnitTestの手法?に関しては、まだ模索状態ですね。
今、シミュレーション系の数値計算プログラムを作っているのですが、
出力が(ある程度わかるとは言え)未知なので、
UnitTestが少々難しい感があります。

簡単な数値なら、実数値の誤差がどのくらいまでならOK、
というテストもあるので多少助かりますが。

#あぁ、眠い。頭まわらないのでヘタレカキコでスマソ
0163デフォルトの名無しさんNGNG
リファクタリングにはまってしまい、
新い機能がなかなか追加できません

まあ自分の作った危うい設計のまま機能追加するのは、
いつかやばくなるのは分かってるんだけど、
先にすすめないのは結構きついっす

コードが大分スッキリ分かりやすくなったんで、
未来は明るいとは思うし、これからあたしくプログラミングするときに
前より綺麗な設計が出来るようにはなるとは思うんだけど・・
0164デフォルトの名無しさんNGNG
当たり前なんだけど、リファクタって環境問題のノリに似てるような。

汚染垂れ流しをやめれば必然的に素の成長速度は落ちるが、
かわりに持続可能な成長ができる見こみが増してくる、
長い目で見ればお徳、って奴。

というわけで、めげずにがんばれ>>163


>>162
そうか。「目的」自体が試行錯誤状態のプログラミングでは
うまくいかないかぁ…。
XPって「ゴールがあるから頑張れるの法則」に通じるところがあるから…
0165162NGNG
>>164
けど、試行錯誤しながらテストコードもしっかり書きましたよ。
その後のリファクタリングをしたんですが、
テストコードは、本体の大事な支えなんだな、と改めて実感。
#そしてテスト中毒への道をまっしぐら(笑)
0166デフォルトの名無しさんNGNG
XPって、(チーム)スポーツに
雰囲気が似ていると思ったのは、漏れだけ?
なんかみんなでスクラム組んで努力友情勝利って感じ。
勿論けなしてるんじゃないよ。
0167デフォルトの名無しさんNGNG
未だにシミュレーション系の数値計算プログラムをコーディング。
1つは完成したけど、もう1つが厄介者。

最初に完成したと思っていたプログラムには
重大な、しかし出現率が少ないレアバグがあったため
数時間書けてバグ探し・・・

UnitTestが書けるところはしっかり例外含めてテストしていたので
そこにはバグが潜んでいなかったのですが、
シミュレーション部分はテストコード書きにくいので放置していたら、
そこにしっかりとバグが居られました。
テストが書きにくいプログラムってイヤ(涙)
0168デフォルトの名無しさんNGNG
たしかに、イテレーションして答えが出るまでに数週間
なんてなソフトだと(シミュレーションじゃザラでしょね)
UnitTestどころの騒ぎじゃないかも。

「実行してみりゃ判るべ」という超帰納的な手法は
時としてアダになりますね。
おいそれと実行できないものを検証することができない
ということになる。
0169デフォルトの名無しさんNGNG
XP-jpに、
>長い間待たされた、XP Seriesの残り2冊が発売されたようです。
とあったけど、これはなんと言う本なんでしょう?
知ってる人います?
0170デフォルトの名無しさんNGNG
>>169

同じくXP-mlより。
一部を転載。

>洋書の,"XP Examined" と "XP in Practice" です.
># Installed の日本語版はもうすぐ!
>Examined は多くの記事の集合体.in Practice は実践例ですね.
0171デフォルトの名無しさんNGNG
数値解析シミュ完了。
いろいろここで愚痴ってすみませんでした。

けど、UnitTestはシミュレーション部分以外、
つまり入力と得たい出力がはっきりしているから
非常に役に立ちましたよ。
0172デフォルトの名無しさんNGNG
DelphiマガジンでDUnitの記事でてるね。
source forgeのDUnit使えばいいのに。
http://dmj.psnet.ne.jp/books/ISBN4-939049-16-7.html
0173デフォルトの名無しさんNGNG
誰か、CUnitを使ったことがある方居ますか?
0174デフォルトの名無しさんNGNG
俺自作して使ってるよ
0175デフォルトの名無しさんNGNG
俺も。
0176デフォルトの名無しさんNGNG
具体的な実装方(or ソース)きぼーん。
サンプルは多いほど参考になるので。
01771NGNG
RubyUnitを知ってまもなく作った
自作のMatrixクラスと、それのテストコードなら
サンプル程度で公開してもOKですよ。

ちなみに何故自作か?というと
標準のMatrixクラスの存在を知らなかっただけ(wara
01781NGNG
http://www.geocities.co.jp/Playtown-Denei/1491/testMatrix.zip
今見ると、なかなか恥ずかしいソース。
テストコードを見ると、何をしたかったのかがわかると思います。
多分。
0179デフォルトの名無しさんNGNG
>>1
than〜x!!
0180デフォルトの名無しさんNGNG
Delphiのテストコード
Unitは使ってないみたいだけど
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils20010427.lzh
0181デフォルトの名無しさんNGNG
>>180
monazillaのプロジェクトの一部っすよね。
はじめ見たとき、やけにテストコードしっかりかいてるとおもたら、
XPだったんやね。
0182デフォルトの名無しさんNGNG
JUnitを使い出していきなり疑問が。

MyAppTestを作って、
MyAppクラスのなかのprivateなメソッドをテストしようと
思ったのですが当然無理

MyAppTestにテストコードを入れるのはいやなんです。
基本的にpublicなメソッドを(もしくはpublicメソッドを使って)
テストしろってことなんでしょうか?
なやんでしまって、テストコードがかけない状態です
0183デフォルトの名無しさんNGNG
privateメソッドをユニットテストの対象とするかどうか?というのは
結構議論になっていますね。

XP MLのアーカイブ

http://objectclub.esm.co.jp/ml-arch/extremeprogramming-jp/

が参考になると思います。
0184デフォルトの名無しさんNGNG
すいません、既出でしたね。
よいリソースありがとうございました。
いろいろ調べてみます
0185デフォルトの名無しさんNGNG
プライベートメソッドにする前に、そのメソッドのテストコードを書いて、
テストがいい感じであれば、
・テストコードをコメントアウト
・メソッドをプライベート化
しています。
基本的にプライベート化してからは、そのメソッドのテストはしません。
できません、と言う方が正しいかな。
0186デフォルトの名無しさんNGNG
private,protectedなテストは必ずする必要はないけど、
publicなテストの前にちょっと書けると便利なことがある。
#ifdefしたりスコープいじったりしないでテストできるなら
できたほうがずっと良い。

上のほうでも書いたけどDelphiなら
普通にprivate, protectedメソッドのテストが書ける。
C#もinternalすれば書けそう。

ヘジ氏の言語設計はこのあたりの手抜き加減が絶妙だったりする。
0187デフォルトの名無しさんNGNG
>上のほうでも書いたけどDelphiなら
>普通にprivate, protectedメソッドのテストが書ける。
同一Unit(ファイル)内なら、アクセスできるの利用するんだっけか。
0188デフォルトの名無しさんNGNG
xUnitのように同一の目的・機能を持ったソフトウェア(ライブラリだけど)
をいろんな言語で書くってのはなかなかないのではないでしょうか
機能・テストの書きやすさの点でどの言語のUnitが優れてますか?

ポイントはリフレクション・例外・クラス・シンタックスシュガー
といったところでしょうか(Cはちょっと不利かも)。
あと関数型言語のUnitって見かけないですね。
0189デフォルトの名無しさんNGNG
>あと関数型言語のUnitって見かけないですね。

俺もちょうどさっきそれを考えていたところです(^^;

Unitじゃなくmain処理のテストはUnitTestじゃ無理だ、という話がありますが、
あれって「処理がずーっと流れるようなところ」のテストはしにくい、
という意味なんじゃないかと思っています。

OOPだとしばしば、処理をちょびっと走らせて、副作用たる状態の変化を
Object(多くはself)に書きこんで、終わるわけです。
少なくともそう書くことは奨励(^^;されてはいますよね。

で、関数型言語って未だに掴めてないんですが憶測するに、
「副作用たる状態を書き込んでおく」という感じに
ならない/なりにくい、のではないでしょうか?
つまり、なにをやらせても、"処理ずーっと型"になっちゃう。

個人的には、そもそもプログラムは「走らせる」からデバッグしにくく
なるんだ、と信じて(藁)います。
1繋がりのrunが長くなればなるほど人間の脳はそれを理解しにくくなる。
有名なHackerの言葉にもたしかありましたよね、
「DBのスキーマのよしあしは一目で判るが、
ルーチンのよしあしはなかなかわからず、バグが潜んでいても気づきにくい」
とかいう趣旨のが。

そういう意味で、runの単位をいかに短くできるか?の答えの1つが、
(狙ったか偶然かは知りませんが)OOPなんじゃないか、と思っています。
また、UnitTestも、そこ(処理単位が短い部分)を重点的にデバッグ
するための手段、なんじゃないかと思います。
0190デフォルトの名無しさんNGNG
最近妙に日経が肩入れしているのが気になる・・・
0191デフォルトの名無しさんNGNG
ニュースで「最近渋谷の街の若者にキックスクートというものがはやってます」
って出たころはもう下火

ってこと?
0192デフォルトの名無しさんNGNG
日経ねぇ・・・
0193デフォルトの名無しさんNGNG
おかげで会社レベルでも注目されてるらしいけれど、
日経に出ないと注目されない、ちうのはどうなんだ。
0194デフォルトの名無しさんNGNG
DDJみたいのが潰れて
.NET, デザインパターン, XPを数ページで
流しちゃうような日経が思いの外
強い影響力を持っちゃうってのもいやな状況だよな。

ど〜でもい〜けど特集記事コピーして
会社にばらまくのは違法行為だぞ > 某
0195デフォルトの名無しさんNGNG
>>194
絶版本の復刻署名サイトはあるようだが、
DDJ復刻は、どこのサイトで署名すりゃ
受けつけてくれるんだろう?(T_T)

たとえ時折ハズシ記事があったとしても、結局
DDJくらい萌えれる雑誌は、なかったんだがなあ…。

悔しくて悲しいのでage

>>190
「XPを」という意味ですか?
うーん。いいようなわるいような。
つーか、悪いなあ。

あんな力の入ってない記事ばっかり並べられてもねえ>日経
「ソフト業界を、そういうレベルに留め置く」のが
目的なんじゃないか?とか思ってしまうよアレは。
0196デフォルトの名無しさんNGNG
日経は「分かってない上司を説得するのに使う雑誌」だな。
0197デフォルトの名無しさんNGNG
日経(の計算機方面)の雑誌は、つまり、「絵本」だよ。

大人が子供に寓話をソフトタッチな語りと絵とで
読み聞かせてあげる、あれ。

まるっきりハズしてるとは限らないんだけど、
やはり決定的に情報欠落しまくってる、あれ。
0198デフォルトの名無しさんNGNG
創刊!日経DDJ
0199デフォルトの名無しさんNGNG
>>198
それは復刊では?(タモリクラブじゃないんだから別出版社で出るか?)
0200デフォルトの名無しさん?NGNG
>>194-197
「日経コンピュータ」2001.6.4 号はどうよ?

5社の事例によるケーススタディ、
ベック氏インタビュー、
12のプラクティスについての解説、など。
C3プロジェクトについても、あるていど紙幅が割かれているよ。
僕には、かなり参考になったよ。
0201デフォルトの名無しさんNGNG
どうでもいいけど、比喩(Metaphor)をしたおかげで
他の人が混乱しました、なんてことあったら面白いね。
どうしても例えが下手な人っていますし。
0202デフォルトの名無しさんNGNG
RADはやっぱりXPとは相性悪いのかな。 UnitTestといっても
のんべんだらりとRADするとドコがUnit(=単位)なのかワケワカになっちゃう。
Delphiみたいな言語系でフツーに作業してると
TForm1なんてなクラスに、とんでもなく多数かつ大量のコードが
へばりつくようになってしまう。

RADの前(藁)にRapidTestDevelopmentをしないと駄目、かな。
0203デフォルトの名無しさんNGNG
創刊!日経 Inside Windows
0204デフォルトの名無しさんNGNG
>>203
まじで?
0205デフォルトの名無しさんNGNG
ん?
結局真相は?
0206デフォルトの名無しさんNGNG
XPの真髄
http://www-6.ibm.com/jp/developerworks/java/010629/j_j-xp.html
0207デフォルトの名無しさんNGNG
XPで大規模開発は不可能か?
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20010702/1/
0208デフォルトの名無しさんNGNG
>>207
自称シロートだそうだが、
こういうしっかりした文章を書いてくれるなら
シロート大歓迎だな。

それどころか目から鱗だったよ。大規模という言葉の中身を
きちんと分析というか分割統治というかしている辺りが。

そうかあ。そういや俺の仕事も、モノそのものはデカイけど、
たいして多くない人数で、何年もかけてやってるなあ。
しかもチーム構成員が時折入れ替わるし(わら)、
客先で開発してるから客は既に巻き込んでいるわけだし。
実はXPに最適なんじゃねーのか?

ただ、自前言語のコンパイルの異様な遅さをどうにかしないと
UnitTestどころの騒ぎじゃないのだが(わら

あと、ObjectDBを使ったシステムって、
UnitTestするのは効率悪そうだな。
TearDownするときにDB上のObjectを片っ端から
捨てないとならん(勿論次回再び全部作り直す)わけだから。
しかもうちのシステム、Object作るのが凄く遅いのよ(T_T)
0209デフォルトの名無しさんNGNG
ObjectDBということで、足回りに某社製DBMSを使うんだけど、
こいつのライセンスの制約があるんで、
Installできる数に限界がある。

で、DBがきちんと組まれていないとmakeできないようになってるんで、
新たにコンパイルサーバー環境立てるとか、
ペアプロの脇で自分用練習コーディング環境を別に作るとか、
ということが思うように出来ない(T_T)

というわけで、ライセンスという奴も
時としてXPを邪魔するのだな(T_T)
0210デフォルトの名無しさんNGNG
今までの静けさから一転して
多くが投稿されていますね。

なんとなくage
0211デフォルトの名無しさんNGNG
JUnitのテストで、
緑のバーになるとかいうテストは、
GUIのテストですよね?多分。
CUIテストにはそのようなものがありませんでしたので。

#どうにもJavaでGU関連をIいぢったことがない
0212デフォルトの名無しさんNGNG
MVCのViewがGUIというだけのような。
0213デフォルトの名無しさんNGNG
ちょっと過熱気味なのでココで一つ冷静な意見も
http://village.infoweb.ne.jp/~fwgf2942/process/Proc.CMM-XP.html
0214デフォルトの名無しさんNGNG
>>207
あの記事に対するコメント見るとかなり悲しくなるものもありますね。
せめて、XP っていうのがどういうものなのか勉強してからコメントしろよ…。
0215デフォルトの名無しさんNGNG
CMMとかPSPとかいっている人は、なんとなく(イメージで
申し訳ないのだけど)XPとかを興味をもっている人と「位置」
が違うように思う。(気のせいか命令口調/押し付け口調という
か...)失敗したときは、「おれ知らん、おまえらが間違ったんだ」、
成功したときは、「ほーれ見ろ、いったとおりだろおが」とか言われ
そうな感じ。

CMMもPSPもTSPも、いいこと言っているのはわかるし個人的に勉強
してはいるのだが、、、XPの方が身近に感じますね。
(肌の感覚が近いっていうのか、うーん。)
# ぜんぜん論理的じゃあないですね。

要は、213さんのリンク先の人とは住む世界が違うん
だろーなー、と。あーそー見る人もいるんだなー、
ってな感じです。
0216デフォルトの名無しさんNGNG
>>214
| XPという表現を使っているが本質的には「オブジェクト指向開発技法」
| を使って、「インクリメンタル開発」を行うことを指しているのだと思う。

ってやつが強力ですな。モノを調べずに我田引水…。
0217デフォルトの名無しさんNGNG
>216
でも、そういう風に思っているひとがいるみたい……っていうか私の近くにはいる。
どう説明してあげればわかってもらえるんだろう……。
0218デフォルトの名無しさんNGNG
エキスパートによるエキスパートのための開発技法って事か。

結局は、現状の開発技法で上手くいかない人間が銀の弾を求めて飛びついて
やっぱり上手くいかないという結論に落ちてしまいそう。

現状で上手くいってる人間はあえて枯れていない開発技法には触れないだろうし。

納期の制約が厳しく無く、検収という概念も存在せず、いつまでもソフトウェアを
改良し続けられる環境なら役に立ちそうだな。

オープンソースとか社内開発とか…
0219デフォルトの名無しさんNGNG
>エキスパートによるエキスパートのための開発技法って事か。

どの辺からそう思われますか?

>現状で上手くいってる人間はあえて枯れていない開発技法には触れないだろうし。

そりゃそうでしょうね。

>納期の制約が厳しく無く、検収という概念も存在せず、いつまでもソフトウェアを
>改良し続けられる環境なら役に立ちそうだな。

そんなことはないでしょう。「納期がきても完成していないので
使用できない」よりも「予定していた機能のいくつかは完成して
いないがとにかく使用することはできる」方が顧客にとっても
ありがたいはずです。
# ただしそれが可能なように契約することは現状では難しい
# んですけどね。

それに検収の概念はありますよ。受け入れテストをすべてパスすれば
「検収」ですよね。
0220デフォルトの名無しさんNGNG
>> 納期の制約が厳しく無く
>#ただしそれが可能なように契約することは現状では難しい

んだな。XP…というかその先輩(?)であるスパイラル開発の時点から
判りきっていたことではあるけど、
「納期」という考え方を古臭いスタイルのまま持ち続けることが
つまりソフトにとって無理があるわけで。

そういや土建系のアプリ作ったときは大笑いだったよ。
あっち業界お得意の、作ったものを写真に取って
「ほれ作りましたよ」という証拠とする、というアレを
ソフトでもやるのな。物理的実体の無いものを
どうせいっちゅんだ?一応動いている所のDisplayを
撮影しといたようだが。

しかも窓有りのクライアントソフトだけならまだしも、
画面なんか無い鯖っぽいソフトも有ったんで、
写真がとれなくて困った…という事態を避ける「ために」、
不要なのにわざわざ鯖側にもGUIをつけた、という。

古臭い(or不適切)なんだよ、あーゆーのが。
新しいワインを思いっきり古い袋に入れてるのな。

あーいうミスマッチをまず解消して欲しい。
IT屋に仕事させるならば。
なんでもかんでも「そのまま」IT化できるってわけじゃないのに。
0221デフォルトの名無しさんNGNG
>>221

>「納期がきても完成していないので 使用できない」よりも
>「予定していた機能のいくつかは完成していないがとにかく
>使用することはできる」

どちらも論外だとは思いませんか?
「納期通りに全ての機能を完成させる」のが当たり前ではないですか?
("ベスト"ではないです、あくまで"当たり前"です)

>>220

しかし、顧客がそれを望む以上はそれが僕らの現実でしょう?
XPは理想ではあっても、現実とのギャップが埋めきれてないと思いませんか。

自分が顧客の立場なら、やはり納期は設定するだろうし検収も確実に動作が確認
出来るまでOKはだせない。当然不具合は何があっても修正してもらう。
少しでも不安因子のある契約内容にはケチをつけるし、だらだら納期を延ばすよう
なら担当者も変えてもらう。

この業界、顧客の立場で仕事をするという姿勢が少し欠けているように思う。
ン千万の金額を払う相手に「作ってやる」という姿勢で仕事をしている人が
多いように感じます。

横道失礼。
0222デフォルトの名無しさんNGNG
>>221
>「納期通りに全ての機能を完成させる」のが当たり前ではないですか?

XPは仕様をあらかじめ確定させたりはしないから、その前提はおかしい。
それに、顧客は要求を出すだけじゃなく、チームの一員として共同作業を
行うから顧客自身も納期の責任の一端を負うことになる。

>だらだら納期を延ばすようなら担当者も変えてもらう。

そんなことしても万に一つも納期が早まることは有りません。
延びるにはそれなりの理由って物が有るんです。
あなたもしかしてシステム作ったこと無いんじゃ?

>ン千万の金額を払う相手に「作ってやる」という姿勢で仕事をしている人が
>多いように感じます。

「こっちゃ金払うんだから仕様のあいまいな所はそっちで詰めてよ」って態度
の客にうんざりしてるんすけど。
そういう客ほど仕様の矛盾点を「不具合」だって騒ぎ立てるし・・・

お互いのすれ違いを解消するためにも、チームに顧客を参加させるXPは
とっても魅力的だと思うけどね。
0223デフォルトの名無しさんNGNG
>>222
>>「納期通りに全ての機能を完成させる」のが当たり前ではないですか?
>XPは仕様をあらかじめ確定させたりはしないから、その前提はおかしい。

別にXPで開発を進めるのが前提であれば、「その前提はおかしい」のかも
しれないが、結局はどのように契約するかが大前提にある、ということだな。

詳細仕様を決める上でのリスクまで考えれば、契約時点でちゃんと踏まえて、
契約を結ばないといけないんだろうな。考えさせられること多し。

>「こっちゃ金払うんだから仕様のあいまいな所はそっちで詰めてよ」って態度
>の客にうんざりしてるんすけど。

うーむ、うちがまさにそんなドキュソな感じだな。
結局設計まで委託したのに自分で詳細仕様まで自分でやってしまったが。
0224デフォルトの名無しさんNGNG
>>221がいいこといった。
0225デフォルトの名無しさんNGNG
>>「納期がきても完成していないので 使用できない」よりも
>>「予定していた機能のいくつかは完成していないがとにかく
>>使用することはできる」
>
>どちらも論外だとは思いませんか?
>「納期通りに全ての機能を完成させる」のが当たり前ではないですか?
>("ベスト"ではないです、あくまで"当たり前"です)

そういう契約ならね。
もちろん、その当たり前のことが出来ないリスクは常に存在する。
 ・今までの契約
  1年後が納期なら1年後に最初に契約した全機能をリリース
 ・XPでの契約
  1年後が納期なら、重要な機能からリリース

 としたとき、XPでの方がリスクが少なく、顧客の要望にも
答えやすいってことじゃないの?
0226デフォルトの名無しさんNGNG
>>225
でもどこかで真の納期が存在するんでしょ?
いったいいつになったら開発完了するのか不安になっちゃうよ。
0227デフォルトの名無しさんNGNG
>>221
典型的なそもそも論って気がするな。
0228デフォルトの名無しさんNGNG
仕様が決定すれば(実際の)納期もある程度決定可能になるけど。
「仕様が決定」ってのはXP的にはどうなの?
0229219NGNG
>でもどこかで真の納期が存在するんでしょ?
>いったいいつになったら開発完了するのか不安になっちゃうよ。

「ソフトウェアは完成しない」
XP的に言うと、開発が終わるのはそのソフトウェアの寿命がつきた
時です。

>仕様が決定すれば(実際の)納期もある程度決定可能になるけど。
>「仕様が決定」ってのはXP的にはどうなの?

仕様が決まっているのは、次回にリリースするストーリーまでの
分です。XP的な開発をするには、Fixed Priceな契約ではなく、
Time and Materialsな契約でないと難しいかもしれませんね。
0230デフォルトの名無しさんNGNG
>>228
(1)利用者の要求仕様は永遠に確定しない
(2)開発者の設計仕様も永遠に確定しない
(3)ソフトウエアは完成することがない

つまり、仕様は決定することはないし、納期も決定することはない。
しかし、現実にはお金とか納期とかの兼ね合いで完全では無い物を
「完成品」として納品する。
0231デフォルトの名無しさんNGNG
>>222
222にめちゃ同意じゃ。
XPは、昔から言葉にできなかった思いを言葉にしてくれたって感じだ。
すばらしい。
0232デフォルトの名無しさんNGNG
>>221
>「納期通りに全ての機能を完成させる」のが当たり前ではないですか?

どっちかってーと、それが「可能」かどうか?という問題じゃないかな。
CapableかどうかじゃなくてPossibleかどうか。
物理的(?)に可能かどうかっていう奴。

いっぱいいっぱい仕事してるはずなのに追いつかなくて
製品できません、という最悪の(だよね)事態を
避けるためにはどうすりゃいいか?という話であって、
客の要望「のみ」に注目してそれを満たすことが出来るかどうか
という話より、前の次元なんじゃないかな。

労働条件の話と似ていると思います。
客の要望のみを考えるなら、ストなんかしない(できない)のが一番。
実際、今みたいな労働者権利が保証されてない時代には
ストすることがすなわち犯罪(雇用者に損害を与えた!)と
判断されていたわけです。
でも今は、特殊な業種(笑)以外は、そうじゃない(ほうが良いと
法律でも認めてくれてる)わけでしょ?

つまり、「無茶いうなよ」ということ。
それ以前の段階をクリアしないと、とてもじゃないが
量や質を上げることなんか望めないんじゃないの?という。

>しかし、顧客がそれを望む以上はそれが僕らの現実でしょう?

しかし、それでも思うように(思うの主語はあくまで客と雇用者ね(笑))
作れないというのも、「僕らの」現実です。
天秤の一方ばかりを注目してても解決はしないでしょうね。

XPで…いやそれ以前の開発手法でも言われていたことだけど…
「客を巻き込め」って言ってるのは、そういう効果もあるでしょうね。
よいものを欲しいなら客もきびきび動きやがれ、ということ。

勿論、客には客の(僕らとは違う)役割があり、その役割をきびきびやれ、
という意味ですけど。こっちの仕事をやらせるってのは論外。

で、ならばどの部分を客に担当してもらうと効率が最大化するのかな?と
色々研究だかなんだかすることで、今のいくつかの開発手法は
成り立っているんじゃないかな。XPはXPなりに、その問いに対する答えを
用意している、と。

まぁ平たい日本語でいえば「技術の隣」を客に作業してもらう
という感じかなと思っています。技術そのものは僕らの領分。
その僕らが振るう技術に密着取材(わら)するというのが彼らの領分。

>自分が顧客の立場なら、やはり納期は設定するだろうし検収も確実に動作が確認

「管理」しちゃいたくなるんですよね、どうしても。
Linux革命本を引き合いに出すのはExtreme(笑)だとしても、
いずれにせよ、「管理(=尻たたき)」すればうまくいくのか?というと
そんなことは全然ないんですよね、技術系って。
技術的に確かなところからしか次の技術(=製品)は生まれないわけで、
その層をすっ飛ばして管理だけしても、しばしば焦りを増させるだけだったり。
0233デフォルトの名無しさんNGNG
>>221

XPって、その形態から見れば丸わかりだけど、
ケータイ(駄洒落か?)みたいに産みっぱなしでないとまずいデバイスには
適用しにくいですね。PCを代表とするような、ソフトの入れ替えが超楽な環境を
前提としているというか。
なので、ファームアップデーターを搭載しない限り、
ケータイ産業は(少なくともXPでは)救われない、
ということになるかな(笑)

あと、顧客が不特定多数の場合も、XPだと困りますね。
客を巻き込めなくなる。
オプソにでもするなら話は別ですが。そのほうが却って幸せだけどな(わら
0234デフォルトの名無しさんNGNG
なんか、「納期が守れないからXPを使う」とも読めるのだけど
それって危険じゃない?

それとも「なぜ納期が守れないか」の要因解析はみんな済ました
上での議論なの?
0235デフォルトの名無しさんNGNG
>それとも「なぜ納期が守れないか」の要因解析はみんな済ました
>上での議論なの?

その問いに対して、一般的(=案件に依存しない)かつ
ある面から見た1つの答えを仮定しているのが、
XPの存在原理なんじゃないの?

納期が守れない(XP立場から見て正確には「納期すら守れない」
と言うべきだろうな)守れない理由の1つとして
コレコレがあるよね、だから(この意見を認めるならば)
こうやって解決しようぜ、という。

で、その仮定が自分の現場に合っているかどうか?は、
自分たち(かコンサル屋)が測るんだろうね。
0236デフォルトの名無しさんNGNG
>>234
> 「納期が守れないからXPを使う」
XPにも納期はあるよ、ただ一気に納品するんじゃなくて
細かい納期があり、少しずつ納品する形態。

XPでも納期は守れない可能性はあるが、従来の形態よりも
納期が守れない場合、早期のアラームを出せる。
0237デフォルトの名無しさんNGNG
>233

ケータイって一番XPを適用すべき環境なきがするけど。

・短納期
・客の要望がころころ変わる
・新機種の機能のほとんどは前機種の引継ぎ

>なので、ファームアップデーターを搭載しない限り、
>ケータイ産業は(少なくともXPでは)救われない、
>ということになるかな(笑)

ファームをアップデートしなくても、次期ロットでバージョンアップ
するとか、ソフトだけ異なる次バージョンを出すとか。

>あと、顧客が不特定多数の場合も、XPだと困りますね。
>客を巻き込めなくなる。

大概の製品の最終顧客は不特定多数だと思うけど。
最終ユーザ全員を巻き込まなくとも、マーケティング部門とかを
顧客にするだけで、開発サイドとしては、いいんじゃないのかな。
0238?(X _ P)?NGNG
CppUnitの使用法について、
http://member.nifty.ne.jp/masarl/article/testing-framework.html
以外で具体的な説明の載っているページ在りませんか?

JUnitの方は色々見つかるのですが、Cppの方は中々見つからないです。
0239?(X_P)?NGNG
Englishでも良いですぅ〜
0240デフォルトの名無しさんNGNG
>>237
>ファームをアップデートしなくても、次期ロットでバージョンアップ
>するとか、ソフトだけ異なる次バージョンを出すとか。

顧客サイド(笑)に立つと、結局ハードごとのリプレース
か買い替えか、ってことになっちゃうわけねそれ。
それはちょっと寒いなあ。携帯の新製品出現ペース(3ヶ月だっけ)に
そんな意味があったとはなあ(わら

>大概の製品の最終顧客は不特定多数だと思うけど。

そんな…
一品モノを専らとするソフト屋の存在も
一応お見知り置きを。

>最終ユーザ全員を巻き込まなくとも、マーケティング部門とかを
>顧客にするだけで、開発サイドとしては、いいんじゃないのかな。

その程度で「いい」ということにしたら
eXtremeとは呼べないような気がする(笑)。

少なくともそれって従来と違わないわけだから。

中間搾取(笑)層の悪影響を最小限にするってのも
XPには含まれていると思えるんだが。
だからこそXPでは「客」と喋れと要求されるわけで。
0241デフォルトの名無しさんNGNG
>>238
http://cppunit.sourceforge.net/
にあだけじゃだめ?
0242デフォルトの名無しさんNGNG
>>221 みたいな「そもそも論」って、まともに software 工学を
学んだ & 現場で苦しんだ人のいう台詞じゃないような気が。
0243デフォルトの名無しさんNGNG
>>234
XPの根本的なところを誤解されているようですね。

納期(というかイテレーションの期間)は動かさず、
それを守るためにスコープをこまめに調整しよう、
というのがXPの思想です。

で、236さんも書いているように、早期にアラームを
キャッチできれば何か対策を打てるでしょう、と。
0244デフォルトの名無しさんNGNG
どんな職業でも顧客(素人)の視点ってのは大切だ。
それはソフトウェア工学どっぷりでも、現場で苦しみに悶えていても見えてこない。
自分から見ようとしない限り。

「XPエクストリーム・プログラミング入門」あたりでさえも注意深く読んでいれば
>>231の疑問がソフトウェア技術者として至極まっとうなものであり、XPの思想と
同じベクトルを持つものであることは理解できるはず。
しかし、それに対してあとに続くレスはあまりに的外れに感じる。
(むろんXPがその疑問に十分答えうる物である事はご存知のとおり。)

日本のシステム開発に顧客軽視の風潮があるのは度々感じる。
このスレッドでも「顧客を巻き込んで云々」「顧客にも責任を負ってもらって云々」
というレスばかりで、ではどうやって顧客を巻き込むか、顧客にはどんな形で開発に
接してもらうか、どうすれば理解を得られるか。という方向には議論が一向に進まない。

今作っているシステムは客先担当者が胸を張って導入できるシステムだろうか?
自分だったら使わないようなシステムを納入してないだろうか?
今作っているシステムは「誰のための」システムなのか。
以上を問いつづけながらシステムを作っている人間がこの日本にどれだけいるだろう?

とかく開発が泥沼に入ると顧客のせいにしたがる。
「やれこんなことは聞いてなかった。」「やれいまさらこんなこと言ってくるな。」
決して十分なヒアリングが出来なかった自分達を省みようとはしない。

XPという新しい(枯れていない)開発手法に対して疑問を挟む人間相手に否定のレスしか
付かないのは正直見てて気持ちが悪い。説くことも、同調する部分も無く一方的な否定。

まるで新しく与えられた玩具をうっとりしながら磨いている子供のようだ。
それが銀の弾丸だと信じ込んでいるんじゃないか?
まさか銀紙にくるんだチョコレートだとは、撃ってみるまで気づかないのだろう。
(決してXPがチョコレートだと言いたい訳ではない。)

なーんつったりして。
気にしないで。ちょと長文でエラそうなこと言ってみたかっただけだから。
sageとくし。
0245デフォルトの名無しさんNGNG
>気にしないで。ちょと長文でエラそうなこと言ってみたかっただけだから。

きみは、気にするに値しないことを、書いたわけか?
自分の書いたことが、気にするに値しないことだと思っているのか?

だとすると、まさにそこに書いているような
駄目な伝統日本的開発スタイルの片棒を
君もまた担いでいるだけのことだ、ということになるが?

いや、そうだというならば、それはそれでいいのだが、なんだかなあ。
つまり「誰のための」文章なんだこれ?(わら

ちなみに俺(たち)も
>自分だったら使わないようなシステムを納入してないだろうか?

申し訳無いがこれはしばしば言えてる。

てゆーか、既に入れてる大規模フレームワークなんざ
使わずとも、もっと遥かに簡単なプログラムで
同じ仕事をやれそうなものなんだが、
今更誰もそんな恐ろしい手戻りを提案できない(笑)。
大手何社も(=雁首揃えて)がぐちゃぐちゃ絡んでいるんで…

さて。
>どうやって顧客を巻き込むか

どうといっても俺はまだよくわかってないが、
少なくとも「利益が欲しいなら動こうぜ」とは
言えるんじゃないか?
こっちが糞ソフトを作ってやがったりはしないかを
監視するっつーか、な。
0246244NGNG
あちゃ。
>>244>>231としてるところは>>221ね。

誰のための文章かって?
もちろん自分自身のための文章だよ。
だから気にしないで。
0247デフォルトの名無しさんNGNG
そういうときは、無敵のキーワード「とか言ってみるテスト」を使うのだ。
0248デフォルトの名無しさんNGNG
>>244
> ではどうやって顧客を巻き込むか、顧客にはどんな形で開発に
> 接してもらうか、どうすれば理解を得られるか。という方向には議論が一向に進まない。
XPに書いてある。
顧客はビジネス側の決定と、仕様の検証を受け持つ。
ビジネス側の決定とはタスクに優先順位をつけること。
例えば月末に行う処理は後回しにしようとか、
まずはデータ入力をしたいからそれを最優先で作ってくれとかを
指示できる権利と責任を持つ。
仕様の検証とは自分で正しいと思うテストパターンを用意し、
それに合格すれば受け入れる、不合格ならば突っ返すことが出来る。

> それが銀の弾丸だと信じ込んでいるんじゃないか?
銀の弾丸はない。
だが狼を少しでも管理可能にする方法を模索してはいけないの?
0249デフォルトの名無しさんNGNG
ときに、CppUnitのWindowsのバイナリってどっかにないですか?
VC5しか持ってない(金欠でVC6買えずVC.NET待ち)ので
コンパイルできないんス。
0250デフォルトの名無しさんNGNG
>249
あれそんなに複雑じゃないんだから手を入れてコンパイル通してみたら?
んでVC5用パッチを送ってあげれば喜ばれるよ。
0251デフォルトの名無しさんNGNG
てゆーかUnitって、バイナリのみ持っていても
かなり宝の持ち腐れだったりしないか?
あれこそオプソっていうかソース配布でないと
埒があかないもんだと思うんだが。

>>249
OS依存じゃなくてコンパイラ(のver)依存の問題なの?
だとすればVC6用のバイナリを貰ってしまったら使えない
のでは?つまりキミが求めるべきは「Windows用の」
バイナリじゃなくて「VC5用の」バイナリなんじゃなく?

>>250
そういえば、Windows世界においても、ここでいう意味の
「パッチ」と言う言葉は、広く理解されるようになったんでしょうか?
きっと直接的にはunixのpatchコマンドのことを指してる
と思うんですが。
ついでにいえばあの概念がないと開発って凄くやりにくいよね。
0252デフォルトの名無しさんNGNG
>>248
つまり、「なんか知らぬがなんでもかんでもスグに全部揃えやがれ」
などという幼児の駄々こねのようなことを言わない責任が
客側にはある、ということだな(わら
つまり、「現実的に」考えましょうっていう。

客の馬鹿さ加減まではさすがに付き合えないんで、
銀でなくて鉛で十分だから弾丸を使いたいもんです(わら
0253250NGNG
>251
>てゆーかUnitって、バイナリのみ持っていても
>かなり宝の持ち腐れだったりしないか?
そうでもないよ。使うだけならソースは不要だし、
ソースだとテスト失敗時に例外が発生すると
デバッガがUnit内部で止めてしまうのでむしろバイナリのみのほうが便利。

>そういえば、Windows世界においても、ここでいう意味の
>「パッチ」と言う言葉は、広く理解されるようになったんでしょうか?
Winにはpatchやそれに相当する標準的なツール・手法はないのでは。
せいぜいWinに標準でついているのはwindiff(ファイル・フォルダ単位の差分表示)くらい。
>250では単に修正されたソースか修正方法という意味合いで使っただけ。
個人的には差分なんかなくて毎回数メガのソースのアーカイブやり取りしたって
別に困らないけどね。
0254デフォルトの名無しさんNGNG
>個人的には差分なんかなくて毎回数メガのソースのアーカイブやり取りしたって

ほんとに個人的動機だな(わら
多数の人でやったら、変更の競合とか
色々考えないとならんことがある。

それに、人間どうしが会話するときには
差分って便利だぜ。「ここが変わりました」
ってのが一目瞭然だから。

少なくとも、unix流(あるいはもっとましなのが
あるならそれでもいい)のdiffとpatchは
win方面にも広まって欲しいな。
あ。diffってのはpatchファイルを「作る」ツール。
旧ファイルと新ファイルの差をpatch形式で出力してくれる。

ついでにいえば、ソースのver管理ツールと
diff/patchが連動できると、すごく快適だぞ。
ver管理ツールの内部では実はpatch情報しか保存してない。
その保存形態をexportするみたいな感じだな。
0255249NGNG
>>250-251
うう、どもッス。「内部コンパイルエラー」とやらがポコポコ出て
対処方法が分かんないです。ま、いろいろ調べてみますです。
0256デフォルトの名無しさんNGNG
自分達が抱えている問題が何かを分析整理する前に、XPを導入しようとして
いる所はすべて失敗するでしょうね。

もし、一戸建ての家よりも、キャンピングカーで生活した方が快適で人間的だ!と
変人小泉首相がいったらどれぐらいキャンピングカー生活をはじめる人が
いるのだろうか。
0257デフォルトの名無しさんNGNG
XP,XPっていっている人って、地に足がついていない、ただの新しいもの好きばかりのような。
0258デフォルトの名無しさんNGNG
>>256
鋭い。耳が痛い。恐れ入った。m(__)m
たしかに、XP自体にも一定の守備範囲があるんで(エリアXP?)、
それと自分の問題とが合致してないと論外だな。

ただ、ここら界隈の最近の文で、その手の勘違いを
してると思われクンは、どれだけいたろうか?

>>255
VC5にサービスパックが色々出ていたように思いますが、
きちんと当てていますか?
VCの5だの6だのの出荷状態って、テンプレートのあたりで
バグ/使えない仕様がワンサカじゃなかったっけ?
■ このスレッドは過去ログ倉庫に格納されています