無料ブログはココログ

« [#TiDD] アジャイル開発が注目される理由 | トップページ | リスクを考慮した段取りで成功に導く »

[#TiDD] チケット駆動開発の背景にある思い

チケット駆動開発は、BTS(障害管理ツール)の「チケット」と呼ばれる障害票に相当するしくみを使った開発の方法です。
 
チケット駆動開発は、チケットを中心にプロジェクトを運営することで、情報共有を進め、コミュニケーションやトレーサビリティの向上し、作業や手順の漏れを防止し、ツール連携によって自動化する、など多くの特徴があるほか、メンバーの協調性を高めて自律的な組織作りに役立ちます。チケット駆動開発には、多くのバリエーションがあり、様々なプロジェクトに適用可能です。

このチケット駆動開に興味を持ったのは、そのバリエーション豊富があったからでしょう。普通の上場論なら「こうなさい」というのがあって、それに従えばそれなりにできるのですが、チケット駆動開発はちょっとちがいます。
 
もちろん「No Ticket, No Commit!」といった基本的なルールあるのですが、それを教場的に守ったからといってうまくいかない。もちろんチームでバラバラではまずいですが、「ルールだから」実施すっるのでは本当の効果が出ません。開発者が本当に必要と思われる時に実施することで、チケットの記述にも注意するようになり、プロジェクトが回りだすのです。
 
そこにはこれまでのプロジェクトに対する問題意識や、プロジェクトはどうあるべきかという考え方が必要です。そこで、以下の3つの言葉でチケット駆動開発の背景にある思いを説明します。

- 紺屋の白袴
- チームの能力を最大限に発揮する
- 事件は現場で起きている

このような思いを力していただいた上でプロジェクトの問題を見極め、その解決法としてチケット駆動開発を利用すれば、プロジェクトはより良いものになると思います。

紺屋の白袴

白い生地を紺色に染める「紺屋」は、いつも忙しいので自分の白い袴を紺色に染める暇がない、という様子を表した言葉です。

ソフトウェア開発の目的は、ユーザの業務を自動化し、効率的で、ミスが少なく、負担の少ない環境を実現して、ユーザがより高度な仕事ができるようにすることです。しかし、その開発を行なっている私たちは、帳票を中心としたあまり自動化されていない環境で、コンピュータの支援も受けず、神経をすり減らしながらソフトウェアを開発してきました。

古くからコミュニケーションの重要性が語られながらも、関係者に行き渡るには時間のかかる報告書の作成に、多くの時間を費やしています。また、作業中に突然会議が招集され、しかもその議論の内容は残っていないか、結果しか残っていないということもあるでしょう。さらに、会議だけでは細かな情報共有が難しいことから、担当者同士の非公式なやり取りで開発が進んでしまうこともあるでしょう。

チケット駆動開発は、チケットを中心に、リアルタイム性の高い情報共有とコミュニケーションが可能になるなど、プロジェクトの効率化します。チケットを介した作業の依頼や問題点の指摘のほか、解決に至るまでの議論がチケットに記録できます。また、チケットと関連付けて構成管理が行われますので、トレーサビリティが向上し、いざというときにソースコードの修正に至った経緯を確認することができます。

ツールを導入することが目的ではなく、プロジェクトを改善するために、ツールを活用してそのような効果を利用するのです。

チームの能力を最大 限に発揮する

これはプロジェクトファシリテーションを実践されている前川氏の言葉です。ソフトウェア開発はチームで行うべきものです。個人の能力を高めると共に、お互いに協力し、補いあえるようなチームづくりが必要です。

ソフトウェア開発は、それまで実現できなかったことをチームでソフトウェアを開発することで実現するクリエイティブな仕事です。しかし、実現に際しては、雑多で細かな作業があり、忘れてはいけない作業も数多く存在します。

開発者は、間違いや漏れがないかを確認しながら、作業を慎重に進めなければなりません。その方法は人それぞれで、ノートに書く人、付箋をディスプレイに貼る人、自分にメールを送る人、それぞれバラバラに作業をしていないでしょうか。

チームにおいてはお互いに協力できる環境が必要です。チームのメンバーがプロジェクトの状況やお互いの作業の状況を知り、必要に応じて手分けできる環境。そして、必要なチェックの漏れを減らす仕組みが必要になります。

チケット駆動開発は作業をチケットに記録することで、チームがこれから実施すべき作業のチケットや自分の担当している作業のチケットなど様々な視点で確認できます。

このような仕組みで、雑多な作業の管理が容易になります。また、チーム内で作業の達成状況を共有できますので、遅れている担当者の作業を分け合うことも容易で、作業の漏れや遅れを減らせます。

必ずチェックを実施したい作業は、ワークフローを利用すれば、必ず責任者を経由することも可能です。このように、個人の負担を減らすだけでなく、チームが協力することで能力を最大限に発揮できるような環境を提供します。

事件は現場で起きている

映画「踊る大捜査線THE MOVIE」では「事件は会議室で起きてるんじゃない。現場で起きてるんだ!」という青島刑事の言葉がありましたが、ソフトウェアの世界でも同じことが言えます。

ソフトウェア工学の研究が始まった1980年頃には、産業界とアカデミア(学会)の交流が不足していることが問題とされていました。その後、アカデミアの人たちと、産業界、特に管理部門や研究部門の人たちが歩み寄り、理論的な研究だけでなく、より実践的な研究が行われるようになるなど、その距離は縮まりました。

しかし、ソフトウェア工学の研究を実践したのは、プロセス改善や研究のために人や計算機のリソースを割くことが可能な管理部門や研究部門の人たちが中心でした。このため、研究成果が現場で積極的に活用されることはあまりなく、管理を目的としたいわば義務として導入されました。

その後、計算機リソースの低価格化に伴い、高度なユーザインタフェースやフレームワーク、様々なツールが利用可能になり、開発現場においてもソフトウェア工学などの研究成果の利用が可能になりました。ソフトウェア開発の生産性は大きく向上し、より高機能で使いやすいソフトウェアが安価に提供できるようになりました。

この大きな変化は、ソフトウェア開発を近代化して大きく変える可能性を追っている反面、旧来の開発に縛られている組織では、細かな作業の管理が増えることで開発者への負担が増えてしまう可能性があります。

チケット駆動開発は、チケットを中心にツールによる自動化を進めます。ソフトウェアの多くの技術を現場にもたらすだけでなく、それらを連携させることで開発者の負担を減らし、ツールを使った自律的な管理を促すのです。

開発者の負担を減らすことは単に生産性を向上するだけではなく、開発者の能力を高めます。管理され、強制され、義務感を感じながら行う作業は、内向きで、保身的で、こなし仕事になってしまいます。そこには交換可能な人月単位の人の見方・受け止め方があるからです。しかし、開発者の負担を減らしつつも管理のための情報が与えられたなら、自主的な管理が進み、自律的で、積極的にアイデアを出し、助け合うような組織が生まれる可能性があります。

まとめ

チケット駆動開発は、これら以外にも多くの可能性を持つ開発法です。しかし、チケット駆動開発を導入したからといって、必ずしもプロジェクトが成功する訳ではありません。チケット駆動開発には様々なバリエーションがあり、プロジェクトにふさわしい実施方法が必要だからです。背景にある思いを踏まえたうえで問題を見極めて、より良いプロジェクトを実現する、それがプロジェクト成功の秘訣だと思います。

« [#TiDD] アジャイル開発が注目される理由 | トップページ | リスクを考慮した段取りで成功に導く »

チケット駆動開発」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/138594/55083881

この記事へのトラックバック一覧です: [#TiDD] チケット駆動開発の背景にある思い:

« [#TiDD] アジャイル開発が注目される理由 | トップページ | リスクを考慮した段取りで成功に導く »