PR

 このように行動宣言は、ソフトウェア産業が流行とファッションに陥りやすいという前提を置いており、ある人々には「新しいアイディアへの抵抗」と映ったようである。しかし、それは真実からかけ離れている。この記事および間もなく刊行される書籍(The Essence of Software Engineering Applying the SEMAT Kernel)[6]で見てとれるように、SEMATの支持者は新しいアイディアに敏感である。

 SEMATの支持者が反対しているのは「新しいアイディア」ではない。ただソリューションが流行っているから、あるいは、単なる政治的な理由や同僚からの圧力によって、不適切なソリューションを採用する人々の非リーン(non-lean)、非アジャイル(nonagile)な行動である。

 SEMATは、堅固な理論および検証された原則とベストプラクティスに基づいて、ソフトウェアエンジニアリングを再建するプロセスを支援する。

 SEMATは以下の特徴を備えている。

  • 広く合意された要素からなり、特定用途に拡張可能なカーネルを含む。
  • 技術の問題と人の問題の両方を扱う。
  • 産業界、学界、研究者、そして、ユーザによって支えられる。
  • 要求と技術の変化に応じて追随できるような拡張性を備える。

 SEMATの行動宣言は支持を広く集め、署名者や支持者が増え続けている(http://www.semat.org)。2010年2月には、SEMATの創設者は行動宣言をビジョン声明(vision statement)として発展させた [5]

 このビジョンに沿って、SEMATは2つのゴールに焦点を合わせた: 広く合意された要素からなるカーネルを見つけること、そして、堅固な理論的基礎を定義することである。

 これらの2つの作業は、かなりの範囲で独立している。カーネルやその要素を見つけることは、多数の既存手法の知識を備えた経験のあるソフトウェアエンジニアによる実践的な活動となる。

 対して理論的基礎の定義はアカデミックな研究活動であり、成功といえる結果に到達するには何年もかかるだろう。

共通基盤の「力」

 SEMATの第一歩は、ソフトウェア開発における共通基盤(common ground)を捉えることであった。この共通基盤は、すべてのソフトウェア開発活動において普遍的な必須要素のカーネル(核; kernel)、および、手法やプラクティスを記述するためのシンプルな言語として示される。

 カーネルは、SEMAT のOMG(Object Management Group)に対する提案の中で初めて公開された。図1と図2に示すように、カーネルはソフトウェアシステムを開発するときに「我々が常に仕事で扱うこと)things we always work with)」と「我々が常に行うこと(things we always do)」に関する厳選された少数の概念からなる。

図2●我々が行うこと
図2●我々が行うこと
[画像のクリックで拡大表示]

 「我々が常に持つべきスキル(skills we always need to have)」を定義する活動も進行中である。しかし、これはカーネルの将来のバージョンまで待たなければならない。

 カーネルは単なる概念モデルではなく、以下を提供する。

  • チームにおいて、開発の進捗や取り組みの健全性(health of endeavors)を推論し判断するための思考フレームワーク
  • ソフトウェア開発の手法とプラクティスについて議論、改善、比較および共有するための共通基盤
  • チームが、別々に定義され由来の異なるプラクティスを集めてチーム独自の仕事の仕方を組み立てて、継続的に改善するためのフレームワーク
  • 開発されたソフトウェアや、用いられた開発方法論の品質を評価するためのプラクティス非依存な測定方法を定義する基礎(foundation)
  • 最も重要なこととしてチームがどこにいて、次に何をすべきで、どこを改善すべきかを理解することの支援方法