87
「正しいアジャイル」 でなくてもいい Agile Japan2013 四国・愛媛サテライト 2013/05/25 13526日日曜日

「正しいアジャイル」でなくてもいい

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 「正しいアジャイル」でなくてもいい

「正しいアジャイル」でなくてもいい

Agile Japan2013 四国・愛媛サテライト

2013/05/25

13年5月26日日曜日

Page 2: 「正しいアジャイル」でなくてもいい

荻野浩史 おぎ    の     ひろ     し

認定スクラムマスター認定スクラムプロダクトオーナー

13年5月26日日曜日

Page 3: 「正しいアジャイル」でなくてもいい

http://d.hatena.ne.jp/ogin_s57/13年5月26日日曜日

Page 4: 「正しいアジャイル」でなくてもいい

アジャイルプロセス協議会 四国支部13年5月26日日曜日

Page 5: 「正しいアジャイル」でなくてもいい

アジェンダ正しいアジャイル?

アジャイル開発事例のご紹介

まとめ

13年5月26日日曜日

Page 6: 「正しいアジャイル」でなくてもいい

アジェンダ正しいアジャイル?

アジャイル開発事例のご紹介

まとめ

13年5月26日日曜日

Page 7: 「正しいアジャイル」でなくてもいい

「正しいアジャイル」と聞いてどんなことを思い浮かべますか?

13年5月26日日曜日

Page 8: 「正しいアジャイル」でなくてもいい

スプリントが2~4週間で、最後にふりかえりを実施

かんばんで見える化

毎日朝会を実施(デイリースクラム)

ペアプロ

テストは全て自動化されていて継続的にCI環境でビルドされる

正しいアジャイル?

::

13年5月26日日曜日

Page 9: 「正しいアジャイル」でなくてもいい

スプリント

13年5月26日日曜日

Page 10: 「正しいアジャイル」でなくてもいい

TODO In Progress DONE

かんばん

13年5月26日日曜日

Page 11: 「正しいアジャイル」でなくてもいい

朝会(デイリースクラム)

1.昨日やったこと2.今日やること3.困っていること

毎朝15分

13年5月26日日曜日

Page 12: 「正しいアジャイル」でなくてもいい

ペアプロ

ドライバー

ナビゲーター

(なるほど。そういう風に書けばいいんだな。)

ココはStrategyパターンで実装して・・・

13年5月26日日曜日

Page 13: 「正しいアジャイル」でなくてもいい

テスト自動化とCI環境

開発者SCM

CI環境

コミット コミットを検知してCI環境にてビルド

13年5月26日日曜日

Page 14: 「正しいアジャイル」でなくてもいい

スプリントが2~4週間で、最後にふりかえりを実施

かんばんで見える化

毎日朝会を実施(デイリースクラム)

ペアプロ

テストは全て自動化されていて継続的にCI環境でビルドされる

正しいアジャイル?

::

問1:これらを実践しないとアジャイルじゃない?

13年5月26日日曜日

Page 15: 「正しいアジャイル」でなくてもいい

スプリントが2~4週間で、最後にふりかえりを実施

かんばんで見える化

毎日朝会を実施(デイリースクラム)

ペアプロ

テストは全て自動化されていて継続的にCI環境でビルドされる

正しいアジャイル?

::

問2:これらを実践すればうまくいく?

13年5月26日日曜日

Page 16: 「正しいアジャイル」でなくてもいい

後ほどこれらの問いにお答えします。

13年5月26日日曜日

Page 17: 「正しいアジャイル」でなくてもいい

アジェンダ正しいアジャイル?

アジャイル開発事例のご紹介

まとめ

13年5月26日日曜日

Page 18: 「正しいアジャイル」でなくてもいい

こんなシステム開発オンラインで大容量ファイルをやり取りするSaaSの開発

既存システムのリプレイス期間:6ヶ月

13年5月26日日曜日

Page 19: 「正しいアジャイル」でなくてもいい

�A�&�#B�&"5'*:%���$��

�&!./37�

A�&� B�&�./37�

���

+)://,9<�

--------- ---------

--------- ---------

� A�&�� �>B�&?%��� 5'*:%(26;=4�� ./37�#B�&5'*:����8=:�� B�&�./37�#5'*:%1+<;=4�� ./37�#A�&"5'*:� 8=:�

SSL

(-0/���

13年5月26日日曜日

Page 20: 「正しいアジャイル」でなくてもいい

こんなチーム人々(合計:6人)

プロダクトオーナー(顧客):1人

10年戦士:2人

5年戦士:3人

アジャイル開発経験者:0人

13年5月26日日曜日

Page 21: 「正しいアジャイル」でなくてもいい

こんなチームとりあえず「開発~テスト」を繰り返せばアジャイルって言えるんだよね?

13年5月26日日曜日

Page 22: 「正しいアジャイル」でなくてもいい

こんなチーム

アジャイル偏差値:低

とりあえず「開発~テスト」を繰り返せばアジャイルって言えるんだよね?

13年5月26日日曜日

Page 23: 「正しいアジャイル」でなくてもいい

プロジェクトスタ~ト

13年5月26日日曜日

Page 24: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 25: 「正しいアジャイル」でなくてもいい

0~1ヶ月

13年5月26日日曜日

Page 26: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

▼プロセス考察

メンバーが今まで実践してきた様々な開発手法についてに議論し、どんなプロセスでシステムを構築してゆくのが自分たちにとって一番良いのかをみんなで話し合った

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 27: 「正しいアジャイル」でなくてもいい

とにかくみんなで話し合いを重ねました

13年5月26日日曜日

Page 28: 「正しいアジャイル」でなくてもいい

そこで決定した2つのこと

13年5月26日日曜日

Page 29: 「正しいアジャイル」でなくてもいい

(1)テストファースト

13年5月26日日曜日

Page 30: 「正しいアジャイル」でなくてもいい

仕様策定チーム

テスト仕様書

SCM開発部隊

コミット

各々担当の機能を実装&テスト

(1)テストファースト

テスト仕様書を先に作成し、それを元に開発する

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 31: 「正しいアジャイル」でなくてもいい

(2)先行開発チーム

13年5月26日日曜日

Page 32: 「正しいアジャイル」でなくてもいい

必ずしも解決することが目的ではなくて、早期に取り組む事が目的だった。

暗号化

(2)先行開発チーム

ベースラインアーキテクチャの策定技術的難易度の高い問題に早期に取り組む

顧客

10年戦士

5年戦士

?ウィルススキャン

? 認証・認可?

技術的難易度の高い問題に取り組む

ベースラインアーキテクチャの策定先行開発チーム

13年5月26日日曜日

Page 33: 「正しいアジャイル」でなくてもいい

1~3ヶ月

13年5月26日日曜日

Page 34: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

▼先行開発

ベースラインアーキテクチャの策定やコア機能を先行で開発。何度となくハマったが、難易度の高い部分に取り組んだことによって早期に多くことを学習できた。

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 35: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

▼既存システム調査

既存システム要件/機能を分析し、随時「仕様策定チーム」と連携。テスト仕様書に積極的にフィードバックし、仕様書の精度を上げていった。

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 36: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

▼テスト仕様書作成(仕様策定)

コア機能に関するテスト仕様書を作成。どの程度の情報量をテスト仕様書に載せれば開発が可能なのか?を推し量る素振り(試行)の意味も含んでいた。

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 37: 「正しいアジャイル」でなくてもいい

仕様策定チーム

テスト仕様書の作成(システム仕様の策定)

開発部隊

「もっと××な情報を仕様書に盛り込んでください」というフィードバック

フィードバック顧客

10年戦士

5年戦士

先行開発チーム

「既存システムには△△な機能があります」「その場合、既存システムでは○○のように動作します」というフィードバック

既存システム

13年5月26日日曜日

Page 38: 「正しいアジャイル」でなくてもいい

チームは失敗を繰り返しながら学習し、改善していった➡経験を重ねるということが大事

13年5月26日日曜日

Page 39: 「正しいアジャイル」でなくてもいい

3~6ヶ月

13年5月26日日曜日

Page 40: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

▼開発&テスト

仕様策定チームの作成したテスト仕様書を元に開発&テストを実施。プロダクトに集中。。。

顧客

10年戦士

5年戦士

13年5月26日日曜日

Page 41: 「正しいアジャイル」でなくてもいい

スケジュール

先行開発チーム

仕様策定チーム

開発チーム

1ヶ月 2ヶ月 3ヶ月 4ヶ月 5ヶ月 6ヶ月

顧客

10年戦士

5年戦士

▼テスト仕様書作成(仕様策定)

テスト仕様書を作成する。既存機能を取り込むか否かや新規機能を盛り込むか否かは全てココで管理。以前と同様に、絶えずフィードバックを受けながら仕様書を作成していった。

13年5月26日日曜日

Page 42: 「正しいアジャイル」でなくてもいい

こうやってプロジェクトは無事遂行されました

13年5月26日日曜日

Page 43: 「正しいアジャイル」でなくてもいい

常に動くものが手元にあった(動くソフトウェア)

誰でもコードを修正出来る状態だった(コードの共同所有)

必要性を感じたタイミングですぐに話し合いを始め、必要性を感じたタイミングで資料を作成していた(Just In Time)

利害関係者が顧客1人だけだったため、素早く決定/方向転換出来た(オンサイト顧客)

チームが能動的にプロジェクト/プロダクトを改善していった(自己組織化)

良かったところ

13年5月26日日曜日

Page 44: 「正しいアジャイル」でなくてもいい

朝会がなかった

スプリントがなかった(本番リリースは1回だけ)

ふりかえりもなかった

ペアプロはやってないしテスト自動化もCIもなかった

イマイチだったところ

13年5月26日日曜日

Page 45: 「正しいアジャイル」でなくてもいい

どうもアジャイルの王道は外しているようですが・・・このプロジェクトはうまくいったのでしょうか?

13年5月26日日曜日

Page 46: 「正しいアジャイル」でなくてもいい

アジャイルは正しく実践出来なかったかもしれませんがうまくいったと思っています。

13年5月26日日曜日

Page 47: 「正しいアジャイル」でなくてもいい

なぜなら価値あるシステムを構築出来たから

ここだけの話、結構売れてんすよww

13年5月26日日曜日

Page 48: 「正しいアジャイル」でなくてもいい

13年5月26日日曜日

Page 49: 「正しいアジャイル」でなくてもいい

(当時の考え方)

「正しい開発プロセスがあれば、開発者はもっとうまくやるだろう」

13年5月26日日曜日

Page 50: 「正しいアジャイル」でなくてもいい

(宣言者たちの考え方)

「スキルのある優れた開発者がいれば、

彼ら自身が学習して開発プロセスを決めれば良いだろう」

13年5月26日日曜日

Page 51: 「正しいアジャイル」でなくてもいい

開発プロセスは自分たちのもの自分たちで進化/深化させるもの

13年5月26日日曜日

Page 52: 「正しいアジャイル」でなくてもいい

こんなチーム人々(合計:6人)

プロダクトオーナー(顧客):1人

10年戦士:2人

5年戦士:3人

アジャイル開発経験者:0人

13年5月26日日曜日

Page 53: 「正しいアジャイル」でなくてもいい

こんなチーム

アジャイル偏差値:低

とりあえず「開発~テスト」を繰り返せばアジャイルって言えるんだよね?

13年5月26日日曜日

Page 54: 「正しいアジャイル」でなくてもいい

みんなアジャイルに対して無知だったから、アジャイルを実践しようとしなかった

13年5月26日日曜日

Page 55: 「正しいアジャイル」でなくてもいい

みんなアジャイルに対して無知だったから、アジャイルを目的にしなかった

13年5月26日日曜日

Page 56: 「正しいアジャイル」でなくてもいい

プロセスを自分たちで定義して、自分たちに合った形を発掘していった。

13年5月26日日曜日

Page 57: 「正しいアジャイル」でなくてもいい

仕様策定チーム

テスト仕様書

SCM開発部隊

コミット

各々担当の機能を実装&テスト

(1)テストファースト顧客

10年戦士

5年戦士

ATDD・BDDという開発手法13年5月26日日曜日

Page 58: 「正しいアジャイル」でなくてもいい

必ずしも解決することが目的ではなくて、早期に取り組む事が目的だった。

暗号化

(2)先行開発チーム顧客

10年戦士

5年戦士

?ウィルススキャン

? 認証・認可?

技術的難易度の高い問題に取り組む

ベースラインアーキテクチャの策定先行開発チーム

早く小さく失敗するというアジャイルの定石13年5月26日日曜日

Page 59: 「正しいアジャイル」でなくてもいい

仕様策定チーム

テスト仕様書の作成(システム仕様の策定)

開発部隊

「もっと××な情報を仕様書に盛り込んでください」というフィードバック

フィードバック顧客

10年戦士

5年戦士

先行開発チーム

「既存システムには△△な機能があります」「その場合、既存システムでは○○のように動作します」というフィードバック

既存システム

早く小さく失敗するというアジャイルの定石13年5月26日日曜日

Page 60: 「正しいアジャイル」でなくてもいい

自分たちに合った形を発掘していった結果、知らず知らずにアジャイルなプロセスになっていました。

13年5月26日日曜日

Page 61: 「正しいアジャイル」でなくてもいい

アジャイルに対して無知なことが武器になることがあるんです。

13年5月26日日曜日

Page 62: 「正しいアジャイル」でなくてもいい

アジェンダ正しいアジャイル?

アジャイル開発事例のご紹介

まとめ

13年5月26日日曜日

Page 63: 「正しいアジャイル」でなくてもいい

最後に先ほどの問いに答えましょう。

13年5月26日日曜日

Page 64: 「正しいアジャイル」でなくてもいい

スプリントが2~4週間で、最後にふりかえりを実施

かんばんで見える化

毎日朝会を実施(デイリースクラム)

ペアプロ

テストは全て自動化されていて継続的にCI環境でビルドされる

正しいアジャイル?

::

問1:これらを実践しないとアジャイルじゃない?

13年5月26日日曜日

Page 65: 「正しいアジャイル」でなくてもいい

そんなことどうでもいいと思います。

13年5月26日日曜日

Page 66: 「正しいアジャイル」でなくてもいい

えぇぇぇぇぇ~~~

自分から振っといてそんなことってあるんすか。。

13年5月26日日曜日

Page 67: 「正しいアジャイル」でなくてもいい

アジャイルは目的ではなくて手段です。なのでアジャイルかどうかなんてどうだっていいんです。

13年5月26日日曜日

Page 68: 「正しいアジャイル」でなくてもいい

いいシステムを作りたいという想いが根底にあってそれを支えるものとしてアジャイルがあればいい

13年5月26日日曜日

Page 69: 「正しいアジャイル」でなくてもいい

わたしはそう思います。

13年5月26日日曜日

Page 70: 「正しいアジャイル」でなくてもいい

スプリントが2~4週間で、最後にふりかえりを実施

かんばんで見える化

毎日朝会を実施(デイリースクラム)

ペアプロ

テストは全て自動化されていて継続的にCI環境でビルドされる

正しいアジャイル?

::

問2:これらを実践すればうまくいく?

13年5月26日日曜日

Page 71: 「正しいアジャイル」でなくてもいい

そんなワケないですよね。

13年5月26日日曜日

Page 72: 「正しいアジャイル」でなくてもいい

アジャイルを導入すれば問題が解決するなんてことはありません。

13年5月26日日曜日

Page 73: 「正しいアジャイル」でなくてもいい

問題を解決するのはプロセスではなくて自分たちですから。

13年5月26日日曜日

Page 74: 「正しいアジャイル」でなくてもいい

大事なのはプロセスに従うことやプラクティスを実践することではなく、自分たちで選択すること

13年5月26日日曜日

Page 75: 「正しいアジャイル」でなくてもいい

何が価値を生み、何がムダなのか自分たちで考え抜くこと

13年5月26日日曜日

Page 76: 「正しいアジャイル」でなくてもいい

それを実践し、実践した結果から学習し、改善すること

13年5月26日日曜日

Page 77: 「正しいアジャイル」でなくてもいい

わたしはそう思います。

13年5月26日日曜日

Page 78: 「正しいアジャイル」でなくてもいい

アジェンダ正しいアジャイル?

アジャイル開発事例のご紹介

まとめ

ちょっと付け足し

13年5月26日日曜日

Page 79: 「正しいアジャイル」でなくてもいい

決してアジャイルを正しく実践しなくてもいいと言っているわけではありませんよ(^^;)

13年5月26日日曜日

Page 80: 「正しいアジャイル」でなくてもいい

アジャイルを正しく実践出来ればその効果は絶大です。

13年5月26日日曜日

Page 81: 「正しいアジャイル」でなくてもいい

ただし正しく実践するというのはそんなに簡単ではありません。

13年5月26日日曜日

Page 82: 「正しいアジャイル」でなくてもいい

その難しさ故に一歩間違えれば実践することが目的となってしまいがちです。

13年5月26日日曜日

Page 83: 「正しいアジャイル」でなくてもいい

Don’t Do Agile,

Be Agile!!

13年5月26日日曜日

Page 84: 「正しいアジャイル」でなくてもいい

アジャイルを目的としないためにはじめから「正しいアジャイル」を目指さなくていいということを言いたくて、こういうお話をさせて頂きました

13年5月26日日曜日

Page 85: 「正しいアジャイル」でなくてもいい

ぜひどんどん間違った(?)アジャイルを実践して失敗しながら「正しいアジャイル」を発掘しましょう

13年5月26日日曜日

Page 86: 「正しいアジャイル」でなくてもいい

No Agile, No Life!!

13年5月26日日曜日

Page 87: 「正しいアジャイル」でなくてもいい

ご清聴ありがとうございました。

13年5月26日日曜日