1. SE4BSとは

1.1 SE4BSとは何か 

 SE4BS(Software Engineering for Business and Society) とは、ソフトウェアを「個人・社会・ビジネスのために、柔軟で創造的な未来の価値を生み出すもの」と捉え、その価値を生み出すためにエンジニアリングを適用するコミュニティと,コミュニティが実施する活動,コミュニティが生み出す成果物の総称です。我々の活動の中で進化し続ける成果物としては、ビジネス成功のための知・情・意フレームワークであり、アジャイルマインドであり、価値駆動のためのプロセスであります。

これまでのソフトウェア工学は主として開発の効率化や品質の向上に重点を置き、論理的な考え方や経験、データに裏付けられた様々な手法やプラクティスを積み重ねてきています。しかしビジネスや社会形成上の価値創造が求められるDigital Transformation (DX)時代においては、様々な人々に寄り添う考え方や、新たな社会を構想する捉え方をソフトウェアの企画や開発、運用の中心へと組み入れることの重要性を増すと考えられます。DX時代において価値創造の中心をソフトウェアが担う中で、ビジネスや社会に対するソフトウェア開発者・エンジニアへの期待が高まり、エンジニア自身の価値観や責任がより強く問われるようになることが期待されています。

 我々は上記の問題意識のもと、従来からの工学的な知識体系やプラクティスに加えて、人々の意識や価値観、感情をソフトウェアの開発運用において扱うことの重要性を認識し、DX時代のビジネスや持続可能な社会へ貢献するソフトウェア工学体系を考察する活動Software Engineering for Business and Society (SE4BS)を2019年から進めてきました。

この活動では特に、人の根源的な心的要素として捉えられる知・情・意に基づいたソフトウェア開発運用および周辺の考え方やプラクティスの整理体系化と、価値を軸として開発を進める価値駆動プロセスの例示を進めてきました。

 活動の中で得られた、考察や知見、成果を本Webページはじめ様々な形で皆様に公開し、皆様から得られたフィードバックを活動の中へ取り入れていきたいと思っています。このように皆さんと共に学びを得ながら、SE4BSも進化させていきたいと考えています。

1.2 「知、情、意」とは

前節で述べた通り、未来のソフトウェア工学は、工学的な知識体系やプラクティスに加えて、人々の意識や価値観、感情をソフトウェアの開発運用において扱うことの重要性を我々は認識しました。その際、辿りついた考え方の一つはKantが挙げている「知、情、意」の概念でした。

哲学者Kant は人の根源的な心的要素として以下の「知、情、意」の三つを挙げ,そのバランスによって人々は動いていると説いています。価値駆動のソフトウェアエンジニアリングを考える上で、我々はこの「知、情、意」に着目し、以下のように捉えることにしました。

  • 知(Cognitive, Intelligence): 知覚・知性に基づくロジカルシンキングであり、従来のソフトウェア工学の手法の多くが該当する。
  • 情(Affective, Emotion): 相手や対象に対する感情・情的な過程であり、ソフトウェアを使う人が感じる魅力や、ソフトウェアを導入した企業が得られる価値を考えること。
  • 意(Conative, Will): 道徳的評価に基づく意志やコンセプチュアルシンキングであり、価値を生み出そうとしている主体自身の意志。

この「知、情、意」の概念に基づいたソフトウェア工学が、我々が目指すSE4BSであり、ソフトウェアエンジニアは「知、情、意」のバランスを常に意識して価値駆動開発を行うことが「ビジネスと社会のためのソフトウェア工学」につながっていきます。

1.3 価値駆動開発とは

SE4BSでは価値駆動開発ということを提唱しています。価値駆動開発は、簡単に言うと『要求に対して「なぜ」という問いかけを行い、誰かの価値までたどり着くことで、ソフトウェア開発に重要となる核心を理解し開発に結びつける』ということです。

これまでのソフトウェア開発においては、依頼元から要求を聞き、要求仕様化していきますが、要求に対する意味や根底になる目的などは開発者に伝えられていない状況が多いのではないでしょうか?

また、要求の目的は聞いているが、それが業務担当の方からの要求であり、「お客様にとって本当に必要なのかなあ、使いやすいのかなあ」と思ったりすることも多いのではないでしょうか?

そのような疑問を解消、自信に満ちた開発を行える方法としてSE4BSを提唱しています。

SE4BSはソフトウェア開発の考え方を一新します。その軸足となるのが価値をデザインすることから始める価値駆動の開発方法なのです。

1.4 再現性のある価値駆動開発を世界の当たり前に

世の中の課題をソフトウェアの力で解決してきたシリコンバレーのエンジニア達にとって価値駆動の考え方は当たり前の事かもしれません。しかし、IT産業を製造のアナロジーで捉えて多重下請け構造を作り分業を進めてきた日本企業の中で、必死で頑張っている現場のエンジニアにとっては、「そんな事を言われたって現実とのギャップが大きすぎて無理」と感じるのではないでしょうか?

だからこそ、日本発の再現性のある価値駆動開発を経営、企画、開発全ての階層の当たり前にして、日本が世界で戦える武器にしていく事が必要なのです。 

日本の社会や企業が抱える問題は個々に異なります。しかし、問題の本質は、知識集約社会において最も貴重な資源である人の能力と時間が価値を生む仕事に繋がっていないという事だと考えます。その結果がホワイトカラーの生産性が先進国最低という結果を生んでいる訳です。

企画や営業部門からの要求に基づき開発するという受け身のマインドセットから、エンジニアが視点をあげて価値をデザインするマインドセットに自らを変革することが日本再生の為に必要なのです。 

リーンスタートアップとは異なり、モデルベースで知・情・意のバランスをとりながらチームのシーズ(「意」自分達ができる事、目指す事)をステークホルダーのニーズ(「情」関係者が欲する事、嬉しい事)とすり合せて戦略や業務を作りだすというトレーサブル(追跡可能)な価値駆動開発のプロセスには再現性があります。また、エンジニアとしての社会的責任を重視した価値駆動プロセスのベースとなる思考法は日本人特有の志や情に通じるものであり、これから日本が世界に飛躍するためのビジネス手法として社会形成手法として重要となるものです。

このような日本発・世界初の価値駆動のトレーサブルな開発方法として定義された価値駆動プロセスを学び、実践し、産学で進化させ続ける事で、勤勉な日本人の強みを活かしていこうではありませんか。 

シリコンバレーの企業の多くは尖った天才が新たな価値を生んでいるかもしれません。しかし天才がいなくても、価値駆動のプロセスを活用する事で、一人ひとりの考えをチームとして結集させ、見える化することで集合天才の状態を作りだし、もの凄いスピードで新たな価値を生み続ける日本企業を沢山生み出し、この日本生まれのプロセスを皆さんと共に、日本や世界に広めていけることを我々は願っています。

1.4 SE4BSの価値駆動開発

顧客価値、ビジネス価値や社会価値に基づいてソフトウェア開発・運用を進めること、また産業界で広く受け入れられているアジャイル開発をうまくソフトウェア工学に取り入れていくことの一つ方策として、SE4BSは価値駆動プロセスを以下のように提案します。

図1.5-1 SE4BS価値起動開発プロセスの全体像(2022.7時点)

図は、SE4BS価値駆動開発プロセスの全体像であり、ソフトウェアライフサイクルにわたるアクティビティと、アクティビティの重点となる「知・情・意」をそれぞれ配したものです。この図を見てみると、これまでのソフトウェアエンジニアリングは「IT/システムをデザインする」、「IT/ソフトウェアをデザインする」レイヤを主に構築するもので、主に「知」を追求したものでした(図の右側の流れである「アーキテクチャ視点の価値駆動」に相当します)。SE4BSの価値駆動開発プロセスは、これまでのエンジニアリングとしての知識体系(知)に加えて、人が感じる「価値」「魅力」といった感性の領域に踏み込んでいます(情・意)(図の左側の流れである「ビジネス・社会視点での価値駆動」に相当します)。その理由は、これからの時代はDXの言葉で代表されるように、人にとって魅力的な社会やビジネスをいざなうプロダクト製品、サービス、業務システムを生み出すことが必要とされているからです。

この変化、つまり「価値」「魅力」を従来の「知」に加える変化は、これまでのソフトウェア工学の恩恵の上に成り立っています。Embrace Changeを謳った、XP(eXtreme Programming) [1] をはじめとするアジャイルの潮流、「保守拡張性の高いソフトウェア開発技術により、ソフトウェアライフサイクルにわたって変化可能なソフトウェア開発」といった、技術進化が開発者自身への「価値駆動プロセス」への変化を促したともいえると思います。

[1] https://en.wikipedia.org/wiki/Extreme_programming

これまでソフトウェア開発の上流フェーズは、要求定義でした。要求定義は、ソフトウェアシステムの仕様や機能定義の基になるものであり、従来はソフトウェアライフサイクルの最初に定義して、開発を進めるウォータフォール開発が一般的でした。現在は、ソフトウェアのライフサイクルにわたって要求定義を継続するアジャイルの時代になりました。上図を見ると、「情・意」から矢印で「知」に至っており一見「ウォータフォールの流れ」に見えますが、実際の開発は、繰り返し価値駆動プロセスで回すため、ライフサイクルにわたって、知・情・意を意識し「価値駆動」をベースに、要求定義を行えるプロセスになっています。 

「ライフサイクルにわたって価値を考えることが可能になった」という変化は、「仕様は企画部署から降りてくるもの」から、「仕様は、ソフトウェアエンジニア(開発部署)も価値駆動で考え、開発のアクティビティで意識するもの」の変化につながっていきます。「企画部署がお客様の要望を分析して仕様を作り、開発部署が仕様を開発し、営業部署がお客様へ開発物を提供する」という構図のビジネスドメインにおいても同様であり、エンジニアもお客様、ステークホルダと一緒に、ソリューションを追求し続けることが必要と我々は考えます。このような習慣が定着できれば、お客様と一緒に達成感を得て、ソフトウェアエンジニアにとってもわくわくする、幸福なアクティビティになると信じています。