xpによるアジャイル開発で 顧客満足 ... · アジャイルウェア 代表...
TRANSCRIPT
アジャイルウェア代表 川端光義
XPによるアジャイル開発で顧客満足・開発者満足を実現する
1
アジャイルウェア 代表 川端光義
2003年 アジャイルウェア起業2005年 XPJUG関西支部 代表2007年 開発言語をJavaからRubyへ2009年 OIC 大阪情報コンピューター専門学校 非常勤講師2010年 大阪城東区に事務所開設2010年 IPA(情報処理推進機構)非ウォーターフォール型開発WG委員著作物・記事• 『バグがないプログラムのつくり方 - JavaとEclipseで学ぶTDDテスト駆動開発』(翔泳社、2004年9月出版)• 日経システム構築 特集『これからの開発技術』テスト駆動開発記事(2005年1月号P89)• 『効果的なXPの導入を目的としたプラクティス間の相互作用の分析』ソフトウェア・シンポジウム2004論文集
講演• Developers Summit2005デブサミ版『バグがないプログラムのつくり方』~テスト駆動開発によるペアプログラミング・ライブ(2005年2月)• テスト駆動開発セミナー(SEA関西2004年12月プロセス分科会)• Rubyに関する講演(2008年~ Ruby関西 / 関西Ruby会議)• エクストリーム・プログラミング開発事例TOP5(アジャイルジャパン2011)• 他多数
agilekawabata
2
3
Kent Beckの白本
2000年 2005年
ISBN: 4894716852ISBN: 489471275X4
5
6
5つの価値
コミュニケーション
シンプル
フィードバック
勇気
尊重
7
プラクティス全員同席 リファクタリング
計画ゲーム ペアプログラミング
短期リリース コードの共同所有
メタファ 継続的インテグレーション
シンプル設計 コーディング規約
受け入れテスト 適切なペース
テスト駆動開発
8
何のために?プロジェクト成功のため?
9
顧客満足 + 開発者満足Win-Winの実現
10
変化を抱擁するEmbrace Change
顧客満足
11
能力が認められる(=報酬)信任認
好きなことをやる
開発者満足
※本間直人氏の言葉
12
13
金融業向け共通フレームワーク開発
2006年
開発体制 ベンダー3社
開発規模全体で40名1年間500人月規模
共通フレームワークチーム
プログラマ7名マネージャ1名
イテレーション回数 20回
14
導入したプラクティス全員同席 継続的インテグレーション
計画ゲーム コーディング規約
シンプル設計 週40時間
テスト駆動開発 ふりかえり
リファクタリング スタンドアップミーティング
ペアプログラミング バーンダウンチャート
コードの共同所有 クレド
15
COBOL から Java へ軽量フレームワーク
Hibernate, Spring, JSF
16
顧客のトップはアジャイル開発に理解がある
17
チームメンバーはアジャイル開発に無知教育する準備時間もない
18
リッツ・カールトンのクレド
19
アジャイル開発のクレド
20
ふりかえりKeep / Problem / Try
K : ペアタスクにする
K : ペアプロローテーション
K : 朝一に時間割を作る
K : KPTを毎朝メールで確認
T : 毎週金曜Wikiリファクタリング
T : プログラミングコンテスト
21
ドキュメントの90%Wiki
読み書き自由 - すべてオープン
22
イテレーション計画通り週40時間
23
抵抗勢力変化を嫌う
24
ある日、Wikiがすべて消える
25
チームの皆が終電近くまで残業して復活する今までにない団結力
26
Wiki総ページ数 245全20イテレーション総タスク数 227
27
Rubyと恋に落ちました
28
29
ソーシャルグループウェア開発2007年
開発体制プログラマ10名テスター3名
開発規模 80人月
言語 Ruby on Rails
30
導入されていたプラクティス
全員同席 コードの共同所有
シンプル設計 継続的インテグレーション
テスト駆動開発 コーディング規約
リファクタリング スタンドアップミーティング
31
リーダー不在
32
Javaの業界と文化・スキルレベルが全く違う
33
個性が強くプラクティスが合わない
34
「このタスクの見積りは3ですね」
圧倒的な生産性
35
タスクかんばんコミットベル
36
自由で開発者大満足コミュニケーション不足
リーダーは必要
37
38
受け入れテストCucumber
39
Demo
40
「はじめる!Cucumber」達人出版会41
他言語用の類似ライブラリ
Cuke4Duke (Java)
Cuke4Nuke (.Net)
Behat (PHP)
Freshen (Python)
iCuke (iPhone)
42