挑戦の道具としてのチケット駆動開発(デブサミ用短編)

Preview:

DESCRIPTION

デブサミ2013発表資料(14-B-5)「挑戦の道具としてのチケット駆動開発」 #devsumi #devsumiB 後半の小川さんの発表はこちら http://www.slideshare.net/akipii.oga/devsumi-ogawa-20130214

Citation preview

Summit

Developers

Developers Summit 2013 Action !

チケット駆動開発の本質 ・ 挑戦の道具としてのチケット駆動開発

・ チケット駆動開発のフレームワーク

小川明彦 NRIネットコム(株)、XPJUG関西 副代表

14-B-5 #devsumiB

阪井 誠 (株)SRA、ソフトウェア技術者協会、RxTstudy

挑戦の道具としての チケット駆動開発

株式会社SRA 阪井 誠

自己紹介 • 阪井誠(さかば、Twitter: @sakaba37)

• ソフトウェアプロセス、チケット駆動開発(TiDD)、 アジャイル開発に興味を持つ「プロセスプログラマー」

• 研究開発から現場まで、論文、書籍、雑誌など

3

4

TiDDの基本、 障害管理、

構成管理、 Mantisの運用例、

障害管理からTiDDへ、

プロジェクトを成功に導く、

アジリティの向上、 アダプタブルWF開発、

アジャイルブームを超えて、 高度な運用方法、

FAQとアンチパターン集、 テーラリング、 用語集

本の内容と発表内容

質問

Q: 新しいソフトウェアを開発してますか?

A: ソフトウェア開発とは、未だ実現されていない ものを世に生み出す仕事です

– 新しいインフラ

– 新しい仕様

– 新しい品質

ソフトウェア開発は、常に挑戦!

5

ソフトウェア開発は常に挑戦

• 環境、フレームワーク、ユーザーインタフェース、ビジネスは日々変化している

• 開発中にノウハウ、アイデア、気づきを蓄積し、共有し、活用しないといけない

解決法の一つとして、チケット駆動開発を挑戦の 道具として活用する方法を提案します

6

挑戦の道具としてのチケット駆動開発

• 挑戦時の履歴をその後の開発につなげます

• 開発者の気付きをチケットに記録します

• 協調作業を支援してプロジェクトを活性化します

7

ハーケン(釘) カラビナ(止め具) ザイル(ロープ)

発表内容 • モチベーション

– ソフトウェア開発は常に挑戦

• チケット駆動開発 – チケットによる管理

– ツール連携による自動化

– チケットによるコミュニケーション

• 挑戦の道具としてのチケット駆動開発 – 挑戦の道具に必要なもの

– チケット駆動開発のテーラリング

– 注意すべき点

8

チケット駆動開発

• ITS(BTS)のチケットで障害、課題、タスクを 管理して個人のタスクとプロジェクトを管理する

• 構成管理、Wiki、継続的統合などツールを チケットに連携させて自動化する

• プロジェクトの情報をチケットに関連付けて 管理することで、コミュニケーションを支援する

9

チケットによる管理

チケットシステム(ITS)

親チケット

継続チケット

関連チケット

プロジェクト

障害・課題・タスク

ステータス

種類とロール毎のワークフロー

レポート、カスタムクエリ、

ロードマップ、ガントチャート等で参照できる

チケットによる管理

チケットシステム(ITS)

親チケット

継続チケット

関連チケット

プロジェクト

障害・課題・タスク

ステータス

種類とロール毎のワークフロー

レポート、カスタムクエリ、

ロードマップ、ガントチャート等で参照できる

ユーザ権限(ロール)と

チケット種類(トラッカー)ごとに

ステータスの現在・移行先を指定する

ステータスの移行先

現在のステータス

ツール連携とチケット

リビジョン リビジョン リビジョン リビジョン

バージョン管理

CIツール チケットシステム(ITS)

親プロジェクト

親タスク/ストーリー

タスク

継続タスク

関連タスク Wiki

プロジェクト

ステータス

チケットの種類とロール毎のワークフロー

参照

実行結果

チケット 参照

連携

参照

連携

構成管理、Wiki、CIツールなどを チケットに連携

チケットによるコミュニケーションの支援

リビジョン リビジョン リビジョン リビジョン

バージョン管理

CIツール チケットシステム(ITS)

親プロジェクト

親タスク/ストーリー

タスク

継続タスク

関連タスク Wiki

プロジェクト

ステータス

チケットの種類とロール毎のワークフロー

参照

実行結果

チケット 参照

連携

参照

連携

議論や更新を

メール、RSS、

プラグインで

通知できる

チケット駆動開発の効果

ツールを有効活用してプロジェクトの負担を減らす

>>> ツールが想定するプロジェクトに近づく

過去:

– 履歴の蓄積(経緯の確認、ノウハウの利用)

現在:

– 障害、課題、タスク、実行結果の管理

– 情報共有、自動化、コミュニケーション

未来:

– 計画、備忘録、リスクの見える化

14

発表内容 • モチベーション

– ソフトウェア開発は常に挑戦

• チケット駆動開発 – チケットによる管理

– ツール連携による自動化

– チケットによるコミュニケーション

• 挑戦の道具としてのチケット駆動開発 – 挑戦の道具に必要なもの

– チケット駆動開発のテーラリング

– 注意すべき点

15

挑戦の道具に必要なもの

• 新しい環境、実装方法、アプリケーションに挑戦するには、以下の点を考慮しないといけない

– 気づいたことが共有されること

– 少ない経験が蓄積されること

– 蓄積した経験が生かせること

ふさわしいチケット駆動開発の運用方法が必要

16

テーラリング1:

気づいたことが共有されること

• チケットが容易に起票できるようにする

– 起票の権限をメンバーに与える

– ワークフローの制限を少なくする

• チケットの種類や属性を増やしすぎない

– 考えなくてよいようにする

– 記入項目を減らす

• リアルタイムに共有してモチベーションを高める

– メール、RSS、Eclipse 用のMylynプラグイン

– コミュニケーションのタイムラグ減ると利用が増える

17

テーラリング2:

少ない経験が蓄積されること

• チケット駆動を習慣づける

– 基本的な教育

– メリットを感じさせる

– 備忘録としての利用

• 利用に向けた支援

– カスタムレポートの用意など環境整備

– アドバイスを目的としたチケットの棚卸し

– ルールの整備 (“No Ticket, No, Commit!!”をどこまで守るか、など)

18

ハーケン(釘) カラビナ(止め具) ザイル(ロープ)

テーラリング3:

蓄積した経験が生かされること

• 経験の種類に応じて整理する

– 一度だけの作業はチケットを起票する

– 手順やチェックリストはWikiにまとめる

• 書きっぱなしのチケットを防ぐ

– 完了条件を明確にする

– 適切な棚卸しをする

• 発想力・提案力の向上

– 棚卸しの頻度を増やしすぎない

– 自律的なチーム

19

自律的なチーム

• サーバントリーダーシップ

– コマンドコントロールをやめ、 メンバーが能力を生かせるように支援する

• マクロマネジメント

– マイクロマネジメントをすると依存するようになり、 自律性が失われる

• 濡れぞうきんはしぼらない

– 本田宗一郎氏がIIJ鈴木幸一社長に送った言葉

– ガチガチの管理からは柔軟な発想は生まれない

20

21

注意すべき点

• ルーチンワークでないと登録やチェックを忘れがち

⇒ 粒度を小さくしてリズムを生む

• 棚卸で実施漏れが防げるが自主性も大切!

⇒棚卸のバランス「チケット見てる?」

• クローズしにくいもの (担当がない、チェックリスト的)

⇒課題、リスクに多い。棚卸し、 Wikiを利用する

• 気が付かないことは実施できない

⇒ 自由な雰囲気、経験者への依頼、情報収集

おわりに

• ソフトウェア開発は常に挑戦!

• チケット駆動開発

– プロジェクトの情報を集中管理

– 自動化やコミュニケーションの支援ができる

• 挑戦の道具としての利用

– 気づきや経験を蓄積して活用

– 自由で自律的なチーム作りが重要

=> ぜひ皆さんも活用してください

22

I suggest your Next Action!

24

チケット駆動開発で共に挑戦しよう!

どんな危険があるかを確認し、

道具を準備して使いこなし、

仲間と助け合って制覇しよう!

It’s your turn.

挑戦の道具としての

チケット駆動開発

おわり

Recommended