SEMAT : Software Engineering Method and Theory(ソフトウェアエンジニアリングの手法と理論)とは、2009年9月に、人々のソフトウェア開発手法への関わり方を抜本的に変更する時期に来ていると感じた3人、Ivar Jacobson、Bertrand Meyer、Richard Soleyによって創設されたソフトウェアエンジニアリングの共通理解に向けた団体および運動です。その大きな成果が「SEMAT Kernel」(Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon, Ian Spence, Svante Lidman, The Essence of Software Engineering: The SEMAT Kernel, Communications of the ACM, vol.55, no.12, pp.42-49, December 2012. ACM Queue, vol.10, no.10) であり、ソフトウェアエンジニアリングの手法やプラクティス等を共通に記述、対話、理解、発展させるための基盤を目指したものとなっています。

 本稿は、「SEMAT Kernel」を、SEMAT Japan Chapterの有志(鷲崎弘宜, 平鍋健児, 川口恭伸, 小林展英, 吉村健太郎)が翻訳したものです。


 ソフトウェア開発に携わる人なら誰でも、それが複雑でリスクの高い仕事であること、そして関わる人々がよりよいソフトウェアにつながる新しいアイディアをいつでも探していることを知っている。幸運なことに、ソフトウェアエンジニアリングはまだその若年代にあり、毎年毎年ベストプラクティスの中にイノベーションと改善を見てとれる成長過程の専門分野である。それは例えば、リーンとアジャイルの考え方(lean and agile thinking)がソフトウェア開発チームにもたらした改善と恩恵を見てみれば分かる。

 ソフトウェア開発チームが成功するためには、動くソフトウェアシステムをすばやく提供すること、ステークホルダーを満足させることや、リスクに対処すること、さらには仕事の仕方(way of working)を改善することのバランスをうまくとらなくてはならない。

 そのためには、現在の仕事の仕方と、採用しようとする新しいアイディアのギャップを橋渡しする効果的な思考フレームワーク(thinking framework)が必要である。この記事は、そのような思考フレームワークを「アクション可能なカーネル(actionable kernel)」の形で提示することで、様々なリスクのバランスをとり、仕事の仕方を改善しようとするチームを支援する。

 このカーネルの構築、すなわち「ソフトウェアエンジニアリングのエッセンス(the essence of software engineering)」は、「ソフトウェアエンジニアリングの方法論と理論(Software Engineering Methods and Theory; SEMAT)」の行動宣言(call for action)(図1)に触発されたものであり、それに対する直接の回答でもある。そして、ソフトウェアエンジニアリングの再定義に向けた小さな一歩でもある。

図1●我々が仕事で扱うこと
図1●我々が仕事で扱うこと
[画像のクリックで拡大表示]

 SEMATは2009年9月に、人々のソフトウェア開発手法への関わり方を抜本的に変更する時期に来ていると感じた3人、Ivar Jacobson、Bertrand Meyer、Richard Soleyによって創設された [3,4,8] 。彼らは行動宣言を書き、いくつかの致命的な問題を特定し、なぜ行動が必要かを説明し、そして何が必要なのかを示唆した。その行動宣言を以下に示す。

 現在のソフトウェアエンジニアリングのいくつかの分野では、未成熟なプラクティス(immature practices)に苦しめられている。

 具体的には、以下の問題を含む。

  • 言葉の流行が、エンジニアリングの一分野というよりファッション業界のようである。
  • 堅固で広く受け入れられるような理論的基礎を欠いている。
  • 非常に多くの方法論(methods)とその派生であふれ、それらの違いはほとんど理解されず作為的に強調されている。
  • 信頼できる実験的評価(experimental evaluation)と妥当性確認(validation)を欠いている。
  • 産業界の実践(industry practice)と学界の研究(academic research)の乖離。