カテゴリー別アーカイブ: Event

「京都アジャイル勉強会 アジャイル1日体験ワークショップ vol.2」を開催しました

京アジャ アジャイル一日体験カバー

当日は、台風接近中という状況にもかかわらず、ほぼキャンセルなく参加して頂きました。
ご参加頂いた皆様有難うございました!

イベントページ

http://connpass.com/event/7562/

開催理由

京都アジャイル勉強会Lightで行っていた「アジャイルサムライ」読書会(第2回目)の卒業イベントを兼ねて、一日アジャイル体験イベントを行いました。

また、アジャイルもかなり経験者が増えてきているかと思うのですが、京アジャの周りではまだまだ座学やプラクティスだけという方もいるため、少しでもアジャイルの素振り経験を増やすお手伝いができればという思いもありました。

概要

makedoという子供向けなんだけど大人も本気になってしまう工作キットを使用して、「宇宙基地開発」をプロダクトにして行いました。

詳細は、またやるかと思うのでここでは省くとしてw
1年前に行った同イベントから主催者が得たフィードバックを受けて、今回工夫した点を記載します。

前回からの変更点

ユーザーストーリーの作成

経緯

前回のイベントではユーザーストーリーの作成を各チームで行いませんでした。
理由は、ユーザーストーリーをINVESTな状態に持っていくのは、非常に時間がかかるため、アジャイル初心者で、しかも限られた時間内に当日初めて聞いた宇宙基地開発のユーザーストーリーをPOの意思をくみつつ作成するのは難易度高すぎると考えて、宇宙基地開発に必要なタスクを出して下さいということにしていました。
そのため、単なる作業リストが出来てしまいPOの価値に直接紐付かなかったため、別途時間を取ってやり直すチームが出てしまいました。

Try

今回は、ユーザーストーリーは事前に主催者が作成しました。
でも、一度は経験してほしいということで、各チーム一つだけユーザーストーリーを作成してもらうことで、少しだけれどもユーザーストーリー作成の素振りをしてもらうことにしました。

気付き

各チーム同じユーザーストーリーでプロダクトを作成してもらったので、出来上がったプロダクトに各チームごとの特色が出ていた。通常のプロジェクトだと、同じユーザーストーリーで複数チームがプロダクトを作るとか贅沢すぎて出来ないと思うので、プロダクトの比較をするという良い経験ができた。

事前に、各チームごとにPOとユーザーストーリーの中身や優先順位について話し合っていたため、第一スプリントから出荷可能なプロダクトが出来ていた。

ただ自分たちで作成したユーザーストーリーから着手したチームは、プロダクトについての理解が浅い状態で作成したユーザーストーリーだったため、そこにPOの意思が見えずに苦労していた。

ユーザーストーリーの内容に、チームとして理解できるているか(なぜ必要なのかを含めて)がスプリント中に混乱が起こるか起こらないかに、かなり影響するということを経験出来たのではないかと感じました。

完了の定義(Difinition of Done)の導入

経緯

前回のイベントでは、完了の定義を設けなかったため、スプリントレビューの際にチームがプロダクトオーナー(PO)からの質問にそれなりに答えられていれば、レビューOKという流れが何となく出来てしまいました。
そのため、終了時間が差し迫った後半のスプリントに作成したプロダクトの出来がちょっと雑になってしまう傾向がありました。

Try

その反省を踏まえて、予め用意したユーザーストーリー全てに完了の定義を設定しました。
POは、スプリントレビューの際に、この完了の定義を確認することで明確に完了と判断することが出来ました。

気付き

予め完了の定義を与えられているとチームはスプリント内に検証環境(デモ用に用意されたテーブル)に作成途中のプロダクトを持って行き、完了の定義を満たしているか自分たちでチェックを始めました。

これは、前回のイベントでは無かった行動でした。
完了の定義を設定し事前にチームに共有しておくことで、チームは作成途中のプロダクトを使って常に完了の定義をクリアしているかをチェックしながらプロダクトの作成を行っていました。

実際のプロジェクト開発でも、チームの成熟度に応じた完了の定義をチームで作成&共有することで、コミットされたソースコードの品質を一定に保つことが出来るということの擬似体験が出来たのではないかと感じました。

最後に

参加者の方に、振り返りを兼ねてコメントを頂いたのですが、その中でも
* プロダクトの内容が面白かった(社内でパクらせて下さいw)
* ユーザーストーリーのボリューム感がちょうどよかった
* 時間の関係なんだけど、前半のユーザーストーリーの作成までをもう少しじっくりやりたかった
などの意見を頂きました。
2回目ということで主催者側としては、1回目の反省点をフィードバックした内容に出来たかなと。
3回目を行うなら、ユーザーストーリーのところをもう少し厚めにできる工夫を凝らしたい。

当日の風景

写真 2014-08-09 15 52 30

写真 2014-08-09 15 53 01

「DevLOVE関西×泥臭い受託開発を語り合う」で発表してきました

今回発表させていただいたのには理由がありました。

訳あって7年勤めた会社を退職しました。
その際一緒に仕事をしていた人への引き継ぎを行っていたのですが、丁度DevLOVE関西で「泥臭い受託開発を語り合う」勉強会が開催されるということで、ここに引き継ぐ人に参加してもらって、ここで引き継ぎを完了させようと勝手にたくらんでいました。

ところが主催者側の都合で開催時期が2ヶ月伸びてしまったのと、引き継ぐ予定の人に開催日を伝えるのを忘れたため、結局ただの発表となってしまったという経緯がありました。無念。

すごくコンテキストを絞った発表だったため、お役に立てるかかなり心配だったのですが終わった後素敵なフィードバックを複数頂きました。
参加された皆様、資料をご覧になってフィードバックをくれた皆様有難うございます。

7年間勤めた会社で得た自分なりの経験を引き継ぐ人に少しでも伝わればという思いで作成した資料だったのですが、同じ境遇の方に何かを感じ取って頂けたため無駄にはならなかったというだけでもすごく嬉しい日となりました。
また、退職した実感が湧いていなかったため自分にとっても卒業式的なイベントとなり、お陰様で無事卒業出来ました。

普段は京都アジャイル勉強会で素振りを行っています。発表資料の内容やアジャイルに興味をお持ちの方は是非お立ち寄り下さい。

京都アジャイル勉強会#6

さて、6/22に京都アジャイル勉強会第6回を行いました。

 

期待すること

アジャイラーとして出荷可能になる為に必要な、ストーリの完了の定義を考えるというもの。
そもそもアジャイラーとして何が出来れば、どこにいってもアジャイルラーとして振る舞えるのかというところを、京都アジャイル勉強会なりに定義して、それを完了する為に必要となる知識・経験・気づきを自分たちで考えたワークショップを行うことで身につけようという試み。

実践した内容

参加者18名で3チームに分けて行なった。
  • チームごとにストーリーを選択し、それについてのワークショップを考える。
  • ワークショップが出来たチームが、他のチームにワークショップを行ってもらう
  • ワークショップを行ったチームが、作ったチームの想定した知識・経験・気づきを得られたか確認する
  • ワークショップを作ったチームは、KPTを行い更なるブラッシュアップを行う。
といった感じ。
開催前はいつもおそるおそるだけど、今回不安に思っていたことは、
  • 1つもワークショプが出来ないのではないか?
  • 作って、やってみてもかなりシラケてしまうのではないか?
  • アジャイルにどっぷり染まっている人から初参加の方まで色々いる中で、皆が何かを持ち帰られるのだろうか?

 

この辺りが、結構不安だった。

一度失敗しているので、同じ過ちは踏みたくないなと。

結果

実際のところ自分のチームしか分からなかったけれど、回りの反応を伺ってもかなり面白かった様子。

ワークショプが完成してもしなくても、自分たちがアジャイラーとして出荷可能となる為に選んだストーリーの知識・経験・気づきを得られるワークショップを考えるということは、それだけそのストーリーについて考え・知る必要があり、ワークショップを考えるワークショップを行うことで実は既に、知識・経験・気づきが得られているのではないかと感じた。(メタワークショップになっていた感じ)

3チーム中2チームがワークショップが出来たので、実際にやってみたり、やってもらったりしたけれどかなり楽しめたし、気づきが得られた。

 

まとめ

ワークショップの完成度としては、まだまだ低いためワークショップをやった人たちより、ワークショップを考えた人たちの方が気づきをより多く得られたのではないかと思う。
あと、最初から完成したワークショップを提供するのではなくて、早い段階でいったん他のチームにやってもらい反応をみてブラッシュアップする方が時間内により完成度の高いワークショップが出来ると思った(この辺りはリーンスタートアップと似ていると思う)。

今回考えたワークショプもブラッシュアップして行きつつ、ワークショップを考えるワークショップは引続き行って行きたい。

次回は、第7回

隔週で行っている甲斐あってか大分リズムが感じられるようになってきた。

出荷可能な製品が出来上がっている感じがして面白い!

京都アジャイル勉強会#3

5/11に京都アジャイル勉強会を開催しました。

京都アジャイル勉強会#3

 

今回は、完全に反省。

正直開催前から一抹の不安はあったのですが、それを解消できないまま開催してしまいました。

反省点。

 

  1. 京都アジャイル勉強会の運営者側の仕事を参加者にもしてもらっている感が否めない
  2. ぱらぱらと集まるため、時間通りに参加される初参加の方が時間を持て余す
  3. アジャイル知っている前提で進むことに疑問を抱いていない

 


主催者MTGで@Posauneともう少し当日の絵の擦り合わせが出来ていれば良かったのですが、それができないままだったことに深く反省。

勉強会の前提として、アジャイルサムライに書かれてあるプラクティス(主にインセプションデッキ)をもう一度やり直そうというのが大きくあり、アジャイルサムライ読書会のときにはインセプションデッキの内容を続きで行えなかったので今回はインセプションデッキ〜実際に物をつくるところまでを通しでやってみようという続き物に途中から変わっていきました。

 

それはそれで問題ないのだけれど、そうなった段階で読書会から参加して頂いているほぼ運営メンバーと呼べる人たちだけを参加者として行えば良かった。

 

一般参加を募っているいじょう今回の進め方は完全に身内話に巻き込んでしまった感が否めませんでした。

 

インセプションデッキしているのに、バスに乗っていない人が多数いるみたいな。

 

既に第4回の募集を行っているので、今回の反省を生かしつつ全員バスに乗って出発できる勉強会にしていきたいと思います。

 

AgileJapan 岸良さんのWorkを試して

岸良さんがAgile Japan 2012で行ったWorkshopを社内で行ってみました。

 

普段一緒に開発しているチームに岸良さんのプレゼン資料を元に

全体最適と部分最適の話、マルチタスクとシングルタスクの話を行いました。

 

全体最適と部分最適

全体最適と部分最適の話については、一同納得といった感じでした。

常駐派遣でのソフトウェア開発の場合、Command&Controlになりがちで、各人がリスクを背負いたくないというのもあって、プロジェクトマネジメントをしているリーダーに許可や確認を行い後は、各自が自分のベストを尽くすというスタイルが多いように思う(実際それを求められていた)。

 

プロジェクトがうまく進んでいるときはそれでも問題ないが、プロジェクトがうまく行かなくなったとたんになぜ遅れているのかをマネジメントを行っている人たちが考え、その結果を現場の人に説明して改善するという一方通行的な改善が行われる場合が多い気がする。

 

その場合、人に着目せずにやり方やプロセスが間違っているという改善案が多く(そういう時もあるんだけれど)、アプローチにしても全体の速度を一気にあげるような改善案を試している。

管理社:「改善案を考えました!これできましょう!」

開発者:「・・・」

 

実際は、開発者同士がコミュニケーションをとることで現場が考える問題点を洗い出してマネージャーは開発者が考えた改善案を実施するために必要な権限を与えたり環境を整えるだけで開発速度は増すのではないかと思う。

 

その手段として、チームで協力し開発速度が遅くなりがちな人や工程を皆でカバーすることで改善を行う。

こうすることで、チームがどんどん改善を行うためのコミュニケーションをとり始め、自分たちで開発しているというやる気が起こり、開発が面白くなっていくと思う。

遅れている原因がなんであれ、マネジメント層だけで考えるのは避けたい。

 

 

マルチタスクとシングルタスク

次にマルチタスクとシングルタスクについての話

ワークショップ

「1〜の数字」、「A〜 のアルファベット」と「○、△、◇の記号」を30ぐらい?縦に記載して行きマルチタスクとシングルタスクを実践するというワークを行いました。

 

最初に自分がどれくらいで終わるかの見積もりを行ってもらいました。

1回目は、数字→アルファベット→記号→数字・・・と記載する。

2回目は、数字30個→アルファベット30個→記号30個と記載する。

 

結果

1回目は、全員見積もりをかなりオーバー(終わらなさすぎて途中で打ち切った)しました。
そして2回目。全員ほぼ見積もりに近い時間で終わった。

考察

見積もりした時は、前提条件として一つのタスクに”集中”出来た場合これくらいで終わりますという見積もりに成っているということ。

実際の開発ではそんなことはあり得なくて、何らかのコミュニケーションを取ったり、確認作業が発生するためタイプしていた時間は見積もりに近い値かもしれないが、作業開始から完了までの時間は見積もり時間をオーバーする。

結果

マルチタスクとシングルタスクをお手軽に認識するためにはとてもよいワークショップだと思う。
これを気に見積もりについて皆で話し合うときのコンテキストの一つをチームで揃えられました。

XP祭り2012~技術指向で行こう!~ に参加

 

#xpfes12

TDDとスクラムの事例がお目当てでXP祭り関西に参加してきました。

 

アジャイル開発における計画と管理〜アジャイルのプロジェクトマネジメント〜

システムインテグレーター 梅田弘之氏

概要は、アジャイルでもプロジェクトマネジメントは必要だという話。
ご自身が取締役社長ということで経営者からみてアジャイル開発がどう見えているのかという内容でした。

ウォーターフォールを敵視するな

基幹業務などでは、ステークホルダも多く色々な調整を行ったりしていれば、要件定義に3ヶ月かかってしまうこともあるわけで、その辺りを理解する必要がある

たしかに、基幹業務などでは億単位の金額が扱われたり関係する部署がとても多かったりでヒヤリングするのにも結構時間がかかると思う。実際、中には色々な人がいて(そもそも利用者が物理的に遠かったり)すんなりヒヤリングできるわけでもなかったりするし。

ただ、要求を決めるためにかかった3ヶ月がどういった内容かにもよるかなとも思いました。

一度に要求を決めようとすると要求を決める関係者それぞれが少しずつ返信が遅くなるだけで結構な待ち時間ができて、それが積もるとそれなりの時間になり結果的に要求の決定が遅れるという事態の原因の一つになるのかなと。

ウォーターフォールの場合、フェーズ毎に作業が進んでいくため後工程になればなるほど手戻りの発生する箇所が増える。
それを意識するあまり、仕様の決定が遅れかつ、納期がまだまだ先なため決めきれないというのがあると思う。
そこに、タイムボックスを適用することで要求を決める人も全ての要求を要求定義のフェーズで決めきらないと駄目だと思っていたのが、この機能についてだけ決めてくださいに変わるので、要求分析やヒヤリング対象が絞られて要求が決めやすいのではないかと思う。

 

ただ、適用が難しいかなと感じるのは、実際のリリースはずいぶん先なのに1イテレーション(スプリント)の終わりを本当のリリースと同じように扱えるかというところ。
要求を決める人が今回はスクラムを行うと同意している場合は協力的になってもらえる(もらえないと困る)と思うが、要求を決める人が加えられずにスクラムを行う際のリスクはこのタイムボックス内に要求を確定してもらえないというところかなと思う(アンチパターンだけど)。

ウォーターフォールは、売れる物を作るのが苦手

梅田さんのところでは、パッケージ製品の開発が主な開発でその際パッケージ作成とそのパッケージをお客さんに導入する開発は別と仰っていた。

パッケージ作成は、内部の開発だからハンドリングがすべて会社でできるためアジャイル開発向き
ウォーターフォールは売れる物を作るのが苦手

たしかに自社製品を作るのに、ウォーターフォールでは作れない。

お客さん向けの仕事にどうアジャイルを取り入れるかが最大の課題でありチャレンジ
アジャイルでやっても作るものによって犠牲にすることが異なる。
プロダクト開発は、スコープを犠牲にできる。
請負開発は、コストを犠牲にするしかない

請負開発とプロダクト開発で犠牲にするものの違いは全くその通りだと思う。

この違いは、

プロダクト開発はスコープを犠牲に出来るけれど、犠牲にしたスコープによって製品が売れるかどうかのリスクを自社で追う必要がある。

逆に請負開発はコストを犠牲にするけれど製品が売れるかどうかへのリスクは自社で追う必要はない(発注側で仕様を決めてしまうから。作った物は売れてほしいけれど)。

どのリスクをどちらが負うかによって、犠牲に出来る物と出来ない物が変わってくる。

 

請負の際にいつも確認するのは
「納期は最大どこまでのばせますか?」

ここを聞いておかないと仕様変更・追加に対してコストをかけたとしても残業や休出、過剰なメンバ追加しかコストをかける時間がとれなくなってしまうため、プロジェクトが遅れ始めるとひどい生活が始まってしまう。
請負開発では、コストを犠牲にするしかないけど生活は犠牲にしたくないというのを、死守できるかどうかは納期が最大どこまで延ばせるかにかかっていると思う。ここで見積もりも合わず、納期も絶対延ばせない案件だと受けないか最悪工数ベースの契約に持って行く場合が多い。

TDDサイクルを加速する技術たち

@irof氏

irofさんのセッションに参加するのは初めてで今回一番楽しみにしていた。
最初にしっかり「京都アジャイル勉強会」の告知もして頂いた。ありがとうございます。

以前アジャイルサムライ読書会in京都の懇親会で、テスト版97のこと(あのときはこっちが本編だったな)を教えて頂いてそれ以来自分の中でのTDDへの最初の壁が取り払われた。それから、テストと並走してプログラミングする毎日を送ってます。

前後のテーブルと会話する形式だったので、メモしきれなかったのだけれど残ったポイントは

変化しつづけるものは変化に強い

テストと合わせてjenkinsを使っているとこの言葉は自分的には納得。実際救われたことは何度もある。

思った通りにうごくコードをかく技術がTDD

通常は、書いた通りに動く。だけど、思った通りにうごくを実現するためには、テストが必要。

リファクタリングの終わりどころは次のRedが一つになったら終わり

仮に一つ修正加えたらRedになる箇所が、複数ある場合はまだリファクタリングできるとのこと。

どれも禅問答のような言葉だけど、話を聞いているとストンときます。

きっと自分で気づかないと意味がないから自分で気づきやすいように考えてもらって結果を共有して、自分の意見を述べるというセッションにしたのかなと思った。

例え悪いかもしれないけれど、倒幕するときにも草の根運動のようにこのような議論の場が持たれて最後は大きな仕事に結びついたように感じた。

なので、チームへの啓蒙の第一歩は、自分がテストを書き続けて周りにその良さを広めることでしか実現できない(もしくはirofさんのセッションを受ける!?)と思うので、やっぱり自分が書き続けて周りにTDDの良さを感染させるしかないのかなと思いました。

大規模なゲーム開発をスクラムで

田口 昌宏氏

大規模なゲーム開発で実際にスクラムを取り入た際の事例紹介でした。

面白さを見積もり時に組み込むことは難しい

スクラムに取り組んだ際の動機だったと思う。

午前の梅田さんのお話ともリンクするのだけれど、試行錯誤する開発についてはスクラムはとても適用しやすい。

1スプリント2週間で隔週水曜日にスプリントプランニング
火曜日にレビュー、お菓子付きショーケース

懇親会に参加できなかったので、聞けなかったのだけど水曜日にスプリントプランニングを設定したのはなぜか聞きたかった。

田口さんのお話を聞いていて一貫して思ったのが、まずやってみる。
それで問題が出たら、その問題を解決するために対処する。それがスクラムのツールでカバーできるところはツールを導入し、その導入もただ入れてみるのではなく実際にチームに適用するように随所に工夫が施されていた。
(コミュニケーションに問題出たので朝会導入。ただし2チームで朝会の開始時間をずらして実施。それぞれの朝会の内容を共有できるようにしたなど)
スライドの写真を見ていて思ったのは、参加している皆が本当に楽しそうにやっているところ。

朝会やタスクボードでかしこまったミーティングがなくなった。

確かに、かしこまったミーティングがあるところは日常的にコミュニケーションに問題がある。
プロジェクトが遅延してくるとミーティング多くなるのはこのせいかなと感じる。日頃からコミュニケーションがとれていれば、遅延してきたからといってミーティングを増やす必要はないはず。

3〜4時間のプランニングで制度の高いものが出来る

これは、プランニングポーカーしているととてもよく思う。自分はそこででた意見を実際に見積もりや開発時のチェック項目としてあげたりしている。
京都アジャイル勉強会でもプランニングポーカーをしていると、自分が考えていなかった意見がぽんぽん出てくるのですごく参考になる。

10名超えると朝会で話す内容が薄くなったので、チームを分割。スクラムマスタも2名に導入
壁は情報発信継続力がすごいし、壁は解像度が高い
ショーケース時の品質は、落ちたらアウトぐらいにしている。全テストを通らないと駄目とかではない

などなど。

参考になることばかりだし、すぐに自分も取りいれて自社ではどうなったのかを共有したいと思うことばかりでした。

もっと色々聞きたかったのだけれど、懇親会には参加できなかったのでまたどこかでぜひお話を聞きたい。

 

まとめ

スクラム開発を取り入れている人の話を聞いていると、「巻き込み力」とでもいうのか回りの人をその気にさせるのがとてもうまいなと感じた。

スクラムに限らずだけど、知→無知への提案はなぜか上→下のような関係になりやすい気がする。普段からの関係性がとても良好なので提案しても上→下の関係にならず対等に論じあえるのだと思う。

日頃から傾聴することが大事だとつくづく感じた。

京都アジャイル勉強会#1

京都アジャイル勉強会について

アジャイルサムライ読書会in京都が終わり、引続きアジャイル導入を考える方達(自分も含め)のための勉強会を京都で行うということで、そのまま「京都アジャイル勉強会」という名前で、人も内容もほぼそのままに始まりました第一回。

 

アジャイルサムライは読んで終わりでなく、実践して経験値を積むときの指南書となる本だと思うので「京都アジャイル勉強会」では、アジャイルサムライにでてくる数々の手法を本番前に何度も経験し失敗し、本当に身体で覚えるまでやって本番は楽に乗り切ろうという試みのもと行っています。

 

もちろん既に本番をやっているけれど、経験値を積みたいという方も大歓迎(実際に数名参加されています)。

 

第一回となる今回は、「色々試そうプランニングポーカー」と題してプランニングポーカーで色んなことを試して、試した結果を皆で考え共有しようということで行われました。

実践

参加者が、11名だったため、5名、6名の2チームに分かれて各藩で、プランニングポーカーの見積もり対象となるシステムを決めてそのユースケース出しから入りました。

私の藩は、「オンライン上の年賀状作成ソフト」です。

 

そこから、10こ程度のユースケースを考えて、そのユースケースに対して見積もりを行いました。

 

最初に手持ちのカードは、1、3、5、?の4枚。

3を基準値として「仕様が大きくぶれにくく規模が大きくも小さくもないユースケースを3としました」。

その後、それ以外のユースケースの見積もりを皆で行いました。

 

4枚で見積もりした内容を今度は、1、2、3、5、8、?の6枚にして行い枚数が増えることによって、結果や思考がどう変わるのかを試そうという試みでした。

 

実際は、1回目の見積もりの内容が本当にシステムを作るかのように議論が熱くなり2回目の見積もりは駆け足となってしまったため詳細に比べることが出来なかったのですが、1回目で見積もりできたユースケースに対してのみ2回目の見積もりを行ったとところ面白い結果になりました。

 

1回目で同じ3を出していた人同士が、2回目では、2、5になる。

1人は、2が入ったことで1よりは大きいけど3よりは小さいから3を出していたのが、2が出来たことで2に変わる

もう1人は、8が入ったことにより3よりは大きいけど5よりは小さいが5をだすとそれ以上大きい値がなくなるため3としていたけれど、8が入ったことにより5に変わる。

ということを考えていました。

 

だしたカードが同じだからといって同じ判断でそのカードを選んだとは限らないということが分かる。
ということは、見積もり時のユースケースの粒度によってはカードの枚数を6枚程度で行いあえて意見が割れるようにしてみることで、チーム内の意見を引き出し安いと感じた。

 

あと面白かったのは、説明しているうちに意見が変わってしまうことが多々あったこと。

 

考察

実際の見積もりだと見積もりが合わない場合に、各機能についてどうしてこんなにかかるのかということを延々と話し合い結果数人日とかひどいときには数時間の削減を迫られたりするのだけれど、実際数ヶ月前に数人日や数時間の想定をしたところでいざ作業に着手したとたんに、あれが必要これが必要とかであっという間に数人日オーバーになっていく。

 

相対見積もりだと議論になる箇所が、見積もり工数ではなく仕様や前提条件になるため不毛な工数削減に合いにくくそもそも、詳細ではないくせに詳細な話になることが防げるということを改めて実感した。

 

また、今回ユースケースについてはあまり時間をかけずに作成したため、内容についての前提条件が確定していなかったこともあり、実際にカードを出し合ってからの議論が長くなった。

見積もりを行う前に、ユースケースの前提条件や理解度を合わせておいた方が工数の決まっている本番では良いと感じた。

 

余談

CSMの研修でプランニングポーカーを行った際も、仕様について15分ほど話し合う時間がさかれたと思う。

ただ、その時面白かったのは出された仕様をチームで検討する時間を与えるので、仕事を受けるかどうか答えてくれというもので、検討後チームの代表が前に言って講師に仕様を受けるかどうかを聞かれた際にチームの代表の仕様についての質問はいっさい受けずに、とにかくYesと言わせようとしていたこと。
で、あまりの講師の圧力になし崩し的に大半がYesと答えてしまっていた。

ここでは、絶対に圧力に屈しては駄目で即席の見積もりや、安請け合いは結局交渉の条件に使われてしまうという教訓だったと思う。詳しくは「リスバーガー」で検索すると分かる。

 

次回も引続き「色々試そうプランニングポーカー」をやります。

Agile Japan 2012に参加! #2

Agile Japan 2012に参加! #1に引続き午後のセッション2

 

「アジャイルをも活用した新しいビジネスモデル」に参加

受託開発をやっている身としては、

発表されたときからすごく気になっていたビジネスモデル。

 

永和システムマネジメントさんの「価値創造契約」について

詳細はこちら

http://www.esm.co.jp/new-agile-contracts-service.html

 

気になっていたポイントは、

お客様にどうメリットとして受け取ってもらうのだろうか?

というところ。

 

チケットという単位でサービスを作ってもらうことで、

今までよりお客様にとって何が良いのか?

 

聞いた内容や質問した内容をまとめると

  • お客様には2つのやり方を提案して、どちらがよいか選んでもらったり、向いていると考えた場合は提案している
  • エレベータピッチを作成して、それを元に開発途中の要求変更と照らし合わせを行っている
  • 価値創造契約を行ったお客様の評価は良い
  • 開発側の課題としては、良さをお客様に伝えるのが難しい
  • 価値創造契約を行うお客様と、WFのお客様は大きく異なる

 

参加者から「チケットという概念がお客様にとって理解しがたいのでは?」という質問があり、

ピボータルトラッカーにやりたことを追加していってもらい1チケットの分量や内容を状況に応じてお客様とすりあわせている。

チケットプランは、目安であって当てはまらない場合は柔軟に対応している。

とのことだった。

 

肝心の気になったポイントの明確な回答は得られなかったけれど、お客様の評価が良いということが何よりうまく言っている証拠だと感じた。

 

自分が実際に提案するなら、信頼貯金がたまっているお客様へは提案して受け入れてもらえそうな気がするし、気に入ってもらえそうだと思う。

また、早いサイクルで動く物が手に入りかつ、着手前なら優先度も変更できるわけだから一度価値創造契約を体験したお客様は元の受託契約には戻らないのではとも思った。

 

難関は、信頼貯金がないor新規のお客様へどう説明するか。

これは、Agile開発をお客様に提案することと同意かな。

 

ソニックガーデンさんの「ソフトウェアパートナーシップモデル」について

詳細はこちら

http://kuranuki.sonicgarden.jp/2011/09/post-50.html

 

聞きながらなので、かなり端折ってしまうけれど

  • 常駐はしない(のぞまれることもある)
  • 瑕疵担保責任は負わない
  • 月額定額でおこなっている
  • お客様がサービスを確認するためのテスト環境は、Herokuを使っている
  • 見積もりをしていないので、開発途中の機能の抜き差しは開発に何も影響しない

 

「価値創造契約」のチケットという概念について聞かれて、

チケット性を導入してしまうと、1チケットでどこまでできるという見積もりが発生してしまうから取り入れなかったと言われていた。

 

開発にあたるメンバーには、かなりのスキルが必要とされるため人材育成が大変なのでは?という質問に対しては、

徒弟制で行っている。

また、格安で研修生が行うことを選ぶことも可能で、その品質は師匠が担保する。

新人はそれで育って行き、雑用の用なことはさせない。

中途を採用する場合でも、週1ぐらいで半年ぐらいの面談を行って見極める。

とのこと。

 

聞いててため息が出るくらい、徹底している。

ここまで徹底するためには、新しい会社でなくては駄目なのも納得。

ただ、あこがれても既存の会社をここまで徹底したものに仕上げる労力を費やすぐらいなら(不可能に近い)転職転社した方が、本当にやりたい事をすぐ出来るのだろうなと感じた。

 

全体を聞き終わって感じたことは、

永和システムマネジメントさんの「価値創造契約」は、既存の会社でAgile開発に適応した契約形態を考えた場合に生み出された契約形態だと思った。現実→理想という思考かな。

 

ソニックガーデンさんの「ソフトウェアパートナーシップモデル」は、理想の契約形態を想像した上で、現実の受託開発に落とし込んだ結果生み出された契約形態だと思った。理想→現実という思考かな。

 

今の職場がどちらに近いかで考えると「価値創造契約」に近い契約形態を生み出さないと顧客を巻き込んでのAgile開発は難しい。

もしくは、 カンパニー制などであれば、完全に仮想プロダクトオーナーをたてるというのもありな気がする。

Agile Japan 2012に参加! #1

今まで全く予定があわず、行けなかったAgile Japan。今年は、参加してきました!

 

まずは、全体の感想。

メイン会場に入って思ったのは、思った以上にスーツが多かったこと。

毎年そうなのか分からないけどペア割り、上司や同僚を誘おうということで、会社関係の方と出席されている方が多かったんだろうか。とても素晴らしいことだと思う。

 

基調講演から出席できたので、その内容も書きたいのだけれどそちらはまだ、整理しきれていないのでまずは午後のセッションからまとめ。

 

・アジャイルな開発からアジャイルな組織へ

@ryuzeeさんのセッション。

http://www.slideshare.net/Ryuzee/agileagile-aj21-b2 

グラフを見せながらの説明だったのだけれど

WFは、開発が後半に集中するため後半になるほどリスクがあがる

Agile は、優先順位の高いものから着手し開発するため前半にリスクがある

とのこと。で思ったのが、

WFは、製品開発の工程全体のつじつまが合わなくなるリスクを担保したいから各フェーズごとにうまくいっているよねということを確認&決定しながら進めようとしているのかなと。

でも、実際は動く物を作らずに各フェーズでの決定が正しいことを証明出来る訳がなく、かつ、色んなステークホルダーに仕様の確認作業などが発生し、だんだん作業が遅れてくる。でもまだ動くものはいっさい出来ていない。

こんな状況で開発フェーズに入った頃には時間もコストも予定より膨らんでいることになる。

本来の意味での設計(コーディング)作業が最も品質と直結しているはずなのに、そこに時間をかけることが出来ない。

ここに無理が生じているのかなと。

 

Agileは、前半に要求の高いフィーチャを持ってくることで、そもそももっとも必要な要求が作られない/遅れるというリスクを早い段階で解消できる。

成果物に対する作った結果いらないや頼んでいないというリスクへのヘッジも出来る。

また、早い段階で実際に動くものが手に入るので要求の高い機能の品質を犠牲にする必要がない。

さらに、見積った結果今後のスケジュールがどう進むかがわかるため再見積もりやリスケなどの手が早くにうてる。お客さんとのネゴシエーションも早く行えるし、ネゴシエーションのための材料も過去のスプリント(イテレーション)から見積もれるので、説得力もあり交渉の余地も生まれる。

ということは、Agileを初めてやったチームで、ベロシティがうまくあがらなくて心配になるというのは実はAgileでやっている証拠だったりするのだと思う。

これを知っているのと、知らないのとでは途中のチームメンバーの不安やモティベーションの維持が全然違うのではと感じた。

 

次に継続的デリバリについて

flickrのサイトに開発のデプロイ状況がかかれていて見せて頂いたけどかなりすごい。

1週間に24人で384回変更して68回デプロイした。

みたいなのが書かれてあった。68回デプロイってデバッグなら分かるけどここでは本番化だからな。すごい。

障害時のリリースが通常より早いのなら、普段からできるはず。

製品そのものをAgileにたもつ。

というのも言っておられた。

TDD, リファクタリング、CIだったりかな。

問題は、これを、お客さんにどう説明するか。

明日食べる物がないのに、数ヶ月先の食べる物の心配はなかなか出来る人はいない。

プロジェクトの開始段階では、明日食べる物はあったわけだから、最初から取り入れる方が受け入れやすいはずなのだけど、プロジェクト初期の1時間もリリース前の1時間も同じ1時間のはずなんだけどなぜか重要度が異なるかのように扱われる。

だからこそタイムボックスをきって、学生症候群もパーキンソンの法則(第1法則)も起こらないようにする必要があると感じた。

 

で言うだけでは意味がないので今後のアプローチだけど、

受託系の会社の場合、当然かもしれないけれど稼働率99%という目標。

実際これのせいでかなり苦労していて、

プロジェクトとプロジェクトの合間はそんなにうまく埋まらなかったり必要としている人材がプロジェクトが始まったときに空いていなかったりするけど、数人日を惜しんで他の人材を加えたり先行着手したりということをやっている。

でも、その合間にScrumの勉強会、WorkShopを開いて皆が本気だしたらこんなもんじゃないよねということを思い出してもらおうと思う。

稼働率はいままでより良くないのに利益率はさがってないということが起きて正のスパイラルが証明できると思う。

チームを全体最適化させると自己組織化する

頑張って共有し合えるチームを作ろうと思う。

残りは後日。