CLOSE

ソフトウェアエンジニアリングとEssenceの広がり(全1記事)

モダンソフトウェア・エンジニアリングとはなにか ソフトウェアエンジニアリングに大切な“Essence”という考え方

スマートエスイーセミナーシリーズでは、ソフトウェアの開発や運用において変わらない本質と、変わりゆく新たな考え方や技術・プラクティスを探ります。第3回では、モダンソフトウェア・エンジニアリングのエッセンスをテーマに、早稲田大学教授でありSEMAT Japan Chapterの創設者でもある鷲崎氏が、ソフトウェアエンジニアリングの歴史とEssenceの活用について話しました。関連資料はこちら。

Essenceはさまざまな理論の共通基盤として期待されている

鷲崎弘宜氏(以下、鷲崎):早稲田大学の鷲崎です。私からはEssenceというものが、今どう広がっているのかということや、その活用例などを「ソフトウェアエンジニアリングとEssenceの広がり」というタイトルで紹介します。

まず、ソフトウェアエンジニアエンジニアリングの歴史を簡単に振り返ってみますと、これはスマートエスイーセミナーの第1回でも取り上げましたが、例えばBoehmの振り返りでも見て取れますように、テーゼですね。それに対するアンチテーゼというかたちで少し揺れてくるようなかたちで出てきています。

つまり1950年代にハードウェア工学の応用に始まり、それではなかなかうまくいかずクラフトなり工芸としてのソフトウェアがある。それでもまだ立ち行かないということで開発形式化とウォーターフォールを経て、アジャイルの考え方もある種のアンチテーゼとして出てきました。

そうやって揺れ動きながら、どういったかたちが望ましいのかということを常に模索しているかたちでソフトウェアエンジニアリングが進んでいます。これはやはりIvar Jacobsonの言葉にもありますように、それぞれの理論は非常に優れておりすばらしいわけですが、共通の基盤、共通の言葉というものを必ずしも私たちは持てていないのではないか。そこがやはりEssenceの考え方の出発点としてあるわけです。

したがって、Essenceはさまざまな人々が寄り添って、共通にコミュニケーションを取って、そこに合意をしていく。そういったさまざまな理論の共通の基盤として期待されていることがいえます。

その特徴としての動きが3つ挙げられまして、1つはアクショナブルであること。従来は文書などの成果ベースであるところが、Essenceではアルファというさまざまなソフトウェア開発や運用において気を付けるべきポイント、しかもそれの進行状態や健全性というものを見える化・可視化して、それでみんなで取り組んで進んでいくということです。

2つ目はその基盤が拡張可能であるということ。いろいろな方法論を排除するというわけではなくて、アルファを追加したり、プラクティスを定義したりといったかたちで、さまざまに応用・拡張していくということです。

そして最後はそれに実践的であること。先ほど「タンジブル」という言葉もありましたが、そういったカード化・見える化して、みなで触りながら、そして見えるかたちで進めていくということです。

これは結果として、例えば作業や仕事、ステークホルダーといったソフトウェア以外の事柄の大切さというものを改めてきちんと重視するものですし、それから何かプロセスを重視するというよりも、きちんと状態をゴールとして定めて状態に基づいて進めていくということを非常に強く謳っている基盤になっているということです。

Essenceの研究と実践の広がり

この考え方をまずは共通の基盤となるためには標準化をして広めていこうということで、SEMATというコミュニティの団体ができた。これがもともと2009年でして、まさに今日の冒頭のIvar Jacobsonを中心として、あとはOMGの関係者とか、Meyerとかもあわせてできたということです。

日本国内の展開について申し上げますと、SEMAT Japan Chapterが2013年にできまして、これは私が代表になり、平鍋さん、このあといらっしゃる小林さんと一緒に進めて参りました。Japan Chapterとしての活動は、今はアクティブではありませんが、ジワジワとした広がりがあります。

例えばXP祭りですね。講演会の開催やITAといった団体とワーキング活動をするなどをして、実際にその使い方といったところを見てきているというものがあります。

ではその少し研究や実践の広がりの様子を私からちょっと簡単にご案内します。まず今お見せしていますのは、これはもともとIvar Jacobsonがかなり以前からいろいろと手がけているプロジェクトで、実際にEssenceが入っているというところをちょっとそのまま拝借して、あと一部追記してまとめています。

例えば「プラクティスの整理とアジャイルの導入」、これはさまざまな企業や企業グループ、Munich Re、富士通サービス、KPN、英国政府省庁などで、プラクティスをきちんと整理しておいて、そのプロジェクトに応じてそれをきちんと組み合わせて導入していく。それをするためにはきちんと基盤が必要なわけですよね。その基盤としてEssenceが有効活用されています。

それからもう少しその方法論やモデリングの考え方を整理していくというところになりますと、例えばエンタープライズメソッドアーキテクチャの記述に用いたりとか、ソフトウェアを超えてシステムエンジニアリングにおいてEssenceの考え方を活用したといった広がりも出てきています。また教育に関しては非常に優れているということで、例えばスウェーデン等のいろいろな大学で始まってきています。

とくに学生などがそのプロジェクトが今どうなっているのかを考察したり、プロフェッショナルとしてどういうところに留意して、またどういうゴールを掲げて、どういうアクションを起こすべきなのかということを確認していく上で基盤として非常に優れているということです。

Essenceの活用のサポート

こういった状況を踏まえまして、2018年頃に私自身で、実際に文献などでこのSEMATのEssenceがどう取り上げられているのかということを系統的に調査したことがあります。

これはもともと先崎君という卒業生ががんばって取り組んだ調査です。Essence発表や標準化に至る途中での2014年頃が非常に活発で、その後も途絶えるということはなくて脈々と研究や実践それから教育に関して幅広く取り組み、そしてその成果の発表が続いているということがあります。

文献はとくに論文系ですと研究が過半数にはなりますが、実践の結果の報告ももちろんありますし、それから教育の取り組みの報告もあるということを見ていただけるかと思います。

私自身このEssenceの活用のサポートということについて研究として取り組んだことがありまして、例えば1つの軸としてアルファがあるわけですよね。さまざまなアルファがある中で、今それがどういう状態であるのかというのを進捗として見ていく。それをまたその次の目標として掲げていくということをみんなが共有できる仕組み。

もちろんカードもそうですし、あとはそのWebアプリですとかスマホのアプリですとか、そういったいろいろな取り組みが出てきています。モバイルアプリとしてのAlpha State Explorerですが、これは最新のiOSは対応していないみたいです。

あとは私のところですと、ブラウザ上でわりと誰もが簡単に、例えば今、機会というのをアルファについてどこまで終わっていて、ちょうどこの場所にあり、価値の設定をするという、まさに今そういう途上にあるんだということですね。そのためには何をするべきなのか。それをさらに進むためには何をするべきなのかということもきちんとチェックリスト的に出てきているということですね。

こうやってその目標がどうあるべきなのかということの状態を常に確認しながら堅実に進めていく道具立てとして、実際に私自身も研究したり、トライアルしたり、発表したりというところを進めてきています。

失敗した場合の原因を分析するときにEssenceは活用できる

これを実際に業務関連で活用しているという事例で、今日ちょうどこのあとのパネル討論にも登壇される小林さんがITA、Information Technology Allianceという団体のワーキンググループの活動として、確かこれは2016年度の活動ですが、参加者の皆さんにおいていろいろなプロジェクトを進めたときに成功した場合もあれば当然失敗した場合もあるわけですよね。

その失敗した場合もきちんと振り返ってある種の過去トラとして、その原因や根本原因などを分析して対策を取っていくことが重要なわけです。それに関してEssenceの考え方はかなり活用できるということを確認できた例がありますので、私から簡単にご案内します。

そのITAのワーキンググループでは、これは一例ですが、途中でリリースができなくなってしまったと。原因が何で、じゃあどういう対策をすべきなのかということをある種過去の失敗事例をきちんと整理しているという取り組みがあるんですね。それについてEssenceというものを使って、より整理していけないかということです。

これはケーススタディとしての一例ですが、銀行システムの例を考えてみます。これはかなりぼかしていますが、実際の例をしっかり模したものになっています。ある銀行システムの運用のフェーズで、ある日の午前中に支店業務を担当する社員から「登録した顧客情報が端末から閲覧できない」という問い合わせが入りました。

前日のバッチ処理がデータ入力ミスで異常終了してしまったためです。データの復旧には2時間ほどかかり、その間は各支店の社員が手作業で顧客紹介を行う必要がありまして、当然お客さんを待たせてしまうので苦情が寄せられてしまったということですね。

じゃあどうなってしまっていたのか、どうあるべきなのかということをきちんと振り返って対策を打っていくにあたりまして、新Essenceを、とくにアルファは多面的に見ていきますから非常に使えるということです。具体的にはまず顧客のところで見ていくと、まず機会ですね。これは状態がステータスバーになっていまして、機会のアルファに関しては6段階あります。

そのうちの最後の段階が残念ながら真っ赤で満たされていなかった。つまり利益獲得という状態には至ってなかった。それは結果としてステークホルダー、最後のお客さんですよね。それと当然銀行側もそうですが、利用満足ということには至ってなかった。

それは一体なぜかなということをさらに考えてみますと、ソリューションの領域を見てみるとソフトウェアシステムとして実は運用をしていましたけれども、実際のところきちんと論証を完了しているということが実は至っていなかった。ちゃんとソフトウェアシステムとしてできていたようで、かなり早い、粗い状態になってしまっていたんじゃないかと見ております。

それはなぜかと考えてみると、要求に関して一貫性や体系化というのが必ずしもなっていなかった。じゃあそれに至ってしまった活動のところを考えてみると、例えばチームとして必ずしも協調ができていなかったところがあったり、またその仕事や作業に関して制御できていないところ。また仕事の仕方がさまざま、あるいは作業の方法ですよね。工夫に関して必ずしもきちんと統一的に使っていくということに至っていなかった。

Essenceを問題の根本原因から対策と、振り返りに使っていく

このように、顧客からソリューション、さらには活動という振り返りをきちんと深掘りしていくということにつながる。しかもそれがどういう状態だったのかと追っていきます。そうやって状態を追っていく中でどうすればいいのか。

つまりサービスの復旧の遅れといった問題が出てしまったということについて、データ入力や運用マニュアルに問題があったというのは一時的な原因で、根本原因としてはやっぱりデータの手入力やルール違反といったものがありました。

それをどう対策していくのかというと、これは新Essenceの状態を捉えてみると、ちゃんと論証完了である。それから作業の方法として使用できるかたちになっていくためにはデータ入力の自動化という対策を打つとか。それからルール違反に関していうと、これはチームのところとか、それから仕事・作業のアルファについてきちんと協調したり制御可能なかたちに持っていく。

それができていなかったからきちんとできるように対策を打ちましょう。つまりこうやってアルファに照らして状態を見て、それから「これができていなかったからできるようにするためにはこういう対策を打ちましょう」という具合に問題から根本原因から対策と、振り返りに使っていくかたちが1つあるということです。

これは実際先ほど角さんの講演にも、「なかなかうまく行っていないなというときにEssenceは1つ使えるんじゃないか」というお話がまさにありましたが、今回の話というのは終わったあとの振り返りで、そういううまく行っていないというときの1つの使い方として実際に確認できたという事例になります。

状態としてどうあるべきかを捉える

以上をまとめますと、こういうソフトウェアエンジニアリングの歴史がさまざまにある中で、そのいろいろなよい理論がある中で、共通の基盤を欠いていたのではないか。その基盤としてのEssence、これは非常にアクショナブルであったり拡張ができる、そして実践的なものであるということが期待されているということです。

また、今日は研究実践の広がりを振り返りの活用などを交えてお話しました。私のメッセージとしましては最後に、こういうDXの時代を迎えていろいろな技術というのがどんどん出てきたわけですね。このスマートエスイーセミナーにおきましても、前回IoTや機械学習の特集も取り上げました。そうやっていろいろ変わっていくように見える。

そうやって変わっていこうというときこそ変わらない本質というのを見極める必要がある。その変わらない本質というのはEssence、とくにその中でのアルファのところはきちんと整理されているところがかなり大きいと見て取れます。

ですからやっぱり今こそこのEssenceというもので、その状態やゴールの大切さというものを捉えて、とくにDXの取り組みとしてはしばしばDXすることがゴールになってしまいがちなわけですが、そうではなくて状態としてどうあるべきかを捉える。これはEssenceの状態思考の良さですね。それを進めていく際には共通の言葉としてEssence。

これは結果として例えば機械学習であればデータサイエンティストから、一方で顧客側から、一方でソフトウェアエンジニアから、さまざまな領域を超えた共通の言葉の1つの基盤としてEssenceというのが機能する可能性が強く感じるところです。またアジャイルとの親和性もあるというところもいいかと思います。

以上で、ちょっと時間が押してしまいましたが、私からの講演といたします。ご清聴ありがとうございました。

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!