Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
アジャイル開
発って何?
自分なりのまと
め
2014/03/01

LT駆動開発01
自己紹介
名前 カキギ カツユキ

仕事

インターネット通販事業
(ECコンサルティング企画室)

趣味 山登り・ランニング
目次
アジャイルとは

目的と価値
アジャイル適用領域
自社における適用状況
今後の課題
まとめ
アジャイルとは
言葉の定義
agile
【形容詞】
1(動きが)機敏な,はしっこい; 〔…に〕機敏で,はしっこくて 〔in〕.
用例
He's agile in his movements. 彼は動きが早い.
2頭の回転の早い,機敏な,明敏な.
『研究社 新英和中辞典』
アジャイルとは
ソフトウエアエンジニアリングの定義
Agile is a way of developing software that reminds us that
although computers run the code, it’s people who create and
maintain it.
(「アジャイル」はソフトウエアの開発の進め方の一つだ。ア
ジャイルなソフトウエア開発が私たちに言い聞かせていることは、
コードを実行するのはコンピュータかもしれないが、そのコード
を生み出し、保守するのは私たち人間なんだということだ。)
It’s a framework, attitude, and approach to software delivery that
is lean, fast, and pragmatic. It’s no silver bullet, but it dramatically
increase your chances of success while bringing out the best your
team has to offer.
(「アジャイル」はフレームワークであり、心構えであり、ソフ
トウエアを無駄なく、早く届ける手法だ。しかも、現場で実際に
使える。確かに「銀の弾丸」なんてない。けれども、チームの持
てる力を最大限に引き出すことで、プロジェクトがうまくいく確
率を格段に向上させるんだ。)
早い!
うまい!
安い!
http://www.flickr.com/photos/jetalone/258128269/
目的と価値
目的
Deliver Something of Value Every Week
(価値ある成果を毎週届ける)
『アジャイルサムライ』

The professional goal of every software developer and every
development team is to deliver the highest possible value to
employers and customers
(プロの開発者のゴールは、可能な限り高品質の製品を雇い主や
顧客に納品することである。)
『アジャイルソフトウエア開発の奥義』
目的と価値
価値

•
•
•
•

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
『アジャイルソフトウエア開発宣言』
目的と価値
12の原則
顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。
要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけること
によって、お客様の競争力を引き上げます。
3.
動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリ
リースします。
4.
ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなり
ません。
5.
意欲に満ちた人々を集めてプロジェクトを構成します。環境と支援を与え仕事が
無事終わるまで彼らを信頼します。
6.
情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話を
することです。
7.
動くソフトウェアこそが進捗の最も重要な尺度です。
8.
アジャイル・プロセスは持続可能な開発を促進します。一定のペースを継続的に
維持できるようにしなければなりません。
9.
技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。
10.
シンプルさ(ムダなく作れる量を最大限にすること)が本質です。
11.
最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。
12.
チームがもっと効率を高めることができるかを定期的に振り返り、それに基づい
て自分たちのやり方を最適に調整します。
『アジャイルソフトウエア開発宣言』
1.
2.
要するに
『価値ある成果を毎
週届ける』
ということね!

http://www.flickr.com/photos/jodiwomack/6217052899/
アジャイル適用領域
アジャイル適用領域
マネジメント

• アジャイルな方向付け
• アジャイルな計画づくり
• アジャイルなプロジェクト運営
開発
• アジャイルなプログラミング
•
•
•
•

ユニットテスト
リファクタリング
テスト駆動開発
継続的インテグレーション
アジャイル適用領域
マネジメント
方向づけ
1.顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。

2.要求の変更はたとえ開発の後期であっても歓迎します。

計画づくり

プロジェクト運
営

◎

◎

◎

◎

3.動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔で
リリースします。
4.ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければ
なりません。

◎

5.意欲に満ちた人々を集めてプロジェクトを構成します。

◎

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

◎

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

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

9.技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。

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

◎

11.最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出さ
れます。

◎

12.チームがもっと効率を高めることができるかを定期的に振り返り、それに
基づいて自分たちのやり方を最適に調整します。

◎
アジャイル適用領域
開発
ユニットテス
ト

リファクタリ
ング

TDD

CI

◯

◯

◯

◯

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

◯

◯

◯

◯

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

◯

◯

◯

◯

9.技術的卓越性と優れた設計に対する不断の注意が機敏さを高め
ます。

◯

◎

◯

◯

1.顧客満足を最優先し、価値のあるソフトウェアを早く継続的に
提供します。
2.要求の変更はたとえ開発の後期であっても歓迎します。

3.動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短
い時間間隔でリリースします。
4.ビジネス側の人と開発者は、プロジェクトを通して日々一緒に
働かなければなりません。
5.意欲に満ちた人々を集めてプロジェクトを構成します。

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

10.シンプルさ(ムダなく作れる量を最大限にすること)が本質で
す。
11.最良のアーキテクチャ・要求・設計は、自己組織的なチームか
ら生み出されます。
12.チームがもっと効率を高めることができるかを定期的に振り返
り、それに基づいて自分たちのやり方を最適に調整します。
要するに
『価値ある成果を毎
週届ける』
ということね!

http://www.flickr.com/photos/jodiwomack/6217052899/
自社における適用状況
自社における適用状況
現状

• 基幹業務システム開発・運用
• 2013年5月着手同年11月販売管理機能サービス開始
• 現在会計機能開発中(2013年12月着手)

• システム構成
• AWS
• EC2(Amazon Linux)
• RDS(My SQL)
• Ruby on Rails
• Ruby 1.9
• Rails 3.0
• Git
• Redmine
• Jenkins
自社における適用状況
マネジメント
方向づけ
1.顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。

2.要求の変更はたとえ開発の後期であっても歓迎します。

計画づくり

プロジェクト運
営

◎

◎

◎

◎

3.動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔で
リリースします。
4.ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければ
なりません。

◎

5.意欲に満ちた人々を集めてプロジェクトを構成します。

◎

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

◎

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

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

9.技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。

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

◎

11.最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出さ
れます。

◎

12.チームがもっと効率を高めることができるかを定期的に振り返り、それに
基づいて自分たちのやり方を最適に調整します。

◎
自社における適用状況
開発
ユニットテス
ト

リファクタリ
ング

TDD

CI

◯

◯

◯

◯

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

◯

◯

◯

◯

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

◯

◯

◯

◯

9.技術的卓越性と優れた設計に対する不断の注意が機敏さを高め
ます。

◯

◎

◯

◯

1.顧客満足を最優先し、価値のあるソフトウェアを早く継続的に
提供します。
2.要求の変更はたとえ開発の後期であっても歓迎します。

3.動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短
い時間間隔でリリースします。
4.ビジネス側の人と開発者は、プロジェクトを通して日々一緒に
働かなければなりません。
5.意欲に満ちた人々を集めてプロジェクトを構成します。

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

10.シンプルさ(ムダなく作れる量を最大限にすること)が本質で
す。
11.最良のアーキテクチャ・要求・設計は、自己組織的なチームか
ら生み出されます。
12.チームがもっと効率を高めることができるかを定期的に振り返
り、それに基づいて自分たちのやり方を最適に調整します。
自社における適用状況
グリーン

• 当初の目的である以下の3点に関しては達成することができ
た。
• システムに関する対応を一元化する
• 基幹業務の流れを明確にする
• 基幹業務を効率化する

• 開発は通常業務スペースでやるので変更・追加要求には迅
速に対応
• 最速2時間で修正・テスト・デプロイ
• 参考 Cucumber
• 310 scenarios
• 1602 steps
• 25m13.174s
自社における適用状況
イエロー

• 全てが初めてだったので学習・習熟に時間がかかった。
• 初期リリースのコードの品質が悪い
• 初期リリースの自動テストが不十分
自社における適用状況
レッド

• CIサーバは当初稼働させていたのだが開発サーバのディスク
容量等の問題により現在は手動テスト&デプロイ
今後の課題

http://www.flickr.com/photos/colley/3926132807/
今後の課題
初期リリースコードのリファクタリング

初期リリースコードの自動テスト追加
ソースコード管理及びCI環境のクラウド移行
• GitHub(https://github.com/)
• Codeship(https://www.codeship.io/)
まとめ

http://www.flickr.com/photos/colley/3926132807/
要するに
『価値ある成果を毎
週届ける』
ということね!

http://www.flickr.com/photos/jodiwomack/6217052899/
要するに
『価値ある成果を毎
週届ける』
ということね!

http://www.flickr.com/photos/jodiwomack/6217052899/
要するに
あなた達仲悪いの?

おしまい
http://www.flickr.com/photos/jodiwomack/6217052899/
あ、あと愛も必要です。
参考文献
アジャイルソフトウエア開発宣言
Jonathan Rasmusson (2010) 『The Agile Samurai』
Pragmatic Bookshelf
Jonathan Rasmusson、西村 直人、角谷 信太郎、 近藤 修平
(2011) 『アジャイルサムライ−達人開発者への道』 オーム社
Robert C. Martin (2002) 『Agile Software Development,
Principles, Patterns, and Practices』 Prentice Hall
ロバート・C・マーチン (著), 瀬谷 啓介 (翻訳)(2004)『アジャイ
ルソフトウェア開発の奥義』ソフトバンククリエイティブ
Kent Beck, Cynthia Andres(2004) Extreme Programming
Explained: Embrace Change (2nd Edition) [Kindle版]
Addison-Wesley Professional
はじめてのチュウ 侍ver

【はじめての接吻】

More Related Content

Lt駆動開発 01 プレゼン