PR

カーネルの利用

 カーネルは、ソフトウェアプロフェッショナルの日々の活動の中で様々に用いられる。例えば以下が挙げられる。

  • イテレーション(またはスプリント)の実行において。
  • アイディアから製品までの開発全体の実行において。
  • 大きな組織や複雑なソフトウェア開発への取り組みへの拡大において。

 カーネルは最初に、「イテレーション計画」において適用できる。この適用を、チームがカーネルを用いてできることの例として説明する。他の適用は、十分に書籍『The Essence of Software Engineering - Applying the SEMAT Kernel』[6]でカバーされている。

 この例ではある企業が、形式化されたプロセスをほとんど持ち合わせていない状況を想定する。これまで同企業は、経験豊かなチームにおけるスキルを持ち創造的な個々人に頼ってきたが、現在、大きくなり新たな従業員を多くを雇いつつある。新たな従業員のほとんどは、大卒の新人であり、プログラミング言語などの技術的によいスキルを持つが、ステークホルダと協働し要求について同意を取り付けるといったソフトウェア開発上の様々な側面に不慣れである。

 同企業にはアイディアや写真、コメントをユーザが共有し閲覧できるモバイルソーシャルネットワークアプリケーションを開発するためのチームがあるとする。チームは当初、カーネルに詳しいスミス(チームリーダ)とトムによって立ち上がった。その後、その仕事について初めてで、カーネルを知らないディックとハリエットという2名の開発者がチームに加わった。チームリーダのスミスにとって「成功」とは、機能やスケジュール、品質以上のものを意味する。同チームは開発をイテラティブ(iterative; 反復的)に進めた。

 ここで、イテレーションの計画を以下のように考えることができる。

  1. 現在地の特定: 取り組みの現状を分析する。
  2. 行き先の決定: 次のイテレーションにおいて重視する事柄と目標を決定する。
  3. 行き方の決定: 目標達成のためにチームがすべきタスクについて同意する。

カーネルによるチームの現在地の特定

 スミスや彼のチームが開発を始めて6週目であるとする。彼らは既にステークホルダに対して初期のシステムデモを示し、ステークホルダは喜んで価値あるフィードバックを与えてくれている。しかし、システムはまだユーザが使える状態にはない。

 ここで、カーネルを様々な方法で活用できる。もしアルファの状態を示すカードを用いている場合は、以下を一通り進められる。

  1. 各アルファのカードを、テーブル上で横一列に、左端に最初の状態、右端が最終状態となるように並べる。
  2. 各状態を一通り読み進めて、チームにおいて当該状態に達しているかどうかを問いかける。
  3. もしある状態に達している場合は、当該状態のカードを左側に寄せる。これを、チームが未到達の状態のカードに至るまで続ける。
  4. 未到達の状態のカードおよび未検討の状態のカードを右側に移動させる。図5において、スミスのチームが達した状態のカードは左側に、達していない状態のカードは右側に位置している。簡単のため、図5ではカーネルの3つのアルファのみを示している。
図5●チームは現在地の特定にアルファを使用する
図5●チームは現在地の特定にアルファを使用する
[画像のクリックで拡大表示]