小論:知働化研究会 1/1/2010 新春特別寄稿 ΛVモデル V字モデルからの意味論的転回 大槻繁(おおつきしげる) 株式会社一(いち)副社長 アジャイルプロセス協議会 フェロー 知働化研究会 運営リーダ Copyright 2010, Shigeru Otsuki, All rights reserved. 本小論は、知働化のパラダイムに移行していくために、あえて、伝統的なソフトウェア開発プロセスの基底となっているV字モデルを転回して、知働化の意義を再認識してみようという試みです。 筆者は、知働化をポスト・アジャイルプロセスと位置づけており、「不確実性への対処」の次に来るものは、「進化・適応」のプロセスだと考えています。一方で、伝統的なプロセスは依然として残り続けることでしょう。そこで、これ等両者の関係を整理しておくことも、それなりに意味があると考え、「ΛVモデル」というハイブリッドなプロセスモデルを考えてみました。 表紙の絵柄の背景に配置した歯車の図は、ここのところ筆者が気に入って使っているものです。青で示したITシステム・ソフトウェア、あるいは、エンジニアリングの世界と、赤で示したビジネス、あるいは、実世界とが、連動してかみ合うべきだということを象徴的に表現したものです。青と赤の色使いは、全体を通して一貫させています。 全体構成は、4部構成で、ⅠとⅡが前置きとか背景で、中心はⅢです。最終章ⅣでいくつかのケーススタディをΛVモデルの観点から考察しています。 (以下、各節ごとに詳細ページがあります。また、本小論をまとめたPDFファイルは、このページ下の添付ファイルをご覧下さい。) Ⅰ.V字モデルの復習 ウォータフォール型開発プロセスの原理を説明するモデルとしてV字モデルを復習します。 Ⅱ.知働化への転回 知働化のエッセンスを紹介し、開発プロセスの観点からどういった転回が進んでいるかを簡潔に示します。 Ⅲ.ΛVモデルの概要 V字とそれに対峙するΛ字の部分の関係、モデルのポイントを解説します。 身近な事例をΛVモデルの視点から眺めてみることにします。 考察とまとめ 【ケーススタディのまとめ】 前節のケーススタディの4つの例は、アジャイルプロセス、あるいは、知働化のいくつかの典型的なものと言えるでしょう。 ケース1:伝統領域でのソフトウェア開発会社 「狭義のアジャイルプロセス」を実践しつつ、「セル」を定義することによって、作業の前提条件、終了条件、制約、リソースなどの管理を行い、かつ、セルの並行化によって、タイムリーな開発も可能にしています。 伝統的なユーザ/ベンダの受発注、請負開発の中で、アジャイルに対応していくベースラインを確保している好例です。 ケース2:Webサービス領域のソフトウェア開発会社 「広義のアジャイルプロセス」を実践しつつ、タイムボックスマネジメントとセルの定義、さらに、セルと人的リソースの分離も行って、システムのライフサイクルを継続的に支援していく仕組みを確立しています。 Webシステムや比較的小規模案件に特化しているとは言え、伝統的なプロセスへの配慮、組織化や仕組みの確立を目指しており、アジャイルプロセスによる不確実性への対応を実践している好例です。 ケース3:ユーザ企業内製のシステム部門 ユーザ企業のWebシステムを構築・維持していく内製型の開発チームです。エンドユーザの利用アクセスや商品販売の誘導などの状況を、営業や業務部門との緊密な連携によって対応しています。 アジャイルプロセス、エゴレスシステム開発、さらには、ITILやCobitなども含め、自ら勉強し、検討し、議論し、実践する高度な研鑽によって、開発の質を維持している好例です。 ケース4:新規領域開拓型研究機関 基礎研究から生まれた理論をソフトウェアのエンジンとして開発し、さらに、それを活用した社会的な仕組みや規範をデザインし、プロデュースも行っています。従来のソフト開発という範疇からは外れますが、知識をどのようにシステムに組込んでディスコースをデザインしていくかという知働的な考えの好例です。 【プロセスの特徴付け】 これ等のケースを、強いて整理してみるとすれば、いくつかの軸によって特徴づけることができます。 左側のレーダチャートが、Λすなわち、実世界から見える特性です。もし、実世界が開発チームの外部であるということでしたら(組織境界に依存しますが)、Λ世界を「外部」と呼んでもかまわないでしょう。逆に、右側のレーダチャートはV、すなわち、開発チーム内部の特性です。 【なんちゃってマニフェスト】 本小論の最後に、筆者の主張を簡単なマニフェストの形で提示しておこうと思います。ここで示したものは、新しい「パラダイム」による、新しいものの見方です。伝統的な領域にとどまって、伝統的なものの見方をしていては、単なる<改善>に終わってしまいます。今、必要なのは<改革>なのです。 ■工業的生産 より 実行可能な人工物のデザイン ソフトウェアとは、実行可能な<人工物(アーティファクト)>です。決まりきったことを、手順化や自動化を行い、大量生産するという工業製品の<製造>とは異なります。ソフトウェアには製造はありません、創造的、知的活動としての<デザイン>が中心でなくてはなりません。デザインの対象となるソフトウェアが、一般の人工物と異なる点は、<実行可能>であることです。計算し、情報を処理し、実世界の現象に作用を及ぼす<実行>する人工物であることが本質です。 ■コード より 知識の織り込み ソフトウェアづくりとは、知識をソフトウェアに織り込むことです。コードを書き、実行可能なコードをつくることも大切ですが、そのコードには、計算機世界の知識だけではなく、実世界や人間の知識を織り込んでやらなければ、価値はありません。織り込むべき知識がどこから来るのかということは、とても重要な観点です。クライアントからの要求や要件定義に従って、開発企業がソフトウェアを開発するという場合には、多くの知識は、クライアント側の奥深い業務領域から伝言ゲームのようにしてやってきます。多くの知識は、ΛVモデルのΛの領域に隠れていることでしょう。 ■初期構築 より ライフサイクルとフィードバック ソフトウェアの意味は、その<実行>によって継続的に変化します。社会状況や世界観も変わりますし、ソフトウェアを実行させることが、利用者や関与者の認識を変えてしまうものです。従って、ソフトウェアは時間とともに変わる状況の中で生き続けなくてはなりません。伝統的な領域の概念で言えば、保守・運用をし続けるライフサイクルの観点がソフトウェアづくりの中心です。ソフトウェアは実世界に投入され、実世界の現象に影響を及ぼし、世界や人間の認識を変えてしまいます。その変化した世界や認識を、ソフトウェアづくりにフィードバックし続ける仕組みを考えていく必要があります。 ■契約 より 社会的様相 二者間対峙(ユーザ/ベンダ、企業/雇用者など)の契約の改善の余地はまだまだあるでしょう。制度の問題というのは、最終的には整備しなくてはならないものです。ソフトウェアづくりに関わる組織や企業間の関係は、もっと複合的なものになっていくでしょう。織り込むべき知識の源泉、仕様化、実現、ライフサイクル維持など多くの活動が多くの組織とともに関わってきますし、組織間の関係もダイナミックに変化していきます。こういった広い意味でのソフトウェアを取巻く社会的な<様相(texture)>をデザインしていくことが重要です。また、全てが金銭的取引きに帰着できるわけでもありません。コミュニティ活動や地産地消的な事柄も、社会的様相として捉えていく必要があります。 【執筆後記と参考資料】 この小論を執筆しようと思った理由は、昨年末(2009年12月)のアジャイルプロセス協議会/知働化研究会で「知働化研究誌」の企画の話があって、春先までに何か書かなくてはならなくなったことと、SEC(Software Engineering Center)の非ウォータフォール研究会のメーリングリスト上でV字モデルに関するやりとりをした際に、少し頭の整理をするために自分なりの見解をまとめておこうと考えたことにあります。 V字モデルは、1980年代初頭のライフサイクル論争の頃に、ウォータフォール型開発プロセスの欠陥を説明するために、設計とテストとの対応を整理するために提唱されたもので、現在でもSLCPの標準の中で、さまざまな開発プロセスを説明するために使われています。このモデルの本質は、要件定義や設計の正しさを確かめるテストという活動が<実行>するプログラム実体を前提としているということです。それ以上でも、それ以下でもないのですが、多くの誤解が生じていることも確かです。 アジャイルプロセスや知働化の検討では、あえて、V字モデルで扱う伝統的な領域とは一線を画し、その領域の言葉も使わずに、新しいパラダイムであるという立場を貫くようにしてきましたが、本小論では伝統的領域からの視点の差異を明確にするアプローチを採ってみることにしました。ソフトウェアやシステムが置かれている<実世界>や<様相>に目を向けるというのが、新しいパラダイムの第1歩です。ですから、V字の上のΛ字を描いてみました。「超上流」(この言葉は好きになれませんが)のもっと外側の世界あるよということですし、その世界もどんどん変化していくし、かつ、人によっても認識が異なる主観的なものです。 「パラダイム」という言葉が大げさな感じもするので、本小論の副題にあるように「意味論的転回」としてみました。第Ⅱ章の「知働化への転回」では、クリッペンドルフのデザイン論を紹介していますが、そこで使われている用語です。 ソフトウェアエンジニアリングというのが、プログラムコードの記述に限らず、あらゆる活動を<言語活動>や<言語現象>であるとみなすという立場は、とても重要だと私は考えています。無論、無意識や心理的な事項もあることは認めますが、最終的には言語として現れることになります。こういった哲学的な基礎付けをしたのは、20世紀初頭に活躍した奇才、ヴィトゲンシュタインです。彼の後期哲学を『探求』とか『言語ゲーム』の哲学と称しますが、筆者はこの思想は、ソフトウェアの世界にも当てはまると考えています。昨年秋にクリッペンドルフの書籍を知りましたが、まさに我が意を得たりという感覚でした。 一言で私の主張を集約するならば、「ソフトウェアエンジニアリングの世界で言語ゲーム的転回を進めよう」ということです。新しい世界を描く努力なくして、未来は切り開けません。 〔参考図書〕 ・黒崎宏, 言語ゲーム一元論:後期ウィトゲンシュタインの帰結,勁草書房,1997.12 ・黒崎宏, 科学と人間:ウィトゲンシュタイン的アプローチ, 勁草書房, 1977.10 ・黒崎宏, ウィトゲンシュタインの生涯と哲学, 勁草書房, 1980.10 ・山本信 黒崎宏編, ウィトゲンシュタイン小辞典, 大修館書店,1987.7 ・橋爪大三郎, はじめての言語ゲーム, 講談社現代新書, 2009.7 ・クラウス・クリッペンドルフ, 意味論的転回:デザインの新しい基礎理論, SIBアクセス発行, 2009.4.1 〔筆者の知働化関連の書き物〕 (http://www.exekt-lab.org/ にアップロードしてあります。) ・アジャイル・ソフトウェア・セル生産:人月から価値駆動へ(大槻繁,濱勝巳), PM Conference 2008, 2008.8.1 ・人働説から知働説へ(対談:知働化研究会始動(山田正樹−大槻繁)), 2009.7.15 ・知働化への接近, 知働化研究会第2回会合, 2009.10.15 ・クリッペンドルフの『意味論的転回』読書感想, 2009.10.15 ・ビジネス駆動の先進的なITシステム・ソフトウェアの世界観: 知働化:不確実性への対応から進化・適応プロセスによるソフトウェアづくり, IPA Forum 2009 / ソフトウェア・エンジニアリングセッション, 2009.10.29 ・知働化の世界観: 不確実性への対応から進化・適応プロセスによるソフトウェアづくり, 2009.11.3 ・108の質問に対する解答(デカルトvsヴィトゲンシュタイン), 2009.11.4 ・言語ゲーム的転回の年表, 知働化研究会第3回会合, 2009.12.7 本小論は、「知働化研究会」の自由研究の一環として作成したものです。2010年春に発行予定の知働化研究誌に掲載予定の原稿案も兼ねています。ケーススタディで採上げた4つのケースについて、情報提供、議論いただいた方々に心より御礼申し上げます(諸般の事情を配慮し、本小論でお名前を掲載するのは避けておきます)。皆様との交流を通じて、多くの刺激をいただき、「知働化の世界観」の確立をめざして、引き続き研究を進めようと思います。ご協力、ご支援の程、よろしくお願いいたします。 2010年1月1日(元旦) 大槻 繁 ■ |