[#TiDD] チケット管理システムはプロセス構築のUNIX
皆さんはUNIXをご存知でしょうか?私はチケット管理システムに、シンプルで柔軟なUNIXのような大きな可能性を感じています。
1. UNIXのフレームワーク
Linuxなら知っている、とか、BSDでしょ、と言われる方もおられるでしょう。UNIXとはMULTICSの反省からAT&Tのベル研究所で生まれたオペレーティングシステム(OS)です。軽量なOSでツールの組み合わせによって様々な作業ができる様になっていて、テキスト文書の処理はもちろん、当時としては高度な技術であった電子製版や言語処理が容易に行われる様になっていました。
その先進性は多くの開発者に評価され、バークレイ大学に引き継がれBSDが生まれ、やがてオープンソースになりました。また、学習用OSとしてMINIX、さらにLinuxが生まれました。
その大きな特徴はテキスト中心のツール群と標準入出力のフレームワークです。ツールは入力テキストを並べ替えるsortや文字列を検索するgrepのように単純なツールから、ストリーム編集するsed、構文解析ツールyacc、さらにはmailに至るまで多くの機能がありました。
これらのコマンドを実行する際のプロセスには標準入力、標準出力、標準エラー出力というファイルディスクリプタを持っていて、パイプという簡単な仕組みで、プロセス間の標準入出力をつなぐ事ができました。MULTICSのような巨大で複雑な仕組みではなく、小さなツールの組み合わせによって柔軟で多様な処理が実現できる様になっていたのです。
2. チケット管理システムのフレームワーク
チケット駆動開発で用いるチケット管理システムは、このUNIXに似ています。BTS/ITSなどのチケット管理システムはそれ自体も障害やタスクを管理するシンプルなツールです。しかし、そこで用いられるチケットがUNIX標準入出力の役割を果たして、多くのツールの連携を可能にするのです。チケット管理システムに内蔵するwikiはもちろんの事、メール、バージョン管理ツール、CIツールなど多くのツールと連携可能です。
ここで、注目すべきはこれらのツールが、ソフトウェア開発プロセスの構成部品である事です。チケット自身はワークフローを実現しますし、Wikiやメールはチケットと共にグループ作業を可能にします。またバージョン管理ツールとCIツールは、構成管理や継続的統合といった作業のプロセスを支援するツールです。
これまで、ソフトウェアプロセスの構築は、プロセス標準をドキュメントに記述して人間が実行することが当たり前に行われてきました。しかし、チケット管理システムを利用する事で、これらがツールの組み合わせによって自動化される様になります。チケット管理システムをフレームワークに、プロセスの部品を追加して目的の自動化プロセスを構築できるのです。
それらは単純な組み合わせだけでなく、コードレビューやエクセル連携をはじめとするプラグインによる拡張や、webAPIによる利用も可能です。これは単なる障害管理ツールではなく、最近の呼び方であるプロジェクト管理ツールの概念すら超えて、プロセス構築環境と言っても良いかもしれません。
チケット駆動開発の特徴は軽量なプロセスです。これまでの管理シートやチェックリスト、手作業によるテストやビルドなど、面倒で複雑なプロセスが自動化されます。それは、決まりきった仕組みではなく、プロジェクトに合わせて柔軟な構築が可能です。そこには、シンプルで柔軟なUNIXが発展したような大きな可能性を感じます。
3. まとめ
UNIXはOS(オペレーティングシステム)です。しかし長い間、本格的な商用データベースが利用できなかったUNIXは、汎用機のユーザーからはソフトウェア開発環境に過ぎないと見られてました。しかし、その後に機能を段階的に加えていき、コンパクトながらも多機能なOSに成長しました。
チケットシステムも長らく障害管理ツールとして認識されてきました。しかし、その機能は徐々に拡大されて、いまやプロセス構築を目的として広く利用されています。多くの利用方法があり、適用範囲もソフトウェア揮発だけでなく業務システムにまで広がっています。もし、チケット管理システムを未だに障害管理ツールとしてだけ使われているのなら、ぜひあなたのプロジェクトのより良いプロセス構築に利用してください。
« [#TiDD]本を書く際の注意点(プロセス編) - 「チケット駆動開発」の経験から - | トップページ | [#TiDD] チケット駆動環境のコンポーネント »
「チケット駆動開発」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- [#TiDD] ポケモンGOにチケット駆動開発のポイントを学ぶ(2018.05.01)
- [#TiDD] プロジェクトを成功させるチケット管理(2017.07.02)
« [#TiDD]本を書く際の注意点(プロセス編) - 「チケット駆動開発」の経験から - | トップページ | [#TiDD] チケット駆動環境のコンポーネント »
コメント