5 min on Scrum | Retrospectives| 10 Ideasより。抜粋。
個人的には、振り返りは近所の緑の多い公園にいってやったり出来ると素晴らしいと思う。
- 振り返りの形式を変えて行こう。新しい質問を追加したり、違うテイストでやってみたり。
- オフィスの中じゃなくて、公園とか庭で振り返りしよう。
- NLPに関する本を読んで、本に記述されている表現方法を使ってみよう。(訳注:[1])
- 質問することを学ぼう!。
- 振り返りの最後に、次回の振り返りをどうやって良くすることが出来るかを尋ねよう。
- スプリントで作ったものを持ってこよう。(訳注:[2])
- チームに事前に開催通知を送ろう。そうすればチームは振り返りにデータを準備してくることができる。
- ストーリーワークショップを振り返りとして実施しよう。90分で、直前のスプリントに関する短いストーリーを書き、映像を作り、上映しよう。
- 未来予測のワークショップをやってみよう - 将来の2011年について振り返りをして、どうしたら2011年をより良く出来るかを考えてみよう。
- 会議を生産的にすすめる方法について扱う研修に行こう。そしてそこで学んだことを取り入れよう。
訳注。どっちもドイツ語なので後で調べる
[1] http://agilesoftwaredevelopment.com/blog/peterstev/start-trust-start-retrospective
[2] Neurolinguistisches-Programmieren-Kommunikation-personliche-Entfaltung NLP,
Have Fun With Agileより。これ良い記事だと思う。
要約するとこんな感じ。
- 働くときに楽しいことは言うまでもなく重要だ
- Agileな開発手法はチーム中心のモデルで、良いチームを作るために色々な手法がある
- よくやるのが、業務終了後にみんなで飲みに行ったりすること。でも個人の時間使うし強制は出来ないよね
- 他にはチームみんなでゲームするって手もある
- チームを作るときにゲームをする、っていうのはお互いを良く知るためにも役に立つ
- チームのメンバーは、学習と同時に楽しむことで、より賢くなれる。
- チームは自分たちが楽しんでリラックスしていれば、多くのストレスを抱えることもない。リラックスした脳はより生産的だ
- 楽しんでやること(ミーティングだったり、振り返りやデイリースクラムを楽しむこと)は価値があることだと思う
- プロジェクト予算でルービックキューブとか他のゲーム買ったりしても良いんじゃない?
Googleは社内にバランスボールとかビリヤードがあるし、国内の会社だって、会社でゲームやったりしている会社はネットサービス系の企業には結構ある。
そう考えると上の話も納得できるんじゃないかな。
開発者のための無償のチートシートの1つとして、Scrumに関する資料が公開されている。
入手は下記から。
http://refcardz.dzone.com/refcardz/scrum
※なお入手の際には無償の会員登録が必要だ。

内容はA4用紙約5枚分で、
- スクラムとは
- スクラムでの役割
- スクラムでの会議
- スクラムで利用する道具
- スクラムのスケーリング
- 関連情報等
という内容になっており、コンパクトな説明でありつつ十分な内容をカバーしている。
英語で書かれているが中身は簡単なので、是非一度読んでみると良いのではと思う。
RetrospectivaはRails製のオープンソースプロジェクト管理ツール。入手はhttp://retrospectiva.org/overviewから可能だ。
で、Retrospectivaはプラグインを利用して機能拡張することができ、Agileプロジェクト用の、AgilePMというプラグインが公開されていたので試してみた。
動作させた環境
Lenovo S10e上のUbuntu9.10日本語版。
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
Rails 2.3.5
sqlite3
インストール
Retrospectivaのインストールはかなり簡単。curlがインストールされていれば
curl http://github.com/dim/retrospectiva/raw/master/script/remote/retrospectiva_installer.rb | ruby
として指示に従えばOK。
AgilePMのインストールは、コマンドラインで以下のようにすればOK。
RAILS_ENV=production script/rxm install agile_pm
以上が終わったら以下のように起動する。3000番ポートで起動される。
/usr/bin/ruby script/server -e production
なお、初回ログインはadmin/passwordの組み合わせで管理者権限でログインできるので、ログイン後パスワードを変更する。
操作イメージ
- ログイン後はプロジェクトが存在しないので、管理メニューから新規プロジェクトを作成する。
- マイルストーンを作成する。

- メニューの「目標一覧」をクリックして、新しいスプリントを作成する
- スプリントの中で「新しい目標」をクリックすると、ユーザーストーリーを作成することができる

- 次にメニューの「ストーリー一覧」をクリックすると、一覧が表示される。ここで言っている「ストーリー」はScrumで言うところのタスクなので、ちょっと戸惑う。追加の際に、紐づく「目標」(=ユーザーストーリー)と見積もり時間を入力する。
- タスクの追加を全部済ませたら、後は一覧画面で毎日残存時間を更新していけば良い。画面遷移なく一覧の上で直接時間編集できるので分かりやすい

- タスクの残存時間の推移を見たければ「未処理」という項目をクリックすれば良い

またバーンダウンチャートは目標一覧の画面で見ることができる。
使用感と感想
操作性については分かりやすい。Ajax等を利用して比較的ストレスなく操作できる。
ただ、いくつかScrumを利用している僕個人にとっては致命的な問題があるような気がするので、以下に記しておく
- 日本語訳のせいかもしれないが、Scrumで言うストーリーが「目標」、タスクが「ストーリー」と書かれており混乱する
- 「目標」(=ストーリー)に相対見積もりの値をつけることが出来ない
- 「目標」(=ストーリー)に絶対的な優先順位をつけることが出来ない(必須、線形、魅力くらいはつけられる)
この問題があるが故に僕なら現場で使わないだろう。用語の混乱は現場の混乱に直結するし、相対見積もりが出来なければスプリント中に実装するストーリーを選択するのに別の管理方法を取らなければならなくなる。それであれば、基本に忠実なTeamTrickを使った方が良いと思う。
Scrum Smellsより。スクラム風の特徴をまとめてあったのでとりあえず目次だけ適当訳。
あとはMike Cohnが書いたこちらの文書も参照。http://www.mountaingoatsoftware.com/system/article/file/11/ScrumSmells.pdf
- リズムがない
- 「鶏」がしゃべっている
- 「豚」不在
- バックログを管理できていない
- 問題の兆候がずっと続く
- スクラムマスターが仕事を割り振る
- デイリースクラムがスクラムマスターのためのものとなっている
- 仕事の役割が職能で分解されている
- テスターがチームに統合されていない
- バックログアイテムの見積もりを嫌がる
- それ本当にDoneなの?
- ここじゃ何も変わらない
- 誰も振り返りに出たがらない
- 経営層からのプレッシャー
- スプリントでのコミットメントがない
- 技術的負債がある
- チームとして行動しない
- 技術的なプラクティスがない
- ゴリラがいる
デイリースクラムをよりよくする10のTIPSについて書かれていたので勝手訳してみた(笑
原文は10 Tips to Improve Your Daily Scrum
- スクラムマスターは、スクラムボード(タスクボード)の隣に立たない。スクラムボードはチームのためのツールで、チームがスクラムボードを使うべきだ。
- プロジェクトを妨げる項目の一覧を用意しよう。何かはっきりしないこと、必要な情報、待ち状態-これらすべてが妨害事項だ。「全ての妨害・障害はスクラムマスターによって24時間以内に解決される」という24時間ルールに従おう。もし24時間以内に対応できないなら、上層部に報告しよう。そうすれば会社がこれらの妨害の解決を助けてくれる。
- 常に時間通りに始めよう。組織のみなにデイリースクラムの開催について絶対はっきり伝えよう。部屋の外にデイリースクラムの情報を貼りだそう。そうすればみんな分かる。廊下に大きいスクラムカレンダーを貼りだそう。全てのミーティングでそれを提示しよう。そうすれば、みんなはすぐにそれを見るようになる。
- チームカレンダーを掲示しよう。またデイリースクラムの4つの質問が書かれたシートを掲示しよう。そうすればデイリースクラム中にチームに質問する必要がなくなる。
- ファシリテーションは十分に実施しよう。通常、あなたが思っている量は十分ではない。管理するな。やるべきことを命令するな。
- プロダクトオーナーや管理者等がデイリースクラムに口出しすることを許してはいけない。チームメンバーのみが話すことができる。
- チームメンバーにはあなたが解決した妨害・問題点を説明しよう!
- デイリースクラムのために、クッキーやチョコや何かを買おう。
- 出席できないメンバーがいる場合は、居るメンバーが代わりをしよう。代わりをするメンバーはチームに対して欠席しているメンバーの状況を伝えなければならない。
- タイムボックスは厳密に守ろう。15分だ。
早速やってみてはどうだろうか。
1/22(金)にマイクロソフト社で実施されたAgile Dayのセミナーに行ってきました。
いつものように知った顔が多かったりします。スーツ比率は半々くらいかな。年齢層は20代前半、40代後半以降は少ない感じで、会社の現場を回している中堅~マネージャクラスが多かったのではないかと思います。
3月と6月にまたAgile Dayが開催される予定とのことで、個人的にはお勧めイベントだと思うので、興味のある方は是非。
マイクロソフト長沢さんのセッション
アジリティを向上させるためにマイクロソフトが行ったこと
主にマイクロソフトにおけるAgileへの取り組みや現場の回し方、体制等について事例を発表されました。
僕がAgileについて外部に研修するときに、Agileへの取り組みが進んでいる企業の一つとしてマイクロソフトをあげているけど、流石という感じ。
話の内容をいくつか抜粋。
- Tech Fielderの取り組みについて説明。得てしてベンダー側はカタログスペックや美辞麗句を話がちになるところがあったり、セールストークになりやすいけれど、そうではなく、現場の人の経験や意見、技術を発表してもらい、共有する、というのを目指しているとのこと。マーケティングの手法としても、利用者の成功体験や口コミは大事だしね。
- マイクロソフトでは、Scrumのプロセスを取り入れて開発を進めている。(以前Agile Conferenceでも聞いた)
- 利用しているツールはTeam Foundation Server。残念ながら僕は利用したことが無いので機会があれば触ってみたい。
- IBMのRational Team Concertと同様に、プロセステンプレートと呼ばれるものを利用して、Team Foundation ServerでScrumのようなプロセスの利用を可能にするとのこと。なお、プロセステンプレートはCodePlexで公開されているらしいので、既にTeam Foudation Serverを利用している人は評価してみると良いのではないか。是非結果とか教えてほしい。
- マイクロソフトにおけるTeam Foundation Serverの利用事例は増えており、Team Foudation Serverの開発チーム自体でも開発中のTeam Foudation Serverを利用している。eat your own dog foodの原則通り、人に提供する前に自分たちで使っている。やはり自分が利用者になると色々な点に気付くことが多いから、普通のシステム開発をしている人も、もし自分が利用者だったらどう思うのか?という点については良く考えると良いだろう。
- Visual Studioの開発の際は、新バージョンの開発に入る前に、既存の不具合・問題を4か月かけて片付けた。壊れた、もしくは品質に問題のあるコードベースへの機能の追加は将来に負債を抱える結果となるので、このアプローチは非常に重要。
- 標語でいうと、Get Clean, Stay Clean。綺麗な状態にして、それを保ち続ける
- マイクロソフトでの開発チームは、職能による物理チームに横櫛を通したバーチャルチームで構成する。チーム内での進め方は、共通のルールを守っている限りチームの自主性に任される。
- Visual Studioでは、1スプリントは6週間に設定されている。レビューとしては実施計画レビューと実施結果レビューを行う。
- 開発はチームごとにブランチを切って実施
- 品質のチェックはQuality Gateという17のチェック(静的解析、コードカバレージ等)で定点チェックされ合格しないと出荷できない
三井さんのセッション
開発現場でのムダ取り・改善活動
岐阜と東京を行ったり来たりして、Agileの普及や実際の開発現場の支援をされている三井さんのセッション。前回聞いたのは昨年後半にIBMで行われたセミナー。相変わらずパワフルな印象。50歳過ぎて現場のスクラムマスターを続けているというのは尊敬するし、その経験の蓄積が顧客からの信頼の源泉なのだと思う。セミナー開始前に食事をご一緒させていただいて、趣味もパワフルということが判明(笑)
主なところを抜粋。
- ソフトウェアにおいて全機能の65%が利用されない、またはほとんど利用されない、という調査結果があり、作りすぎのムダがある。
- 作りすぎのムダを無くすためには常に有言実行の行動が必要である。
- 頭脳労働においては一人の担当者を固定すると、思考停滞等の無駄が発生する。
- ムダを改善するスタイルとしては、二人ひと組の作業チームを組んで決められたタイムボックスの中で作業するのが良い。(XPにおけるペアプロを業務におけるコーディング以外の部分にも適用してしまうという風に理解)
- 作業チームによる作業は効率が良く、生産性は倍になるケースも。頭がフル回転して思考停止しないので、非常に疲れる。それ故にそもそも残業が少なくなる。
- 作業チームを作る場合は、中間管理職の意識改革が必要で、チームが自発的にやるようにしないといけない。
- 見積もりゲーム→ペアプロ→ローテーションで、チーム内の仕様認識を統一できる。「ソースコードがきれいなら」詳細設計書はいらない。
- 作業の見える化が必要。始める前の見積もり時間と実績時間を記録する。粒度は細かい方が良く、三井さんのチームでは0.25時間単位とのこと。自分のチームでは0.5時間単位で、10を超えるような大きいタスクは分割する習慣。当たり前のことかもしれないが、仕事の中身への理解度が高い程、タスクの粒度は細かくなる傾向にある。
- 改善活動は常にやり続ける必要がある。止めると陳腐化する。
- Agileを本だけ見てその通りにやるのはうまくいかないことが多い。
- 会議では、チームの悩みをどんな小さなことでも出せるようにすることが必要。それがリスクの見える化になる。
- 振り返りがチームの意欲を引き出す。
- Agileを経験した人はWFに戻っても効率が高い(自分はコミュニケーションパスと頻度の違いと理解)
- CMMIやiso9001とAgileが合わないという意見もあるが、そうではない。CMMI5は自立したチーム。
ebackyさんのセッション
あなたにとって、アジャイルとはなんですか?
ebackyさんらしいセッション。以前Shibuya.tracの勉強会に来た時と同じパターン。参加者に考えさせる機会を与えて、色んなキッカケにしている。
- Agileとは何?という質問を繰り返して、ちょっとずつヒントを与えながら参加者に考えさせる。
- (ちなみに僕にとってのAgileは、「お客さんに最大の価値を提供する、チームを幸せにする、勤務先の会社に利益をあげる、これらのための道具」です)
- Agileの押しつけはその時点でAgileでなくなってしまう危険がある。けれども学習の段階では時に盲目的にプラクティスに従ったほうが良いこともある。
- 我々がやるべきことは、Agileが本当に意味するところを「説得」するのではなく「説明」できるようにすることだ。
- Agileの探究は良いけれども、とにかく、「現場や開発チームから目を離さない!」ということを大事にする。
- あきらめずに「戦略的なtry & errorを繰り返す」ようにする。
- AgileはPeople Oriented。
ライトニングトーク
僕もちょっと話して来ました。アンチパターンの紹介と言って良いかな。
僕が言いたかったのは、チームの自立性を維持するためには、周りの人(特に力を持っている人)にAgileを誤解させないような努力が必要だ、ということ。日本の受託型SIやコンサル→開発の案件において、プロジェクト開始時点でチームに関係ない外的要因によって失敗の可能性が増えてしまう、というのは避けたいし、そうならないようチームが努力するべきなんだと思う。
僕がお話した内容
個々の内容については、マイクロソフトのサイトにしばらくした後掲載されると思う。
- アジャイル開発 まずは社内の誤解に立ち向かえ(←僕)
- TDD ってどんな感じ? ~ FizzBuzz を作ってみる
- アジャイルソフトウェア開発現在進行形
僕個人のまとめ
僕は自分自身が他の会社の人にAgileを教える立場なんだけど、長沢さん、三井さん、ebackyさんの話のストーリーに感服でした。
押しつけじゃなく、自分たちの経験を伝えていて、それは銀の弾丸では無いんだけれども、参加者の共感を確実に得ている。
認知→共感→実行のプロセスを経て、参加者が何かを実行できる土台になっていた。
プラクティス自体はそれはそれで素晴らしいんだけど、押しつけでなく、自分達が良い、と思って実行できる環境づくりが大事なんだと改めて認識。
その他
LTで投票結果が1位だったとのことで、色々なグッズを頂いてきました。長沢さんありがとうございます。
- Windows7のロゴ入り手帳。この間Windows7入れておいて良かった(笑)
- Visual Studioのロゴ入りプランニングポーカー!。これで上司に見積もりゲームやってても、何トランプやってるんだ?と言われなくなります(そもそも言われませんけど)
- Windows7のバッチ付きポーチ
moongiftで紹介されていたので早速試してみました。
概要
TeamTrickはRailsで出来ているScrumプロジェクトの管理ツールで、チーム管理、プロダクトバックログ、スプリントバックログ、バーンダウンチャートなど基本的な機能を備えている。
外部へのデータのエクスポートや外部からのインポートには対応していない模様。
日本語は問題なく使えることを確認しています。
入手
本家サイトからダウンロード可能。
Linux用とWindows用が用意されており、Windows用の場合は、バッチファイルを実行することで即起動して使える。Windows版はインストールパスにスペースが含まれていなければ問題なく起動できる(デスクトップに配置すると起動失敗)→他のマシンでは再現しないので、他の問題かも。
機能紹介
とりあえず画面の紹介。
ユーザー登録画面。

ログイン直後。プロジェクトのリストが表示されていることから分かるように複数プロジェクト対応

プロジェクトのトップページ。ダッシュボードとして、ベロシティ等の指標やバックログ、スプリント情報が見られる。

同じくバックログの画面の下部。

左ナビからプロジェクトにあるバックログ項目を表示したところ。左列の数字は優先順位。

ユーザーとロール

スプリントの一覧。ここをクリックすると個別のスプリント画面に移動できる

個別のスプリントを表示したところ。バーンダウンチャートが表示されているのがわかる

スプリントバックログとタスクを表示したところ。ストーリ自体の合算残り時間も表示される

日本語も問題なく利用可能だ。

まとめ
機能としてはシンプルだが必要なものは揃っている。まずは初めてやってみる、というチームには良いだろう。バージョン管理システムとの連携等はないが、Scrumの原則という意味でこのプロダクトには必要機能が網羅されている、と言えると思う。Ajaxの利用によってユーザビリティもそこそこ高い。
ということで、比較的お勧めです。
正直Agiloより使いやすいかも(汗。
「プロジェクトの失敗につながる九つの要因に注意」より
- 対象プロジェクトが新規顧客からの受注であること
- 新システムの要件が「現行どおり」とされていること
- 新技術や経験のない処理方式を採用していること
- IT企業と顧客との間で一括請負契約を結んでいること
- IT企業のプロジェクト原価率が95%以上であること
- 開発期間が6カ月以内といった短期プロジェクトであること
- プロジェクトマネジャが過去に似たようなシステムを開発した経験がないこと
- 受注したIT企業が下請け企業に仕事の90%以上を回していること
- 顧客の要件定義力に問題があること
これ読んで思いついた悲惨なシナリオ。ありがち。
今期の予算は厳しいし、偶然コンペに参加することになった新規顧客の案件を取りに行こう!
複数社いるし、値段勝負な点もあったので、協力会社に丸投げして、済ませよう。
今回は既存システムのリプレースだし、要件も変わらないからまかせちゃって大丈夫だよな。
え?協力会社にPMいないの?でもリプレースだし新旧比べれば良いから何とかなるよね?
ちなみに、自分の過去の経験で上記が6個該当したプロジェクトをやったことがある。結果?聞かないでね。
以前にデスマーチ診断プログラムを作ったのを思い出した。http://www.ryuzee.com/deathmarch/
僕としては、一括請負で範囲・期間保証の契約だけはしたくない。エスパーじゃないから無理です
あとさ、期間が6か月以内だとリスクが高いっていうけど、長いほうが当初の要件との乖離とか出てくるから顧客のビジネス上のリスクは高いし、メンバーのモチベーション維持できないリスクもあるんでないの?
- Scrumには基本の3つの役割と、その他の3つの登場人物がいる
- それぞれ映像制作にたとえると、スクラムマスターは監督、プロダクトオーナーは脚本家、チームは俳優/女優になる
- その他3つの登場人物として、カスタマー=プロデューサー、マネージャ=スタジオの管理者、エンドユーザー=観客、になる
※movieを映画ではなく、映像と訳しているのは、WFとAgileの比較において、以前「WFは長編映画、AgileはTV番組だ」という例えがあったからである。
« 前の記事
日記
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
情報共有