アジャイル,Trac,オープンソースなどの話。認定スクラムマスター。Twitterは@ryuzee
Alan Shalloway氏がhttp://www.agilejournal.com/articles/columns/column-articles/3222-an-overview-of-lean-agile-methodsで書かれていた記事が良記事なので、適当翻訳。
かつては物事はシンプルでした。
90年代に、アジャイルを選択しようとすれば、XPを選択するしかありませんでした。そして、その後、Scrumがポピュラーになりました。組織がチームへのフォーカスによって、これらのアプローチの限界に突き当たるようになったのは最近の話です。それから、ソフトウェアにリーンの原則を適用することができるということが明らかになってきました。リーンソフトウェア開発および後のKanbanが一連の中に加わりました。今、もしアジャイルな開発手法を選ぼうとすると、非常に多くの選択肢があります。
単にどのメソッドを選ぶか、という点だけでなく、どこから始めて、トップダウンで行うのか、ボトムアップで行うのかを考え、自分の努力の範囲をどこまでにするか、というようなことも考えなければなりません。色々考えなければならないことに気力をくじかれてしまうかもしれません。それをより少なくすることができるかどうか見てみましょう。
アジャイルって何だろうか?
アジャイルが意味するところを考えてみましょう。多くの人は、小さなステップ(反復)でソフトウェアを作ること、進捗やプロジェクトの健康状態は開発されたソフトウェアという観点で測定すること、作っているものが本当に有用であることを保証するために顧客のそばで働くことがアジャイルであるというかもしれません。
でもこれは、私が「チームのアジリティ」と呼んでいるものです。なぜならそれがフォーカスしているのが、チームとチームがどのように働くか、という点だからです。
現時点では、一番よく使われているアジリティの形で、多くの人に効果的であることは間違いないけれども、あなたが得ようとしている本当のゴールではありません。わたしたちの仕事の本当のゴール=成功 を測定するもっともよい指標は、開発組織が仕えるビジネスユニットがどれだけ素早い対応が出来ているかに着目することです。
私はこれを「ビジネスアジリティ」と呼んでいます。ビジネスアジリティはチームを超えたものをも内包しています。残念なことにビジネスアジリティを達成することはとても難しいことです。
ビジネスアジリティは、ビジネスまたはビジネスユニットがビジネス価値をクライアントに対してインクリメンタルに届けられる能力のことです。
ビジネスアジリティは、企業がマーケット環境が変化したり、新しい技術が出たり、新しいアイデアがでたときに、必要に応じて、すばやく反応することを可能にします。ビジネスアジリティは素早く動ける、効率的な、必要なところに行ける車を持っているようなものです。
チームのアジリティは、ドライバーが望んでいる操作を可能にするよくチューニングされたエンジンのようなものです。言い換えると、ビジネスアジリティは本当の完全なるゴールであり、チームアジリティはそのための手段を意味します。
現時点では、十分に小さな組織においては、チームだけにフォーカスすることが適切かもしれません。しかし、一定規模以上の組織においては、チームにフォーカスすることによってにジネスアジリティを達成しようとすることは、ただエンジンのチューニングだけを繰り返してよりよいパフォーマンスをだそうとしているのと同じことです。
エンジンのチューニングも役にはたつでしょうが、トランスミッションやブレーキを改良したほうがよりよい結果が得られるでしょう。一般的なアジャイルのメソッド:ScrumとXP
先に言ったように、Scrumと、今はちょっと少ないが、XPは、アジャイルムーブメントの中ではもっともポピュラーな手法でした。
XPはペアプログラミングやテストファーストや継続的インテグレーションや共同所有などの開発プラクティスにルーツをもつ開発手法です。
スクラムは一義的には組織の妨害事項をあらわにするプロセスのフレームワークです。
その根底にある想定事項としては、もし間違っていることをやっていても、問題は修正可能である、という考え方です。
Scrumの力は、数週間の中で問題を早期に明らかにできる、ということで、この点についてはウォーターフォールからの大きな改良であることに異論はないでしょう。
明らかになった問題への対応方法がはっきりしない場合があり、そのような場合の対応が課題となっています。両方のメソッドは1から4週間隔のイテレーション、自己組織化、機能横断チームといったものを利用します。
Scrumはいくつかの理由によってよりポピュラーになってきました。
1つ目は、チームがXPの核となっているような技術的なプラクティスを採用しなくてもよいため、始めるのが簡単である、ということです。
XPが求めるような技術レベルの変化は、いくつかのチームにとっては非常に骨が折れるものなのです。
2つ目は、スクラムの認定プログラムが、スクラムを教えたり宣伝する「認定スクラムトレーナー(CST)を大量にこの世に送り出したためです。
結果として、多くの会社において、「アジャイルになる」ということは「認定スクラムマスター(CSM)」の資格を取得して、Scrumを適用することだ、と考えるようになってしまいました。アジャイル界隈での挑戦
Scrumはウィルスによって成長しました。現在問題点が明らかになってきています。事実、スクラムの創始者のひとりであるケン・シュエイバー氏は、Agile Collabのインタビューにおいてこう言っていました。
「スクラムを使用する組織の75%は、Scrumに対して望む利点を得ることには成功しないだろう。」[1]
なぜそうなるのかについては多くの見解があります。著者は、含まれるであろういくつかの理由を以下に記述します。
- 開発チームが直面する多くの問題が、実際にはチームの外部で起こります。例えば、一度にチームに対して多くのプロジェクトを与えることによってチームを過負荷にすること。
- 多くの大規模組織は、ソフトウェアのデプロイメントメソッドが貧弱であり、それ故にソフトウェアを世に送り出すことを困難にしています。Scrumが妨害事項を明らかにする一方で、彼ら自身ではそれを解決できず、Scrumそれ自体はどのようにそれを解決するかの指針も持ち合わせてはいません。
- 多くの組織ではScrumが要求するような機能横断的なチームを作ることは難しい。特定のスキル、例えばレガシーコードに関する知識をもった人や特定の専門分野をもった人たちはしばしば複数のプロジェクトのかけもちをすることを要求され、Scrumモデルのパワーをそいでしまう。
- Scrumに不慣れな多くのチームが、製品開発フローの原則を教えられていません。
- Scrumはもともと同一場所にいるチームのためのものとして設計されましたが、しばしば分散したチームでの開発を行っている。
多くの熱狂的なScrumファンは、組織がスクラムを利用した成功を経験していない本当の理由は、組織がそれらの問題を解決するのに必要な訓練や動機づけをまったくしていないからだ、と主張します。
原因が何であろうと、問題は残り続けます。この問題を解決するために、アジャイルに関する2つの他の方法が生まれました。それが、「リーンソフトウェア開発」と「ソフトウエアエンジニアリングのためのKanbanシステム(もしくは略してKanban)」です。
これらのメソッドは双方ともにScrumで行っていた場合に組織が抱えていた問題に対して直接的に取り組みます。
これが、私が5年前にリーン、3年前にKanbanに取り組み始めた理由です。リーンソフトウェア開発
リーンソフトウェア開発は「リーン生産方式」の原則と製品開発手法がソフトウェア開発に適用可能であるという理解に基づいています。もちろん、プラクティスは異なりますが、マインドセット、考え方は同じです。
その起源は1990年代中盤のBob Charetteの記事にさかのぼります。
そして、メアリー・ポッペンディークとトム・ポッペンディークの本(最初の本は、「Lean Software Development, An Agile Toolkit」で2003年に出版されました)によってポピュラーになりました。
リーンソフトウェア開発は、無駄を省く(顧客にとって価値がない努力はしない)、全体最適(concept to cash)、素早い出荷、品質の作り込み、人に対する尊敬、絶え間ない改善、そして必要になるまで判断を遅らせる、といった考え方に基づいています。Don Reinertsenの周り[2]から別の流れが起きました。
Reinertsenは、システムの中をどのように仕事のフローが流れているかを見ること通じて、人々が働いているシステムの評価や、その中にいる人達のスキルの育成や、仕事の滞在時間を観点としてリーンにアプローチしました。「フロー」によって彼はどこに遅れが生じるか、どこに大きなキューが生じるか確認することを意図していました。どちらのアプローチを好むかにかかわらず、開発組織の内外の問題をどのようにして解決するかに関しての洞察を提供することは有用なことです。
フローのモデル(価値をより素早く届けるために、開発パイプラインの少しの小さなことに着目する)は、あなたのソフトウェア開発のバリューストリームを向上させる1つの方法は、開発チームは同時に複数の仕事を行うことを避けることだ、ということを示唆しています。
同時に多くのことをやっていたが故にどれだけ多くの開発チームが壊れてしまったかということを考えれば、直感的に分かるでしょう。Kanban
Kanbanはリーンと制約理論の双方に基づいています。約5年前にDavid Andersonによって作られ、関心が高まっています。[3]
Kanbanはいくつかの基本的な原則の上に成り立っています。
まず1つ目は、組織がアジャイルをはじめるために、一度に大きな変化を経験することを要求することは逆効果であるかもしれないということです。
人々に対して新しい役割や仕事を採用しなければならないことを異なった方法で伝えることは、しばしば組織の中に変化に対する恐れを創りだしてしまいます。以前の仕事のやり方が捨てられてしまうことによって、人々は自分たちの価値が下がったというように感じてしまいます。アジャイルムーブメントの最初の数年間は、Scrumは既にあるチームに導入され、開発者やテスターやアナリストたちは変化を望んでいました。しかしもはやそのようなことは現状では、たぶん別に遭遇する困難のために、当てはまらなくなっています。
多くのアジャイリストたちは、この大量な変化を克服する方法はトレーナーやコーチを雇うことだ、というでしょう。しかしながら、別のアプローチによって、それほど破壊的ではない方法で、スムーズに最終的なゴールに向けて移行することができるかもしれません。
Kanbanの本質はあなたがそこで3つのことから始めることです。
- あなたのゴールは何か、開発者がある時点でどれだけの数のプロジェクトで働くかについて、ステークホルダーと合意を結ぶこと
- バリューストリームマップによって、開発プロセスを視覚化すること。
「バリューストリーム」とは段階の流れで、コンセプト→定義→構築→デプロイ→利用の順に遷移します。どうやったら仕事がバリューストリームを移動するかについては明確に定義してください。これがとても重要であるのは、それが管理者がこれらのアクションがどのようにチームに作用するのかを分かることができるためであり、また、これらの明示的なポリシーに関しての議論が学習を加速させることができるためです。- 各ステップにおいて行われている仕事の量(WIP)を管理すること。
特に、チーム(と管理者)は仕事が後退してしまう場所を探す必要があり、それから、どうやって問題を取り除くのかについて理解する必要があります。この明確さが、チームが遭遇する妨害事項を解決するための洞察を提供してくれるのです。Corey Ladasは、KanbanをScrumフレームワークに組み入れることで、「Scrumban」と呼ばれるハイブリッドな方法を作り出しました。
これはScrumチームにKanbanを適用する際に有効な方法になっています。ビジネスアジリティの達成:どこから始めるべきか
それでは、あなたはどこから始めるべきでしょうか?それはあなたがどんな状況にあって、どうしたいのかにかかっています。
私の経験では、パイロットプロジェクトからアジャイルメソッドの適用を始めることは常にベストなわけではない、と思います。
車のエンジンのように、チームのメソッドは問題ではないかもしれません。もし改善が必要だとしても、完了したソフトウェア全体のコンテキストをみて、それから改善できることを選択することが望ましいのです。
以下の2つを推奨します。
- バリューストリーム全体を見るところから始めること。どこに課題があって、何を改善しなければならないか?
これは、チームの範囲を超えてあなたがコミットする、ということではなく、そうすることで、チームの進捗がビジネスの進捗やビジネスアジリティの実現につながるようなヒントを得ることができるだろうからです。
- チームにScrumかKanbanを選択させてください。彼らは直感的に自分たちにとって最良なのはどちらであるか分かるでしょう。人を尊敬する、ということは、仕事のやり方を彼らが選ぶことを許すことです。(もちろん、それはビジネスのコンテキストの範囲でですが・・・。)
全体のコンテキストを考えることは、「アジリティのスケーリング」と「大規模でのアジリティ」との差でもありますが、それについては別の記事にします。
もしKanban、Lean、ScrumそしてXPについて、より詳細を知りたければ、Net Objectivesのリソースページにアクセスしてみてください。
http://netobjectives.com/resources
そして、以下の2つのサイトでは、これから開催されるカンファレンスを含め、さらに豊富な情報を見ることができます。
http://www.leanssc.org http://www.kanban101.com
9/4(土)に早稲田大学で行われたXP祭りに行ってきました。
細かいセッションの内容はPublickeyさんのサイトで解説されているので、僕は率直な感想とか。
アジャイルなテストの話。「コンテキスト依存」という言葉が登場するように、テストをどこまで行うかは、案件の性質や置かれた状況によって異なる。だからこそ、テストの戦略を最初に決めておく必要がある。
開発会社の社内QA基準に従ってテストするっていう行為自体は、顧客にとって本当に価値がある話なんだっけ?っていうとそうじゃなくて、顧客にとっては、バグがあるとかないとか、そういうレベルの話ではなく、そのソフトウェアを使ってビジネス上の成果が出るかどうかが一番重要。
テストへの投資額は バグが顕在化した際に受ける損失<テストへの投資 であるべきで、
テストへの過度な投資によってマーケット投入が遅れ機会を失うリスク>バグが顕在化した際に受ける損失であれば早期に市場に投入すれば良い。
Agileな開発との親和性が高いWebアプリケーション開発では、特にサービス提供会社はベータ版という位置づけでどんどん早期にマーケットに投入してくる。
SIerは、サービス系の会社とは業態が違うから、と一蹴するのではなく、何故彼らがそういう行動を取っているのかよく考えるべきなんじゃないだろうか。
仕事と家庭とバランスが大事、という話はすごく共感できた。
僕があまり残業しないのは、家族と夕飯一緒にたべて会話する時間が大事だから。早起きするのは、自分の時間を確保して勉強したいから。
もちろん忙しい時期もあるから完全にそのとおりにできるわけでもないけれども、自分にとっての持続可能なペースはこれかな、と思うし、このペースを維持しているから、家族の理解を得ながら色々な活動が出来ているのだと思う。
僕にとってアジャイルとは何か?という話をよくするんだけど、それは
「顧客の満足と価値を実現し、開発者のQOLを向上させ、さらに自社の利益もちゃんとあげるための道具」
ということ。
またその思いがはっきりした。
@kompiroさんらと「Fearless Change」を読んだ。英語の文献を読むのは苦痛ではないけど、人に説明できるようにちゃんと読むのは難しい。
日頃から英文を読む機会は多いけど、分からない単語はとばして、どうしても重要なポイントだけ辞書を引くような読み方なので、こういう読み方もあるんだなぁと参考になった。前の会社の時に一時期、本田宗一郎や松下幸之助やジャック・ウェルチの本を半年くらい毎週輪読していたことがあったんだけど、いいよなー。
で、こういう輪読の際は「脱線上等!」が大事。本を読んで理解するだけじゃなくて、そこから何を考えるかが大事だから。
楽天藤原さん、NECソフト安藤さん、静岡県立大学の細澤さんによるAgile Conference 2010への参加報告。先日楽天さんにお邪魔した際に話を聞かせていただいたけど、なんど聞いてもその場の熱狂が伝わってくる。安藤さんがすごいのは、お子様含めた家族も連れて行ったことがある、ということ。@kawagutiさんも会場にお子様連れてきてたし、そういうことができるというのは本当に素晴らしい。10月のとあるイベントで@kawagutiさんが家族参加をOKにできるよう交渉中、という話を聞いたので、もしそうなったら自分の息子(twitterのアイコンの人)を連れていこうと思う。
来年はソルトレークシティーということで、奥さん誘って、なんとか行きたいなぁ。
あと、今年は日本人による発表はなかったので、来年は誰か(@masayang師匠とか@holicさんとか)Submitしてほしいですね。
登壇者がみんなLT慣れしていて、(LT初という方もいらっしゃったけど、LTの秘孔を突いてきたw)、引き込まれた。
@tomohnさんのプレゼンは何度もお聞きしているが、相変わらずしゃべりも資料もすごかった。あの資料を30分で作るのは人間技じゃないなぁ。
あとは、息子がポケモンバトリオゼロに夢中で、しばしば付き合っているので、ESM水越さんの発表は超笑えた。
僕もよくLTやるけど、LTは楽しい。
70人収容の会場に90人くらいの人がいて、カオスな感じだったが、@hiranabeさんにご挨拶もでき、@samuraiRedさんたちとお話したりできて良かった。
他にも色々な方とお話をして結構よく聞いたのが、「現在自分だけ(もしくは自分のチームだけ)でアジャイルをやっていて、なかなか周りに理解されない」という悩み。
僕が答えを持ちあわせているわけではないけど、Fearless Changeにも出てくるように、「熱意をもって」取り組むしかないだろう。NECソフト安藤さんのように、社内にコミュニティ作ってゲリラ的に活動してみたり、@kawagutiさんのようにどんどん周りを巻き込んでみたり。
以前マイクロソフトさんでAgile導入に関する話をさせていただいたときにも、触れたけど、「説得ではなく、納得」が大事だし、「理解させるのではなく、興味をもってもらう」ところがスタートでしょう。
アジャイルって本では伝わらないっていう平鍋さんの話もあったけど、こういうセミナーの熱気も文章だけだと伝わらない。
みんなもどんどん行ったら良い。ひきこもり体質の僕が変われたのは、リアルな場に思い切って行くようになって知り合いが増えたことが非常に大きい。
多くの出版社さんから本を提供いただいたということで、私も1冊頂戴いたしました。
Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality
著者/訳者:Elfriede Dustin Thom Garrett Bernie Gauf
出版社:Addison-Wesley Professional( 2009-03-14 )
定価:¥ 4,054
Amazon価格:¥ 4,166
ペーパーバック ( 368 ページ )
ISBN-10 : 0321580516
ISBN-13 : 9780321580511
僕がやっている案件(PHP)はもともとテストコードのないレガシーなプロジェクトで、それを改善するためにずっと動作を確認するための結合レベルの自動テストを増やしてきた。
そんな中で僕のところではどうやってテスト用のfixtureを管理しているか事例として紹介したいと思う。
みんなが沢山テストを作る前にコアとなるテスト用のfixtureは用意しておく。
さもないと、みんなが好き勝手にfixtureを作ってしまい、あっという間に混乱に陥る。
プログラム本体と同様に、DRYの原則で、同じようなテストデータを繰り返し作ってしまうようなことは避けるべきだ。
最悪なパターンは開発機や本番機のデータを引っこ抜いてきて、それをそのままテストデータとしてごっそり使う方法。流石に居ないと思いたいが、こういうことをやってしまうとテストデータの見通しが悪すぎて、テストが失敗した場合の検証が非効率だし、そもそもデータのロードに時間がかかりすぎる。
マスター系のテーブルとか、ユーザー情報のテーブルのためのfixtureはテストケースごとにバラバラに用意してはいけない。似たようなfixtureがあちこちに造られると、テストの数が増えてからの仕様変更の際にテストデータのメンテナンスだけでえらく時間が取られてしまう。
僕の場合は、共通fixture置き場に基本的なfixtureをテーブルごとに配置した上で、テストケースごとのfixtureを上書きでロードしている。
以下はPHPの場合だけど、基底クラスで、以下のようにCSVの取り込みロジックを作っておいて
if(is_array($this->fixture_path)) {
foreach($this->fixture_path as $path) {
echo "----" . $path . "\n";
if ($dir = opendir($path)) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != ".." && substr($file, -4) == ".csv") {
$table_name = str_replace(".csv", "", basename($file));
echo "===loading $file...";
@$dataSet->addTable($table_name, $path . "/" . $file);
echo " done!\n";
}
}
closedir($dir);
}
}
}
return $dataSet;
}
テストケースのコンストラクタあたりで
なんてやって、fixtureを複数階層に分けてロードしている。
fixtureをYAMLやXMLで持ってても同じことができるんじゃないかな。
僕はPHPUnit+Seleniumで結合試験を自動化していて、fixtureはテーブルごとにCSVファイルを用意している。これらのCSVをsetUp()で読み込むようにしているんだが、fixtureのカラム数があっていないと、すぐテストが落ちてしまう。(XMLでfixtureを保持していると楽かもしれないんだけど)
開発中は、当然カラムの追加や削除はあるが、その度にどのfixtureを修正しなければならないかを考えるのは面倒で仕方ない。
なので僕は、全fixtureをDBのスキーマと照合するツールを作っている。これがあればスキーマの変更の怖さはちょっと軽減される。
手で整合性の取れたfixtureを作るのはなかなか大変なので、Excelでfixtureをつくるようにしている。
予め用意しておいたシートに値を入れてマクロを動作させると、fixtureが自動で生成されるかんじ。
こういうツールもプロジェクトの早い段階で用意できていると効率的だろう。
例えば最終ログインから60日たっていたらAをして、120日たっていたらBをする、というテストケースの場合、fixtureに最終ログイン日時をハードコーディングできない。ハードコーディングしてしまうと、そのテストは実行日によってテスト結果が変わってしまうテストであり、自動テストの条件を満たさない。
このような場合は、fixtureにて識別可能な適当な値を設定しておいて、別途テストの初期化メソッドで値を書き換えるような対応をする。
まぁまだまだ改善の余地はあるなぁと思うけど、大分楽になってきたのは確か。
とはいえあくまで外側の挙動が担保できるようになっただけなので、内部的なリファクタリングと、メソッドレベルのテストはこれから増やしていかないといけない。
紺屋の白袴ということで、試行錯誤中ではあるのだが、自戒を込めてまとめておく。
テストは以下の条件を満たしている必要がある。
レガシーコード改善ガイド (Object Oriented SELECTION)
著者/訳者:マイケル・C・フェザーズ
出版社:翔泳社( 2009-07-14 )
定価:¥ 4,410
Amazon価格:¥ 4,410
大型本 ( 472 ページ )
ISBN-10 : 4798116831
ISBN-13 : 9784798116839
ということでレガシーコードと格闘中orz
超FAQだけど個人用メモ。
GPartedのLive CDを使って仮想マシンを起動し、パーティション情報を修正する。
なお、GPartedはLVMには対応していないので、CentOSのように標準でLVMを使用するOSの場合は、別パーティションを作成し、そのパーティションをLVMに追加することになる。
以下GPartedの操作メモ。
標準でGPartedが起動される。!マークはLVMで編集できないことをさす。ここで拡張したディスクが未割り当てとして表示されているはずだ。

未割り当てのパーティションを選択して、Newをクリック。CentOSであれば通常ext3でOK。

まだ設定は反映されていないので、ツールバーのApplyボタンを押す。警告が出るので内容確認してダイアログ内のApplyボタンをクリック

結果として、先ほど未割り当てだった領域がsda3として新設されたことがわかる。

以上が終わったら、CDROMを取り出して、OS再起動。
新たに追加したパーティションはsda3なので、これをLVMに追加する。
追加したディスクパーティションをPV(物理ボリューム)として定義する
追加したPVをVolGroup00という名前のVolume Groupに追加する
論理ボリュームにディスク容量を追加する。
ファイルシステムサイズを再認識させてディスク容量の追加を反映させる。
以上で完了。再起動も不要っぽい。
自動テスト環境をWindowsからLinux環境にしたとたんに、テストが通らないものが頻発して、初めて開発者がhtmlの中に機種依存文字である波ダッシュを埋め込んでくれていたのに気づいた。。orz
以下Wikipediaから引用。
Unicodeの仕様書では、U+301C WAVE DASH(波ダッシュ)に、「JIS punctuation」(The Unicode Standard、Version 2.0より引用、「JIS約物」の意)という注釈を施しておきながら、JIS X 0208の波ダッシュの例示字形(“上がって下がる” 形「」)とは異なる形(“下がって上がる”形「」)を印刷してしまった。
このような間違いが発生した理由は、Unicodeの例示字形を検討するグループにいたメンバーの日本語に対する知識が不十分だったために、縦書きの例示字形「」を90度回転すればいいと誤って判断してしまったためである[4]。
この影響を受けて、Microsoft Windows(XP以前)ではUnicodeの波ダッシュ (U+301C, WAVE DASH) は“下がって上がる”形「」で表示される(MS 明朝、MS ゴシック、MS UI Gothicにおけるもの)。それに対し、Unicodeの全角チルダ (U+FF5E, FULLWIDTH TILDE) は“上がって下がる” 形「」で表示されるようになっており、Shift_JISの波ダッシュ (0x8160、WAVE DASH)「」と同一の文字として扱われる。
このようにWindowsは、Shift_JISの波ダッシュ (0x8160、WAVE DASH)「」を、本来割り当てるべきUnicodeの波ダッシュ (U+301C, WAVE DASH) ではなく、Unicodeの全角チルダ (U+FF5E, FULLWIDTH TILDE)「」に割り当てている。一方、Mac OSやMac OS XではShift_JISの波ダッシュ (0x8160、WAVE DASH)「」を本来のUnicodeの波ダッシュ (U+301C, WAVE DASH) に割り当てており、その字形も一般的な波ダッシュの形である“上がって下がる”形「」で表示される(Osakaフォントやヒラギノフォントにおけるもの)。このWindows独自のUnicode割り当てが産んだ非互換性により、波ダッシュ (U+301C, WAVE DASH) が環境によっては文字化けを起こす機種依存文字となってしまっている。
JAVAだけの話かと思ってたが、そうじゃなかったんだな〜。
よくある質問に適当に答えるコーナー第二回?。
前提は、アジャイル開発を採用しているシステム開発の場合で、ウォーターフォールでの開発や、その他の業界なんかはまったく想定していないし、ターゲットにしていない。
質問:自分のタスクが終わったら、周りを気にせず帰ってしまう人がいて困っています。
質問:メンバーが指示がないと作業が進められないと言って、待ちになってしまい、生産性があがりません。
顧客の価値を実現するために行動していないよね?
こうなってしまうひとつの理由として、その担当者からお客様が見えていな い、ビジネスの価値が分かっていない、という点があげられると思う。従って、とにかくお客様のところに連れて行き、お客様が何を考えているか理解させるようにすべき。
エンジニアはモノを作るのが仕事なんじゃなくて、価値を実現するのが仕事。
そもそも自分のタスクってなんだっけ?というのもある。Scrumであれば、タスクは自分でサインアップすることになるので、チームがコミットしたゴールに向けて、残っているタスクを自分でサインアップしてこなしていかなければならない。
スクラムマスターがタスクの割り当てをしてしまうから、自分のタスクが終わったら帰ってしまうメンバーが出てきたりするのではなかろうか?
なお、付き合い残業しろ、とかいうつもりはサラサラ無い。そんなの糞だ。
あくまで、チームとして(PMが勝手にではなく)コミットしたものがあるのにも関わらず、そのチームのコミットに対して責任を持たない人をスコープにした話である。
帰ってしまう人がいるチームは、往々にしてチームのコミュニケーションがうまくいっていない。
個人としてではなく、チームとして成果を出すんだ!という前提のもとに全員の問題をいつでも気軽に話せるようにしなければならない。話にくい雰囲気が出来ると、隠ぺい、先延ばしが発生してリスクになる。
※評価を行える人にならないと無理な方法だけど、オープンな評価軸は組織の透明性を強化し、組織力の向上につながる。
待ちになってしまう人は、技術力がない、とかチームのやり方が分からない、等といった理由で待ちをしてしまうことも多い。
技術を身につけ、チームのやり方に慣れるためには、その人をひとりにせず、ペアで活動すると良い。徐々に慣れてくるだろう。
日本のほとんどの企業はOJTでは数年上の先輩1人にくっつく形だが、アジャイルなOJTでは、チーム全体で人を育成することになる。
チーム全体がメンバーの能力を向上させる責任を負っている、と考えるべきだ。
残念ながらそういう人がいるかもしれない。チームにずっとそういう人がいるとチームの士気が低下して周りにも影響を及ぼすようになる。上長と相談してメンバーを入れ替える、といった対忚が必要になる場合もある。
いままでアジャイルコーチ稼業をしてきて、よく聞かれた質問があるんだけど、それへの答えを定期的に掲載していってみようかと思う。もし質問があったらコメントでもTwitterでも何でも良いのでいただければ、速攻でブログに私見を書いていきます。
【質問】似非アジャイルって何ですか?
例として以下のようなものがあげられると思う。他にもあるだろうけど代表的なところでは
Top 100 Agile Booksというテーマで、Jurgen氏が書かれていたので、どのくらいの本が日本で翻訳されてるんだっけ?という興味もあり、日本語化されているものはその旨追記してみた。
なお、Jurgen氏によれば、Amazonで、「この本を買っている人は合わせてこれも買っています」みたいな情報によって本の一覧を抽出し、ランキングについては、AmazonとGoodReadsというサイトのデータを参考にして重みづけして集計したとのこと。
本が売れないから邦訳が出るのを時間をかけてまっても仕方ないという気もするので、この本翻訳まだー?みたいな人は英語で読んでしまうと良いのではないかと思う。
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~
著者/訳者:Mike Cohn マイク コーン
出版社:毎日コミュニケーションズ( 2009-01-29 )
定価:¥ 3,360
Amazon価格:¥ 3,360
単行本(ソフトカバー) ( 336 ページ )
ISBN-10 : 4839924023
ISBN-13 : 9784839924027
著者/訳者:Robert C. Martin
出版社:アスキー・メディアワークス( 2009-05-28 )
定価:¥ 5,040
Amazon価格:¥ 5,040
大型本 ( 528 ページ )
ISBN-10 : 4048676881
ISBN-13 : 9784048676885
レガシーコード改善ガイド (Object Oriented SELECTION)
著者/訳者:マイケル・C・フェザーズ
出版社:翔泳社( 2009-07-14 )
定価:¥ 4,410
Amazon価格:¥ 4,410
大型本 ( 472 ページ )
ISBN-10 : 4798116831
ISBN-13 : 9784798116839
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
著者/訳者:マーチン ファウラー Martin Fowler 児玉 公信 平澤 章 友野 晶夫 梅沢 真史
出版社:ピアソンエデュケーション( 2000-05 )
定価:¥ 5,040
Amazon価格:¥ 5,040
単行本 ( 423 ページ )
ISBN-10 : 4894712288
ISBN-13 : 9784894712287
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
著者/訳者:ロバート・C・マーチン
出版社:ソフトバンククリエイティブ( 2008-07-01 )
定価:¥ 6,090
大型本 ( 720 ページ )
ISBN-10 : 4797347783
ISBN-13 : 9784797347784
著者/訳者:アンドリュー ハント デビッド トーマス
出版社:ピアソンエデュケーション( 2000-11 )
定価:¥ 3,990
Amazon価格:¥ 3,990
単行本 ( 333 ページ )
ISBN-10 : 4894712741
ISBN-13 : 9784894712744
リーンソフトウエア開発~アジャイル開発を実践する22の方法~
著者/訳者:メアリー・ポッペンディーク トム・ポッペンディーク
出版社:日経BP社( 2004-07-23 )
定価:¥ 2,520
単行本 ( 307 ページ )
ISBN-10 : 4822281930
ISBN-13 : 9784822281939
アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング
著者/訳者:James Shore Shane Warden
出版社:オライリージャパン( 2009-02-18 )
定価:¥ 3,780
Amazon価格:¥ 3,780
大型本 ( 464 ページ )
ISBN-10 : 4873113954
ISBN-13 : 9784873113951
アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法 (THEORY/IN/PRACTICE)
著者/訳者:Scott Berkun
出版社:オライリー・ジャパン( 2006-09-07 )
定価:¥ 3,360
Amazon価格:¥ 3,360
単行本(ソフトカバー) ( 464 ページ )
ISBN-10 : 4873112990
ISBN-13 : 9784873112992
実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)
著者/訳者:Janet Gregory Lisa Crispin
出版社:翔泳社( 2009-11-28 )
定価:¥ 5,040
Amazon価格:¥ 5,040
大型本 ( 552 ページ )
ISBN-10 : 4798119970
ISBN-13 : 9784798119977
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣
著者/訳者:Venkat Subramaniam Andy Hunt
出版社:オーム社( 2007-12-22 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本(ソフトカバー) ( 220 ページ )
ISBN-10 : 4274066940
ISBN-13 : 9784274066948
アジャイルプロジェクトマネジメント 最高のチームづくりと革新的な製品の法則
著者/訳者:ジム・ハイスミス 小野 剛 平鍋 健児 高嶋 優子 小野 剛
出版社:日経BP出版センター( 2005-06-09 )
定価:¥ 2,520
単行本 ( 334 ページ )
ISBN-10 : 4822282295
ISBN-13 : 9784822282295
著者/訳者:メアリー・ポッペンディーク トム・ポッペンディーク
出版社:日経BP社( 2008-02-07 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本(ソフトカバー) ( 336 ページ )
ISBN-10 : 482228350X
ISBN-13 : 9784822283506
初めてのアジャイル開発 ~スクラム、XP、UP、Evoで学ぶ反復型開発の進め方~
著者/訳者:クレーグ・ラーマン ウルシステムズ株式会社 児高 慎治郎 松田 直樹 越智 典子
出版社:日経BP社( 2004-09-09 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本 ( 423 ページ )
ISBN-10 : 4822281914
ISBN-13 : 9784822281915
ユースケース実践ガイド―効果的なユースケースの書き方 (OOP Foundations)
著者/訳者:アリスター コーバーン Alistair Cockburn ウルシステムズ株式会社 山岸 耕二 矢崎 博英 水谷 雅宏 篠原 明子
出版社:翔泳社( 2001-11 )
定価:¥ 3,990
Amazon価格:¥ 3,990
単行本 ( 330 ページ )
ISBN-10 : 4798101273
ISBN-13 : 9784798101279
パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法
著者/訳者:ジョシュア・ケリーエブスキー 小黒 直樹 村上 歴 高橋 一成 越智 典子
出版社:日経BP社( 2005-08-04 )
定価:¥ 4,200
Amazon価格:¥ 4,200
単行本 ( 381 ページ )
ISBN-10 : 4822282384
ISBN-13 : 9784822282387
アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き
著者/訳者:Esther Derby Diana Larsen
出版社:オーム社( 2007-09 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本 ( 184 ページ )
ISBN-10 : 4274066983
ISBN-13 : 9784274066986
アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)
著者/訳者:ディーン・レフィングウェル
出版社:翔泳社( 2010-02-18 )
定価:¥ 3,780
Amazon価格:¥ 3,780
大型本 ( 368 ページ )
ISBN-10 : 4798120405
ISBN-13 : 9784798120409
アジャイルソフトウェア開発スクラム (アジャイルソフトウェア開発シリーズ)
著者/訳者:ケン シュエイバー マイク ビードル
出版社:ピアソンエデュケーション( 2003-09 )
定価:¥ 2,100
Amazon価格:¥ 2,100
単行本 ( 183 ページ )
ISBN-10 : 4894715899
ISBN-13 : 9784894715899
プロダクティブ・プログラマ -プログラマのための生産性向上術
著者/訳者:Neal Ford
出版社:オライリージャパン( 2009-04-27 )
定価:¥ 2,730
Amazon価格:¥ 2,730
単行本(ソフトカバー) ( 284 ページ )
ISBN-10 : 4873114020
ISBN-13 : 9784873114026
著者/訳者:ケント ベック
出版社:ピアソンエデュケーション( 2005-12 )
定価:¥ 2,415
Amazon価格:¥ 2,415
単行本 ( 189 ページ )
ISBN-10 : 4894716852
ISBN-13 : 9784894716858
Manage It! 現場開発者のための達人式プロジェクトマネジメント
著者/訳者:Johanna Rothman
出版社:オーム社( 2008-10-18 )
定価:¥ 3,360
Amazon価格:¥ 3,360
単行本(ソフトカバー) ( 352 ページ )
ISBN-10 : 4274067297
ISBN-13 : 9784274067297
アジャイルソフトウェア開発 (The Agile Software Development Series)
著者/訳者:アリスター・コーバーン Alistair Cockburn
出版社:ピアソン・エデュケーション( 2002-08-30 )
定価:¥ 3,360
Amazon価格:¥ 3,360
単行本 ( 400 ページ )
ISBN-10 : 4894715791
ISBN-13 : 9784894715790
著者/訳者:ケント ベック
出版社:ピアソンエデュケーション( 2003-09 )
定価:¥ 3,150
Amazon価格:¥ 3,150
単行本 ( 217 ページ )
ISBN-10 : 4894717115
ISBN-13 : 9784894717114
継続的インテグレーション入門 開発プロセスを自動化する47の作法
著者/訳者:ポール・M・デュバル スティーブ・M・マティアス アンドリュー・グローバー
出版社:日経BP社( 2009-08-06 )
定価:¥ 3,360
Amazon価格:¥ 3,360
単行本(ソフトカバー) ( 304 ページ )
ISBN-10 : 482228395X
ISBN-13 : 9784822283957
著者/訳者:Allan Kelly
出版社:共立出版( 2010-08-25 )
定価:¥ 3,465
Amazon価格:¥ 3,465
単行本 ( ページ )
ISBN-10 : 4320097599
ISBN-13 : 9784320097599
Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック
著者/訳者:Jared Richardson William Gwaltney Jr. でびあんぐる
出版社:オーム社( 2006-08-26 )
定価:¥ 2,730
Amazon価格:¥ 2,730
単行本(ソフトカバー) ( 224 ページ )
ISBN-10 : 4274066568
ISBN-13 : 9784274066566
アジャイル開発の6原則と20のベストプラクティス―オープン統一プロセス“OpenUP”とラショナル統一プロセス“RUP”を集約した実践的ソフトウェア開発指針
著者/訳者:パー クロール ブルース マックアイザック
出版社:エスアイビーアクセス( 2007-08 )
定価:¥ 4,200
Amazon価格:¥ 4,200
単行本 ( 374 ページ )
ISBN-10 : 4434108743
ISBN-13 : 9784434108747
著者/訳者:スコット W アンブラー ピラモド・サダラージ
出版社:ピアソンエデュケーション( 2008-03-26 )
定価:¥ 3,780
Amazon価格:¥ 3,780
単行本 ( 330 ページ )
ISBN-10 : 4894715007
ISBN-13 : 9784894715004
著者/訳者:ケント・ベック Kent Beck
出版社:ピアソンエデュケーション( 2008-12-22 )
定価:¥ 2,310
Amazon価格:¥ 2,310
単行本(ソフトカバー) ( 208 ページ )
ISBN-10 : 4894712873
ISBN-13 : 9784894712874
XPエクストリーム・プログラミング導入編 ― XP実践の手引き (The XP Series)
著者/訳者:ロン・ジェフリーズ アン・アンダーソン チェット・ヘンドリクソン
出版社:ピアソン・エデュケーション( 2001-08-10 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本(ソフトカバー) ( 348 ページ )
ISBN-10 : 4894714914
ISBN-13 : 9784894714915
著者/訳者:David J. Anderson
出版社:日刊工業新聞社( 2006-03 )
定価:¥ 4,410
Amazon価格:¥ 4,410
単行本 ( 385 ページ )
ISBN-10 : 4526056162
ISBN-13 : 9784526056161
エンタープライズ統一プロセス (Object Oriented SELECTION)
著者/訳者:John Nalbone Michael J. Vizdos 藤井 拓
出版社:翔泳社( 2006-07-11 )
定価:¥ 4,725
Amazon価格:¥ 4,725
大型本 ( 400 ページ )
ISBN-10 : 4798109347
ISBN-13 : 9784798109343
アジャイルモデリング―XPと統一プロセスを補完するプラクティス (OOP Foundationsシリーズ)
著者/訳者:スコット・W・アンブラー
出版社:翔泳社( 2003-08-06 )
定価:¥ 3,990
Amazon価格:¥ 3,990
単行本(ソフトカバー) ( 473 ページ )
ISBN-10 : 4798102636
ISBN-13 : 9784798102634
アジャイルソフトウェア開発エコシステム (アジャイルソフトウェア開発シリーズ)
著者/訳者:ジム ハイスミス
出版社:ピアソンエデュケーション( 2003-09 )
定価:¥ 4,200
Amazon価格:¥ 4,200
単行本 ( 404 ページ )
ISBN-10 : 4894717379
ISBN-13 : 9784894717374
Sourceforge.jpで公開しているAgilo日本語版ですが、Trac 0.11.6およびTrac 0.11.7でインストールに失敗する件について対応を行ないました。
入手は以下から。
http://sourceforge.jp/projects/shibuya-trac/wiki/plugins/Agilo_ja
なお、インストール後にプロダクトバックログ画面で、UnicodeDecodeErrorが表示される場合は、http://www.ryuzee.com/contents/blog/941を参照して、sitecustomize.pyを作成してください。
Agiloって何という方は以下のスライドを参照ください。
日記 PHP オープンソース インストールマニアックス IIS Trac MySQL Perl Linux Agile・生産性向上 wordpress フリーソフト 自宅サーバ 書評 ブックマーク phpMyFaq TraM Plugin 早起き Delphi apache CakePHP Firefox Ruby eclipse セキュリティ プラグイン アジャイル mojavi Subversion Ajax/Web2.0 SQLServer Zope サーバ フレームワーク phpBB 仮想化 PostgreSQL OpenVZ scuttle CMS 文字化け 自宅 翻訳・日本語化 ApacheDS LDAP Excel 生産性向上 CodeIgniter XAMPP hacks taskfreak 修正 言語ファイル Ajax SBM ダウンロード HTML::FillInForm mod_security 情報共有