[#TiDD] チケット駆動開発は小規模プロジェクトの憂鬱をきっとなくしてくれる。
ソフトウェア工学では、古くから大規模ソフトウェアが研究対象とされてきました。しかし、実は80年代から小規模であっても困難なソフトウェア開発は存在していました。当時から規模が小さいプロジェクトでは、大規模開発と同じように開発環境や、各種管理、体制作り、による支援を行おうにも、小規模開発の予算では負担が大きく実施できなかったので、混乱した小規模開発プロジェクトは一時しのぎの対応が行われるだけで、放置されてきました。
その問題はいまだに解決されないまま、小規模で多機能なソフトウェア開発は増え続けています。私は、その解決法の一つとして、私はチケット駆動開発に期待しています。その理由を過去をふりかえりながら説明したいと思います。
80年代では、10人程度以下であれば1年ぐらいかかる開発規模であっても、小規模といわれていました。当時の定義で小規模開発であっても、やはり難しい開発は存在しました。私の最初に経験したプロジェクトは、未完成のOS上で動作する、TeXのような複雑なソフトで、しかも使用上の不具合を含む前バージョンと同じ動作を求められたプロジェクトでした。未だにこのプロジェクトを超える混乱はありません。しかし、そのような状況でたとえ開発期間が延びたとしても、当時の大規模システムの開発の問題に比べれば経営への影響は小さく、あまり問題にされませんでした。
90年代になると、オープンシステムやインターネットが普及し、小規模開発が徐々に増えてきました。このころは、VisualBasicに代表されるようなコンポーネントをベースとしたソフトウェア開発によって、多機能なソフトウェアが増えました。また、データベースも一般に利用されるようになり、多くの業務システムが開発されました。このような環境の変化はダウンサイジングと呼ばれ、これまでは汎用機で行われていた大規模システムが切り出されて、たくさんの小規模開発が行われました。
当時の問題を95年のソフトウェアシンポジウムで最初に発表しました。当時のスライドの変換が面倒だったので、同じ研究内容を含んでいる博士論文のスライドを公開しました。
この論文では、開発中に起きる様々な問題はプロセスの変更に現れること、その内容は作業報告書に記載されていること、それを集めれば有効なノウハウが得られ、標準プロセスに組み込むことでフロントローディングできることを書いています。
2000年代になっても、環境、実現方法、ドメイン知識という基本的な問題のパターンは変わっていないと思います。しかし、フレームワークをはじめとする開発環境の整備によって、小規模開発であっても多機能で複雑なシステムが開発できるようになり、開発の規模は徐々に小さくなりました。
もちろん、90年代にも数人月の開発はありましたが、オフコンと呼ばれる主に特定業務向けのシステムや、スプレッドシートのマクロなどが中心のもので、自由度は限られたものでした。現代なら、数人月もあればちょっとしたWebシステム、しかもDBを含む立派なシステムが可能です。そして、インターネットの裾野の広がりと共に、多くの小規模システムが開発されるようになりました。
80年代から大規模システムと同様の支援は困難でしたが、今のように小規模になってはほとんど不可能でしょう。そのような中で可能なのは、コンピュータによる支援だと思います。ソフトウェア業界は、紺屋の白袴で、ソフトウェア開発のためにあまりコンピュータを使ってきませんでした。しかし、今となってはもうコンピュータの支援を使わざるを得なくなったと思います。
実はコンピュータによってソフトウェアを効率よく開発する試みはCASE(Computer Aided Software Engineering)と呼ばれ、80年代からありました。しかし、当時は1億円以上のミニコンや、2千万円ほどするワークステーション上のものか、はるかに高価な汎用機上のものでした。大規模開発でも中々困難な開発環境を今の小規模プロジェクトに導入できるわけがありません。
そこで、期待しているのがチケット駆動開発(TiDD)です。チケット駆動開発で用いるBTSには、WBSのようなソフトウェア工学的な要素や、構成管理、テスト管理などのツールとの連携が可能です。そして何より、備忘録としてちょっと使い始めるなどという軽い使い方からはじめ、見える化やコミュニケーションの道具として用いる、というようにスモールスタートが可能で、スケーラブルです。それぞれのプロジェクトの状況にあわせて実施できることは、小規模プロジェクトに向いていると思います。
チケット駆動開発によって、いつか小規模プロジェクトの憂鬱がなくなることを期待しています。
# A man takes a mustard seed and plants it in his field.
# The plant grows and becomes a tree,
# and the birds make their nests in its branches.
# Luke 13.19(TEV)
« [#TiDD] チケット駆動開発の本質は任せる(楽をする)こと | トップページ | ブルーレイDIGAの使いやすさに学ぶ »
「チケット駆動開発」カテゴリの記事
- 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] チケット駆動開発の本質は任せる(楽をする)こと | トップページ | ブルーレイDIGAの使いやすさに学ぶ »
コメント