72
STEP BY STEP AGILE RICOH IT SOLUTIONS 前鼻毅 @sandinist Saturday, July 2, 2011

step by step agile

Embed Size (px)

Citation preview

Page 1: step by step agile

STEP BY STEP AGILE

RICOH IT SOLUTIONS前鼻毅 @sandinist

Saturday, July 2, 2011

Page 2: step by step agile

自己紹介

前鼻毅 @sandinist

「俺がAgileだ!」を目指すと#aj11でアジャイル宣言

札幌生まれの札幌育ち(幼年期は関東)

文系大学卒

スープカレー好き

Saturday, July 2, 2011

Page 3: step by step agile

Saturday, July 2, 2011

Page 4: step by step agile

Saturday, July 2, 2011

Page 5: step by step agile

WORK

基幹系業務システム(MS系) 6年

Ruby on Rails 1年弱

iOS開発 1年ちょっと

Saturday, July 2, 2011

Page 6: step by step agile

Saturday, July 2, 2011

Page 7: step by step agile

Saturday, July 2, 2011

Page 8: step by step agile

AGILEyou know?

Saturday, July 2, 2011

Page 9: step by step agile

http://dictionary.goo.ne.jp/leaf/ej3/1490/m0u/

AGILE

Saturday, July 2, 2011

Page 10: step by step agile

http://dictionary.goo.ne.jp/leaf/ej3/1490/m0u/

AGILE

Saturday, July 2, 2011

Page 11: step by step agile

http://dictionary.goo.ne.jp/leaf/ej3/1490/m0u/

AGILE

Saturday, July 2, 2011

Page 12: step by step agile

http://dictionary.goo.ne.jp/leaf/ej3/1490/m0u/

AGILE

Saturday, July 2, 2011

Page 13: step by step agile

Manifesto for Agile Software Development

アジャイルソフトウェア開発宣言

Saturday, July 2, 2011

Page 14: step by step agile

2001年に当時、軽量ソフトウェア開発手法と呼ばれていた分野において名声のある17人がアメリカ合衆国のユタ州のスノーバードという

スキーリゾートに会し、彼らがそれぞれ別個に提唱していた開発手法の重要な部分を統合することについて議論した。

Manifesto for Agile Software Development

アジャイルソフトウェア開発宣言

Saturday, July 2, 2011

Page 15: step by step agile

http://agilemanifesto.org/iso/ja/

Saturday, July 2, 2011

Page 16: step by step agile

http://agilemanifesto.org/iso/ja/

Saturday, July 2, 2011

Page 17: step by step agile

http://agilemanifesto.org/iso/ja/

TDDXP

Crystalusecase

PragmaticProgrammer

PragmaticProgrammer

CleanCodeAgileSoftware~

ScrumWiki

RefactoringEAAP

XP

XP

TDDRubyScripting~

Saturday, July 2, 2011

Page 18: step by step agile

アジャイル宣言の背後にある原則

私たちは以下の原則に従う:顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。

要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます。

動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースします。

ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。

意欲に満ちた人々を集めてプロジェクトを構成します。環境と支援を与え仕事が無事終わるまで彼らを信頼します。

情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話をすることです。

http://agilemanifesto.org/iso/ja/Saturday, July 2, 2011

Page 19: step by step agile

アジャイル宣言の背後にある原則

動くソフトウェアこそが進捗の最も重要な尺度です。

アジャイル・プロセスは持続可能な開発を促進します。

一定のペースを継続的に維持できるようにしなければなりません。

技術的卓越性と優れた設計に対する

不断の注意が機敏さを高めます。

シンプルさ(ムダなく作れる量を最大限にすること)が本質です。

最良のアーキテクチャ・要求・設計は、

http://agilemanifesto.org/iso/ja/Saturday, July 2, 2011

Page 20: step by step agile

Agile Manifesto10th Anniversary

Reunionat Agile 2011

Saturday, July 2, 2011

Page 21: step by step agile

http://manifesto.agilealliance.org/Saturday, July 2, 2011

Page 22: step by step agile

プロセス・プラクティス

eXtreaming Programming

反復、回顧、テスト駆動、ペアプロ、リファクタ、共同所有、CI、最適ペース、YAGNI、ストーリー、リリース計画、受入テスト、短期リリース

Scrum

スプリント、スプリント計画・レビュー、デイリースクラム、スクラムマスタ、プロダウトオーナ、スプリント・プロダクトバックログ

Lean

無駄をなくす、品質を作り込む、知識を作り込む、決定を遅らせる、早く提供す

Saturday, July 2, 2011

Page 23: step by step agile

形容詞。状態、度合い(Degree)

計画するのではなく適応する

「人」を尊重

AGILE

Saturday, July 2, 2011

Page 24: step by step agile

WHY?

AGILE

Saturday, July 2, 2011

Page 25: step by step agile

既知の問題

ウォーターフォール

決定論的アプローチ

検証・リリースは最後に

Saturday, July 2, 2011

Page 26: step by step agile

既知の問題

プロジェクトの成功率

2003年 26.7% 日経コンピュータ

2008年 31.1% 日経コンピュータ

Saturday, July 2, 2011

Page 27: step by step agile

WORK

基幹系業務システム(MS系) 6年

Ruby on Rails 1年弱

iOS開発 1年ちょっと

Saturday, July 2, 2011

Page 28: step by step agile

既知の問題

絵に書いたようなウォーターフォール

変更・隠れた要求に振り回されるプロジェクト

大きな保守コスト、やればやるほどしんどくなる

レガシーな負の遺産達

Saturday, July 2, 2011

Page 29: step by step agile

どげんかせんといかん

Saturday, July 2, 2011

Page 30: step by step agile

@sandinist meets Agile.

Saturday, July 2, 2011

Page 31: step by step agile

the Gate.

Saturday, July 2, 2011

Page 32: step by step agile

Saturday, July 2, 2011

Page 33: step by step agile

Saturday, July 2, 2011

Page 34: step by step agile

憧れと実践               . -―- .      やったッ!! さすがディオ!             /       ヽ          //         ',      おれたちにできない事を            | { _____  |        平然とやってのけるッ!        (⌒ヽ7´        ``ヒニ¨ヽ        ヽ、..二二二二二二二. -r‐''′     そこにシビれる!        /´ 〉'">、、,,.ィ二¨' {.  ヽ     _ _      あこがれるゥ!         `r、| ゙._(9,)Y´_(9_l′ )  (  , -'′ `¨¨´‾`ヽ、         {(,| `'''7、,. 、 ⌒  |/ニY {              \           ヾ|   ^'^ ′-、 ,ノr')リ  ,ゝ、ー`――-'- ∠,_  ノ           |   「匸匸匚| '"|ィ'( (,ノ,r'゙へ.‾‾,二ニ、゙}了    , ヘー‐- 、 l  | /^''⌒|  | | ,ゝ )、,>(_9,`!i!}i!ィ_9,) |人  -‐ノ .ヘー‐-ィ ヽ  !‐}__,..ノ  || /-‐ヽ|   -イ,__,.>‐  ハ } ''"//ヽー、  ノヽ∧ `ー一'´ / |′ 丿!  , -===- 、  }くー- ..._  //^\  ヾ-、 :| ハ  ‾ / ノ |.  { {ハ.  V'二'二ソ  ノ| |   `ヽ,ノ   ヽ,_ ヽノヽ_)ノ:l 'ーー<.  /  |.  ヽヽヽ._ `二¨´ /ノ ノ/    <^_,.イ `r‐'゙ :::ヽ  \ `丶、  |、   \\'ー--‐''"//\___,/|  !  ::::::l、  \  \| \   \ヽ   / ノ

Saturday, July 2, 2011

Page 35: step by step agile

オブジェクト指向にどっぷり

eXtreaming Programmingに憧れる

役割は中~大規模な案件のPM、開発メインはパートナー

VB.net, C#

憧れと実践

Saturday, July 2, 2011

Page 36: step by step agile

Hiki

ふりかえり(プロジェクトの節目)

バージョン管理(subversion)

BTS(影舞)

自動ビルド(CC.Net)

フレームワーク作成 (O-RMap, CRUD自動生成, CoC指向)

できることから

Saturday, July 2, 2011

Page 37: step by step agile

テスト駆動

反復・インクリメンタル開発

適応型

顧客の参加

フレームワークの展開

できなかったこと

Saturday, July 2, 2011

Page 38: step by step agile

ある意味 挫折

Saturday, July 2, 2011

Page 39: step by step agile

AGILE SOUL WAS SLEEPING A FEW

YEARS..

Saturday, July 2, 2011

Page 40: step by step agile

Saturday, July 2, 2011

Page 41: step by step agile

再出発

2名から

Unix/Linuxの文化、Webの洗礼

Ruby, Railsをお仕事で

札幌Tを立ち上げ

Saturday, July 2, 2011

Page 42: step by step agile

Hikiに記録

バージョン管理(git)

計画・ふりかえり(週単位)

はじめたこと

Saturday, July 2, 2011

Page 43: step by step agile

仮説:WIKIが育つところはAGILEになれる

~角谷信太郎http://gihyo.jp/dev/serial/01/agile/000402

Saturday, July 2, 2011

Page 44: step by step agile

WikiとAgile(XP)の素敵な関係

パターンランゲージの実践という

 同じ概念から生まれた兄弟である

その情報を読みたい当事者であること(ユーザ参加型の設計),ページを誰でも編集できること(コードの共同所有),小さく始めて大きく育てていく過程でサイトの構造が立ち現れること(進化的設計),よいWikiページの名前が重要であること(意図を表現するコード)

- 江渡浩一郎

http://gihyo.jp/dev/serial/01/agile/000402

Saturday, July 2, 2011

Page 45: step by step agile

Saturday, July 2, 2011

Page 46: step by step agile

外部作成のiOSアプリの内製化からスタート

バージョンアップ、機能追加を予定

テーマはチームメイキング

N=3 に増員

全員未経験者、1人RoRの残作業中

iOS開発へ

Saturday, July 2, 2011

Page 47: step by step agile

暗黒期

既存のスパゲチーを解析

コードを読む、書籍を読む、学習

丸1ヶ月経って進捗に愕然とするレベル

技術的卓越性を持つメンター必要

Saturday, July 2, 2011

Page 48: step by step agile

成長期へ

メンターを奇跡的に確保、N=4

メンバーもめきめきと上達

プラクティス導入

1週間のイテレーション(成長曲線、リリースなし)

Pivotal Tracker 導入

Saturday, July 2, 2011

Page 49: step by step agile

Saturday, July 2, 2011

Page 50: step by step agile

Saturday, July 2, 2011

Page 51: step by step agile

Saturday, July 2, 2011

Page 52: step by step agile

Saturday, July 2, 2011

Page 53: step by step agile

プラクティスを導入1

ストーリーポイント(あなたの一人日は私と違う)

イテレーション計画

プランニングポーカー

バーンダウンチャート

ベロシティ

バックログ、アイスボックス

Saturday, July 2, 2011

Page 54: step by step agile

朝会(スタンドアップより少し深く、全体で共有する時間)

コーディング規約

コードレビュー

ユニットテスト(モデル部分)

ゆるいペアプロ(日でペア交代、数時間/日)

LT (基本毎週で交代制、現在24回)

プラクティスを導入2

Saturday, July 2, 2011

Page 55: step by step agile

顧客との関係

IRCで密な対話

月一くらいでフェイス・トゥ・フェイス

Pivotal Trackerにも参加(BTSのストーリー登録)

自社製品の活用(ドッグフーディング)

節目で報告会、提案会

Saturday, July 2, 2011

Page 56: step by step agile

Saturday, July 2, 2011

Page 57: step by step agile

一定の成功さらなる挑戦

Saturday, July 2, 2011

Page 58: step by step agile

短期間での新サービス立ち上げ

企画・PM・サーバーT・スマホTがガッチリ連携

ひと月で基本動作、ふた月で内部評価へ

継続して素早いリリース

自己組織化チーム (密室って言われたw)

(震災で延期など…)

Saturday, July 2, 2011

Page 59: step by step agile

第2次成長期N=5、テーマは「楽をする」、「一日一コミット」

イテレーションを2wに変更

ふりかえりをKPTHに(Happy? -しあわせになるためには)

カフェタイム導入(3時のおやつ)

ペアプロの強化(イテレーション間固定)

メモリチェッカーズ

Saturday, July 2, 2011

Page 60: step by step agile

チームとしての立場を確立

Saturday, July 2, 2011

Page 61: step by step agile

安定期へ社内勉強会を開始(チーム外へも価値を)

ポモドーロ導入(pom/story or iteで話せるように)

20%ルール発動

CI環境の構築(Jenkins+xcodebuild+OCUnit,OCMock)

テーマ追加:技術の軸を増やす(LT, 20%中心に)

(Web, Ruby, Rails, jQuery, jQueryMobile, node.js, MacApp, iPad)

Saturday, July 2, 2011

Page 62: step by step agile

Saturday, July 2, 2011

Page 63: step by step agile

もちろん課題も

Saturday, July 2, 2011

Page 64: step by step agile

課題・残念なところ

ユニットテストの再構築が必要(遅い、状態依存で形骸化)

コードレビューが少なくなった

引継ぎの無駄が多い(not lean)

レディ・レディまでの仕様待ち、チームの速度差

ストーリーがタスク化

Saturday, July 2, 2011

Page 65: step by step agile

Saturday, July 2, 2011

Page 66: step by step agile

AGILE

Saturday, July 2, 2011

Page 67: step by step agile

形容詞。状態、度合い(Degree)

計画するのではなく適応する

「人」を尊重

AGILE

Saturday, July 2, 2011

Page 68: step by step agile

AGILE?

Saturday, July 2, 2011

Page 69: step by step agile

アジャイル方法論の押しつけは、アジャイル方法論の根底にある価値、原則とコンフリクトするのである。

アジャイルではないものに「アジャイル」という名前がつ

くことを防ぐことはできない――厳格なアジャイルを取り締まる「アジャイル警察」はいないのだ。

我々にできることは、アジャイルが本当に意味することを説明できるよう、日々心がけることである。 「説得」ではなく「説明」しよう。

アジャイルの押し付け

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?AgileImposition

~ Martin Fowler

Saturday, July 2, 2011

Page 70: step by step agile

http://www.objectclub.jp/technicaldoc/xp/agile_misunderstanding#q6

Saturday, July 2, 2011

Page 71: step by step agile

Punk is attitude, not style.

"パンクってのはファッションや音楽じゃなくて姿勢なんだ"

- Joe Strummer

Saturday, July 2, 2011

Page 72: step by step agile

Agile is attitude, not style.

"アジャイルってのは流行や、なるものじゃなくて改善し続ける姿勢なんだ"

- @sandinist

Saturday, July 2, 2011