toolbox of agile software development

43
アジャイルソフトウェア 開発の 道具箱 (株) 永和システムマネジメント アジャイル事業部 Ruby x Agile グループ 伊藤 浩一 (@koic) 2014.09.06 (Sat ) 早稲田大学理工学部キャンパス XP祭り 2014 ライトニングトークス 永和システムマネジメント 勤続10 周年記念講演

Upload: koichi-ito

Post on 20-Nov-2014

2.149 views

Category:

Internet


0 download

DESCRIPTION

Lightning Talks at XP Festival 2014

TRANSCRIPT

Page 1: Toolbox of Agile Software Development

アジャイルソフトウェア 開発の道具箱

(株) 永和システムマネジメント アジャイル事業部

Ruby x Agile グループ 伊藤 浩一 (@koic)

2014.09.06 (Sat)早稲田大学理工学部キャンパス

XP祭り 2014 ライトニングトークス

永和システムマネジメント 勤続10周年記念講演

Page 2: Toolbox of Agile Software Development
Page 3: Toolbox of Agile Software Development
Page 4: Toolbox of Agile Software Development

大事なことは 最初に

Page 5: Toolbox of Agile Software Development

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

Page 6: Toolbox of Agile Software Development

受託開発での明確なリーダー

Page 7: Toolbox of Agile Software Development

Q. あなたにとって アジャイルとはなんですか?

2014年某月某日お客様からの質問

Page 8: Toolbox of Agile Software Development

自分たちのやり方を 自分たちで決めて作っていける(株)永和システムマネジメント

アジャイル事業部 事業部長 木下 史彦 氏

Page 9: Toolbox of Agile Software Development

俺 (たち) のやり方と 俺たちの道具をご紹介

Page 10: Toolbox of Agile Software Development

俺たちの道具

などなど

Page 11: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

俺 (たち) のやり方

Page 12: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

マッピング (だいたい)

Page 13: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

今回のお話しするコース

Goal

Start

Page 14: Toolbox of Agile Software Development

10年の大きな変化

•仮想化技術 •ソーシャルコーディング •クラウド

Page 15: Toolbox of Agile Software Development

やり方と 道具のについて ひとめぐり

Page 16: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

スタートStart

Page 17: Toolbox of Agile Software Development

立ち上がりにも使える道具

Page 18: Toolbox of Agile Software Development

10年前

• プロビジョニングツールによる手順化

• ゲストOSへのインスコ

現在1.共有 2.実行1.共有 2.実行

• ドキュメントや独自スクリプトによる手順化

• ホストOSへのインスコ

Page 19: Toolbox of Agile Software Development

カジュアルに壊せる時代> vagrant destroy > vagrant up

Page 20: Toolbox of Agile Software Development

悲しみの連鎖を断ち切る

• ORA-XXXXX: 無効な○○です

• 仮想化 (Vagrant) と Provisioning (Ansible)

• 偉大な先人によるバッドノウハウのコード化

https://twitter.com/kenchan/status/425613696094593024

Page 21: Toolbox of Agile Software Development

環境破棄は善http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%99%E3%83%AB%E3%81%AE%E5%A1%94#mediaviewer/File:Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_(Vienna)_-_Google_Art_Project_-_edited.jpg

Page 22: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

まずはミーティングStart

Page 23: Toolbox of Agile Software Development

日々の道具

Page 24: Toolbox of Agile Software Development

ミーティング全員参加のすすめ• 期待する振る舞いの全員理解により、後の Pull Request のレビューにおいて、仕様と実装のチグハグがないかの観点を含められる

• 打ち合わせにできるだけ全員同席をして、伝言ゲームや知識の偏りを減らしたり、要求に対する早い段階での提案を気づいたメンバーが早い段階でフィードバックできる

• お客様に覚えて頂いて、人対人の信頼関係を作る

• 明確なフロントはできるだけ作らない

Page 25: Toolbox of Agile Software Development

見積りと設計• 見積りと設計はだいたいイコール

• Done の定義

• コードを読めなければ書けない、書けなければ見積もれない (プログラミングの読み書きそろばん)

• “コードにしたものとしなかったことがプログラミング” by @kakutani (Developer Summit 2012)

• どう実装するかを議論したのちポイントを見積もる

Page 26: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

プログラミング~レビュー

Goal

Start

Page 27: Toolbox of Agile Software Development

便利なハイパーリンク

thx @ffu_

Pull Request を出したら URL を Pivotal Tracker の Activity に貼っておくとストーリーからGitHub での実装状況を辿ることができて、たいへん便利。おすすめ。

Page 28: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

レビュー~マージ

Goal

Start

Page 29: Toolbox of Agile Software Development
Page 30: Toolbox of Agile Software Development

Pull Requestのマージ

• PR は master に入る前の最後の機会 • master に入った後のコード読んでいますか?

• “永和のmasterには変なコードがない” by @akiinyo • https://speakerdeck.com/akiinyo/puroguraminguwei-jing-yan-nantebu-kunai-ritanzu#15

• LGTM画像にするhttps://f.cloud.github.com/assets/1606673/2307945/6ef72b40-a2b5-11e3-9708-9a7e6f7486a8.png

Page 31: Toolbox of Agile Software Development

‘‘コードの一行、 血の一滴’’

レビューの心得

Page 32: Toolbox of Agile Software Development

• だいたい 内野の LGTM :star: 2つでマージ • 不安が少なければ1つ、多ければ3つ以上

• http://www.lgtm.in • レビューに楽しさを

• LGTM画像にするhttps://f.cloud.github.com/assets/1606673/2307945/6ef72b40-a2b5-11e3-9708-9a7e6f7486a8.png

Looks Good To Me

Page 33: Toolbox of Agile Software Development

http://www.lgtm.in

• Looks Good To Me • レビューに楽しさを • ご利用は文化にご相談ください

• LGTM画像にするhttps://f.cloud.github.com/assets/1606673/2307945/6ef72b40-a2b5-11e3-9708-9a7e6f7486a8.png

Page 34: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

デプロイ~テスト

Goal

Start

Page 35: Toolbox of Agile Software Development
Page 36: Toolbox of Agile Software Development

Acceptとcurrentの問題• 1週間の Velocity 10 pt のチームの current に 30 pt 溜まっています。4週間で 60 pt を終わらすことができるでしょうか?問題

• current に溜めない

• Accept 待ちの滞留と、同時アサインで進まない滞留

• 基本はひとつづつ、ひとつづつ

• 他の人がその作業をすることができなくなることも!

• 顧客の Accept に限らず、開発者の Accept があってもいい

Page 37: Toolbox of Agile Software Development

!開発環境の構築 レビュー マージ

デプロイ & デベロッパー テスト

カスタマー テスト

本番デプロイ リリースモニタリング

ミーティング!

プログラミング

リリース~モニタリング

Goal

Start

運営

Page 38: Toolbox of Agile Software Development

プログラマブルなインフラ

Page 39: Toolbox of Agile Software Development

DevOpsに向けて• 本番環境で、予期しない SQL くぁwせdrftgyふじこl

• 予期しない SQL にインデックスは貼れない

• そこでリードレプリカですよ!

• 必要なときに必要なだけデータベースサーバーを用意できる。そう RDS ならね。

• SDK! SDK! SDK!

Page 40: Toolbox of Agile Software Development

‘’壊れてよい おもちゃを用意する’’

印象に残った言葉シリーズ

Page 41: Toolbox of Agile Software Development

環境破棄は善http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%99%E3%83%AB%E3%81%AE%E5%A1%94#mediaviewer/File:Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_(Vienna)_-_Google_Art_Project_-_edited.jpg

Page 42: Toolbox of Agile Software Development

自分たちのやり方を 自分たちで決めて作っていける(株)永和システムマネジメント

アジャイル事業部 事業部長 木下 史彦 氏

Page 43: Toolbox of Agile Software Development