PR

カーネルは拡張可能である。

 カーネルの他の優れた特徴として、異なるプロジェクト(例えば新規開発、レガシーの拡張、社内開発、オフショア開発、ソフトウェアプロダクトラインなど)を扱えるように拡張できるという点がある。求める方法論を構築するために、ユーザストーリーやユースケース、コンポーネントベース開発、アーキテクチャ、ペアプログラミング、朝会、自己組織型チームといったプラクティスを追加できる。例えば、社内開発や委託開発、セーフティクリティカル組込みシステム開発や事務処理レポートシステム開発のそれぞれに対して、異なる手法を組み立てられる。

 ここでキーとなるアイディアは、プラクティスを分離したということである。産業界で長年にわたり「プラクティス」という言葉は広く用いられているが、カーネルはプラクティスを扱い共有するための特別なアプローチを取る。

 プラクティスは互いに異なり分離されたモジュール単位として表され、チームがその利用を選択できる。この点が従来のアプローチとは異なる。従来のアプローチでは、ソフトウェア開発を互いに区別しがたいプラクティス群の「スープ」として扱っており、チームがある方法論から他へと移るにあたり、良いことも悪いことも投げ捨てるように仕向けてしまう。

カーネルは実践的である。

 おそらくカーネルの最重要な特徴は、実践におけるカーネルの用いられ方にある。従来のソフトウェア開発方法論に対するアプローチは、プロセスエンジニアや品質エンジニアの支援に焦点をあてる傾向にあった。対してカーネルは、ソフトウェアプロフェッショナルの仕事遂行の支援に焦点をあてた実践的で「触れられる(tangible)」思考フレームワークである。例えば、カーネルはカードとして実際に手にとって用いることができる(図4参照)[7][10]。カードは、チームメンバにとって日々のタスクを進めるにあたっての簡潔な備忘録や合図となる。実践的なチェックリストや合図があることで、概念的な議論ではなく、カーネルはチームが日々用いるものとなる。これは、従来のアプローチとは根本的に異なっている。従来のアプローチではしばしば手法の利用よりも方法論の記述が過度に強調され、それを実際に参照するのはチームに加わったばかりの人たちだけという状況になりがちである。

図4●カーネルはカードとして実際に手に取って用いることができる
図4●カーネルはカードとして実際に手に取って用いることができる
[画像のクリックで拡大表示]

 カードは、チームメンバにとっての備忘録となる簡潔な記述を与える。チームメンバはカーネルを、ポケットに小さなカード一組として持ち、簡単に引き出して、開発の現状や仕事の割り当て、メンバ間の協調作業について議論できる。チームはまた、カードを参照することで改善すべき領域を議論できる。このように、カーネルはチームがすべき事柄の長大な記述というよりも、チームが日々行っている事柄の根幹を形成する。