Slide 1

Slide 1 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 アジャイルソフト ウェア開発の概要 と現場での実践 伊藤 邦彦 永和システムマネジメント Agile Japan 2016 北陸 2016-06-25

Slide 2

Slide 2 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 内容 アジャイル開発プロセスの基礎 知識 ✓ 現場での実践と工夫 ✓

Slide 3

Slide 3 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 p self 名前: 伊藤 邦彦 @kunitoo ✓ 出身: 富山 ✓ 在住: 東京 ✓ 所属: アジャイル事業部 ✓ 仕事: [Ruby, Rails, Neo4j] ✓

Slide 4

Slide 4 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 使っているウィンドウマネー ジャ awesome window manager

Slide 5

Slide 5 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 アジャイルと私 永和に入社してアジャイルな開 発を体験する ✓ アジャイルサムライ道場を渡り 歩く ✓ 様々なプロジェクトに参画する ✓ XPE 読書会でもう一度アジャ イルについて考える ✓

Slide 6

Slide 6 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 弊社とア ジャイル

Slide 7

Slide 7 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 Agile Japan 2016 サテライ トスポンサー

Slide 8

Slide 8 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9

Slide 9

Slide 9 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 本日の目標 アジャイル開発の知識を学ぶ・ おさらいする ✓ 現場に持ち替り実践するヒント を得る ✓

Slide 10

Slide 10 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 前半 永和システムマネジメントで行っ ているセミナー資料を使ってアジ ャイル開発の基礎知識を学びます

Slide 11

Slide 11 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 後半 発表者が参画したプロジェクトの 事例を元に、現場での導入と実践 についてお話します

Slide 12

Slide 12 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 前半のおしながき アジャイルプロセスの概要 ✓ XP の概観 ✓

Slide 13

Slide 13 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 アジャイル 開発プロセ スの基礎知 識

Slide 14

Slide 14 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 後半のおしながき プラクティスの活用事例 ✓ どのように導入するか ✓

Slide 15

Slide 15 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 プラクティスの活用事例 チームや周りの状況によってア レンジ ✓ 必ずしも教科書通りにやる必要 はない ✓

Slide 16

Slide 16 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 アレンジの注意点 アジャイル宣言の背後にある原 則を忘れてはならない ✓ 原則を守りチームによい影響を 与えるようにアレンジする ✓

Slide 17

Slide 17 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9

Slide 18

Slide 18 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 タスクボード 一人でも始められる ✓ 全員が見える場所に置く ✓ 物理的な物がよい 付箋を移動したことが横目で分かる ✓ イテレーション内に置ける量に制限 がかかる ✓ ✓

Slide 19

Slide 19 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 テスト駆動開発 慣れるまでは訓練が必要 できる人とペアプロするとよい ✓ ✓ 黄金の回転 Red ✓ Green ✓ Refactor ✓ ✓

Slide 20

Slide 20 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 http://www.slideshare.net/t_wada/the-spirit-of-tdd/27

Slide 21

Slide 21 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 テスト駆動開発 やりやすい分野とやりにくい分 野はある 未知のものや、画面などはやりづら い ✓ ロジックが難しいものなどはやった 方がいい ✓ テストを書けないのはなにかがおか しい ✓ ✓

Slide 22

Slide 22 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 ペアプログラミング 難しい問題をプログラミングをす るときにとてもいい 悩む時間が短かくなる ✓ 思った以上に疲れる ✓

Slide 23

Slide 23 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 まずはやってみる Coderetreat(ライフゲーム) ✓ TDD Boot Camp ✓ Extreme Fish Bowl ✓

Slide 24

Slide 24 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 朝会 決まった時間に ✓ 短い時間で ✓ 昨日やったこと ✓ 今日やる事 ✓ 問題点を共有する ✓

Slide 25

Slide 25 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 朝会の落とし穴 定型的、儀式になりがち ✓ タスクボードがない場合お互い を見あってしまうため、問題vs 私たちの形がくずれる ✓ 問題を話しすぎて長くなりやす い ✓

Slide 26

Slide 26 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 ふりかえり KPT形式が多い ✓ イテレーション毎に開催する ✓ やらないとチームの成長が止ま る ✓

Slide 27

Slide 27 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 ふりかえりでチームが成長す る 過去にあったTRY ふりかえりが長い 時計を全員が見える場所におく ✓ ✓ バーンダウンチャートが書きづ らい Done になった日付を付箋に書き入れ る ✓ ✓

Slide 28

Slide 28 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 イテレーション 1~3週間ごとにチームは稼動可能 なシステムを顧客に提示する 1週間 大変 ✓ ✓ 2週間 おすすめ ✓ ✓ 3週間 未経験 ✓ ✓

Slide 29

Slide 29 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 イテレーション計画 誰がストーリーを作成するか? プロダクトオーナー ✓ 開発メンバーが補助する ✓ ✓

Slide 30

Slide 30 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 イテレーション計画 2,3イテレーション分を見積る ✓ チーム全員で見積る ✓

Slide 31

Slide 31 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 継続的インテグレーション 機能分割の工夫が必要 なるべく小さくデプロイできるよう にする ✓ ときにはストーリーやタスクも分割 して設計する必要がある ✓ ✓ できるだけ早くリリースの中に 入れる フィーチャーフラグを使う手法 ✓ ✓

Slide 32

Slide 32 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 インセプションデッキ リニューアルで新サービスを開 発する時に作成 ✓ よかったこと 開発中方向性を見失わなかった ✓ ✓ よくなかったこと 全部はやらなくてもよかった ✓ ✓

Slide 33

Slide 33 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 私とアジャイル開発の施行領 域 大規模開発(多人数) 10-20人 ✓ 分散拠点(オフショア含む)開 発 ✓ 組織(会社)間をまたぐ開発チ ームによる開発 ✓ 組込みシステム開発 ✓

Slide 34

Slide 34 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 大規模開発(多人数) チームを4-6人に分割する ✓ 各チームのリーダーが中心に協 調する ✓ イテレーション単位で時々メン バーを入れかえる ✓

Slide 35

Slide 35 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 分散拠点(オフショア含む) 開発 開発初期は同じ場所に集めた方 がよい ✓ ツールを導入が必須 音声チャット(hangout, appear.in) ✓ コードレビュー(GitHub) ✓ カンバン(PivotalTracker) ✓ ✓

Slide 36

Slide 36 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 組織(会社)間をまたぐ開発 チームによる開発 できる限り垣根がないようにす る 同じ場所同じチームとして働く ✓ ✓ 組織間の連携を常に意識する ✓

Slide 37

Slide 37 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 どう導入するか 導入しやすいことから導入する チームや状況によって異なる ✓ ✓ まずは教科書通りに始める ふりかえりなどを通してアレンジす る ✓ ✓

Slide 38

Slide 38 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 なにから導入するか 1人でカンバン ✓ 1人でTDD ✓ ペアプロ ✓ 2人でふりかえり ✓

Slide 39

Slide 39 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 まとめ 開発をアジャイルにするにはそ れぞれの環境や状況によって異 なる ✓ 導入しやすいプラクティスから 始める ✓ 賛同してくれる仲間(同僚)を見 つける ✓

Slide 40

Slide 40 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 SOCIAL CHANGE STARTS WITH YOU. [cited from `Extreme Programming 2nd Signature Model']

Slide 41

Slide 41 text

アジャイルソフトウェア開発の概要と現場での実践 Powered by Rabbit 2.1.9 質疑・応答 困りごとがあれば相談にのりま す ✓ 分かりづらかったところなど ✓