ObjectSquare

[技術書籍紹介]


適応型ソフトウェア開発

変化とスピードに挑むプロジェクトマネジメント

適応型ソフトウェア開発(表紙) ジム・ハイスミス 著
ウルシステムズ 監訳
山岸耕二/中山幹之/原幹/越智典子 訳

翔泳社刊
ISBN4-7981-0219-9

オージス総研 オブジェクトテクノロジー・ソリューション部
坂坂屋の赤坂英彦
Akasaka_Hidehiko@ogis-ri.co.jp




■はじめに

はじめにお断りしておきますが、この記事はあくまで私が"個人的に"気に入ってお勧めする本の紹介です。
どちらかと言えば、読書感想文といった感じになっています。あしからず、ご了承下さい。




■ 適応型ソフトウェア開発のあらまし

この本、適応型ソフトウェア開発のあらましについて以下の順に紹介していきます。

  • 訳者まえがきより
  • 特徴(複雑適応系をソフトウェア開発に適応)
  • メタファーは登山
  • 対象となる読者
  • 目次と内容

□ 訳者まえがきより

いきなりですが「訳者まえがき」より引用させていただきます。この本の特徴がうまく表現されています。

    「不確定なビジネス環境で生き残るには、変化、スピードを身に付けなければならない。 目まぐるしい変化とスピードに追従するための本書の答えは、「適応」である。 我々は、変化への柔軟性が必要であることを知っており、 それに対応すべきであることもわかっている。 しかし、心の奥底のメンタルモデルは、相変わらず変化を例外扱いし、 計画通り進むことをメインのシナリオを描いている。 変化に適応するには、変化こそが常態ととらえたパラダイムにシフトしなければならない。」

□ 特徴(複雑適応系をソフトウェア開発に適応)

本書は、最近はやりの機敏さと人(開発者)を重視したアジャイル一派でありながら、 複雑適応系理論をソフトウェア開発に適応した、おそらく唯一の理詰めなプロジェクト管理の本です。 複雑適応系理論にちなんで、名前も「適応型ソフトウェア開発」、かっこ良いですね(笑)。

不確定なビジネス環境において生き残るには、変化とスピードが求められており、 これを実現するための著者James Highsmith氏の答えが、適応型ソフトウェア開発です。

従来のかっちり決まった手順(ワークフロー)と役割(ワーカー)によって 機械的、非属人的な開発を目指すものではなく、プロジェクトチームを生きている有機体とみなし、 開発手法は官僚的でも場当たり的でもない新たなモデルとして、 強制的秩序ではなく創発的秩序から「創発」を生み出すものです。
生きている有機体であるチーム、メンバーはエージェントであり、 PDC(Plan - Do - Check)のサイクルではなく、 方向性に的を絞った緩やかな計画からの「思索 - コラボレーション - 学習」というライフサイクルの 徹底的なインクリメンタル開発により、学習し、ゴールに収束していきます。
適者生存ではなく適者到達を身上とし、エージェントのよどみないコラボレーションと学習により望ましい結果を生み出そうというものです。 このため、"自分が何でも知っているわけではない"ということを認める 「謙虚さ」も必要になります

変化とスピードが求められる極限の状況では、より良い結果を求めるエージェントの知的相互作用は、以下の式で表現されます。

    複雑な振る舞い = 単純なルール + 豊かな関係

これらの考え方は、従来のアメとムチのプロジェクト管理とは異なり、極限に挑むソフトウェアプロジェクトをマネジメントするための優れたモデルになるそうです。

□ メタファーは登山

この本は極限状態のプロジェクトに挑戦するためのプロジェクト管理本です。 この本では、この厳しいソフトウェア開発プロジェクトの比喩として、 エベレストなどの登頂などが表現されています。
週末に楽しむ登山とエベレストの登頂では、 必要な準備も求められるスキルも俊敏な判断も全く異なります。 これはソフトウェア開発においても、スコープの小さく期限の厳しくない やさしいプロジェクトと、刻々と変化するニーズとスピードを求められる 大規模なプロジェクトでは、全く作り方も変わってくるのは当たり前ですよね。
この本では割といたるところで登山の比喩などが使われていますが、 イメージを掴み、内容の理解を助けてくれるものだと思います。

□ 対象となる読者(以下の方にお勧め)

本書では、対象読者として

  • スピードを要求される変化の激しいプロジェクトで、効率を上げ、
    かつメンバーが燃え尽きないように苦労しているプロジェクトチーム
  • 非常に重要な新しいビジネスを対象とするプロジェクトチーム
  • 小規模から中規模程度のプロジェクトで、スケジュールを短縮する必要のあるプロジェクトチーム
  • スピードの速い変化の激しいプロジェクトの要求にうまく対処する手立てを必要としている人たち
というプロジェクトチームを挙げています。個人的にはその他に
  • 複雑系の好きな人
  • 登山の好きな人
  • より難易度の高いプロジェクトに挑戦したい人
  • プロジェクト管理はどれも同じと思っている人
  • プロセス定義は厳密な方が良いと思っている人とそうでない人
  • 人はリソースであり単なる歯車だと思っている人とそうでない人
  • 厳しい仕事で燃え尽きたくない開発者
といった全ての人にお勧めだと思います。

現在の変化の激しい世の中では、ビジネスニーズ(要求)も激しく変化します。これを常態と考えてプロジェクトを計画、管理、運営できなければ、スピードが求められる、リスクの高いプロジェクトを常に成功させ続けることは到底できないでしょう。




■目次と内容

本書のだいたいの構成は以下のような感じです。
章立てまでは本の通りですが、 各章の内容については私の好みで編集してあります。

第1部

第1部は適応型ソフトウェア開発の「概念モデル」です。
適応型ソフトウェア開発のなりたちや概要、ベースとなる複雑適応系理論についての説明が述べられています。

  • 第1章 ソフトウェアの登頂
    • 記念事業的ソフトウェア開発と場当たり的ソフトウェア開発
    • 複雑適応系
    • 適応型ソフトウェア開発の概要
  • 第2章 カオスの縁での成功
    • エージェントとしての人
    • 創発
    • 適応型開発モデルのライフサイクル(思索 - コラボレーション - 学習)

第2部

第2部は、適応型ソフトウェア開発の「開発モデル」です。
適応型ソフトウェア開発とはどんなものか、 どのように適用したら良いかを知るにはここを読んで下さい。

  • 第3章 プロジェクトミッション
    • ミッションの明確化と可視化
    • ミッションの価値を共有する
    • 結果に焦点を合わせる
  • 第4章 適応型開発サイクルの計画
    • 適応型開発サイクルの特徴
      • ミッション駆動
      • コンポーネントベース
      • イテレーション型
      • タイムボックスに分割
      • リスク駆動で変化に柔軟
    • 適応型計画技法
      • バージョン、サイクル、ビルドの定義
      • サイクル計画のステップ
      • コンポーネントの進化する世界
  • 第5章 偉大なるグループとコラボレーションの能力
    • コラボレーションの障壁となるもの
    • 偉大なるグループの本質
    • 複雑系によるコラボレーションの向上
    • コラボレーショングループの構築
    • ジョイントアプリケーション開発
    • 安定化した変化
  • 第6章 学習:モデル、実践方法、サイクルレビュー活動
    • 学習とは
    • Sengeの学習モデル
    • 複雑適応系の学習モデル
    • 学習方法
    • 顧客のフォーカスグループレビュー
    • ソフトウェアインスペクション
    • プロジェクトの事後評価

第3部

第3部は、適応型ソフトウェア開発の「マネジメントモデル」(リーダーシップ - コラボレーションモデル)です。
特にプロジェクトマネージャ、プロジェクトリーダーはここを参照して、プロジェクトを成功するために必要なリーダーシップとは何かを学ぶことができます。メンバーの燃え尽きをなくすことがいっそう大切です。

  • 第7章 優秀なマネージャのもとでプロジェクトが失敗する理由
    • 破壊的技術
    • 激しい変化
    • 銀の弾丸は存在しない
    • 組織は本当の複雑適応系か
    • 必須多様性
    • プロジェクト生態系
  • 第8章 適応型マネジメント
    • 適応型マネジメントモデル(リーダーシップ - コラボレーション、責務の遂行)
    • 適応型文化の創造
    • プロセスからパターンへ
    • カオスの縁での均衡
  • 第9章 ワーク"ステート"のライフサイクルマネジメント
    • ワークフローという考え方の打破
    • コンポーネントのワーク"ステート"
    • 改良型適応型ライフサイクルの構築
    • コンポーネントの厳密さのマネジメント
  • 第10章 構造的コラボレーション
    • コンテキストと内容の重要な相違
    • コラボレーションのサービスとツール
    • コラボレーションと創発
    • プロジェクト作業に厳密さを適用するための8つの指針
  • 第11章 プロジェクトの時間サイクルのマネジメント
    • プロジェクトマネジメントモデル
    • プロジェクトの立ち上げ
    • プロジェクトの計画
    • プロジェクトのマネジメント
    • プロジェクトの終了
  • 第12章 のんびりすること、マクルーハン、そして薄い空気
    • のんびりすること
    • マクルーハンの質問(何を推進するか、何を陳腐化するか、何を呼び戻すか、何に転換されるか)
    • 組織の成長
    • 薄い空気の中での生存

■ おすすめポイント

この本を読んでの、私のおすすめポイントを紹介します。

  • プロジェクトが成功したかどうかのチェックポイント
  • プロジェクトに厳密さを適用するための8つの指針
  • 適応型のプロジェクト管理は、命令と制御ではなく、リーダーシップとコラボレーションである
  • 極限の状況ではワークフローよりもワークステートでマネジメントする
  • チームはコラボレーションとレビューにより学習し、求めるゴールを見出していく

□ プロジェクトが成功したかどうかのチェックポイント

  1. 製品や対象とするシステムがリリースされること
  2. 製品やシステムがその要件(スコープ、スケジュール、リソース、欠陥レベル)を満たすこと
  3. プロジェクト終了時に開発チームが心身ともに健康であること

1.は前提条件、2.は当たり前ですが、きちんとできているかどうかは怪しいと思います。 要件としてスケジュールとリソース消費を無視してスコープだけを満たして 成功と呼ぶプロジェクトなんてざらにありそうだし、 欠陥レベルをきちんと予測しているところは少ないでしょう。 この3つのチェックポイントでは、プロジェクト終了時点でチームが 健康だということを成功の条件に挙げていることが何より素晴らしいと思います(3.)。 特に新しいアイディアではないと思いますが、これをプロジェクトの事後評価で チェックしている会社は多くないだろうと思います。 特に凄腕マネージャの成功体験の中には、開発メンバーが疲労困憊ながらなんとか 完成に至ったプロジェクトも結構ありそうな気がします(その後のプロジェクトのメンバーは如何に…)。

また、この本の中ではこんな比喩も紹介されています。

    「ヌーを殺しても、その肉を食べる時には疲弊して死んでしまうような ライオンが仮にいたとすると、それは自然な組織体が生き残るためのモデルとなるであろうか。 ライオンは獲物を殺すことで一定の成功を収める(製品を出荷する)、 しかし、その過程で死んでしまう(疲労困憊や会社を辞めるなど)。 これでは、ライオンやプロジェクトチームが生き残るための戦略にはならない」
まったくその通りですね。こんな状態ではプロジェクトが成功を維持し続けることなど不可能ですね。

□ プロジェクトに厳密さを適用するための8つの指針

適応型開発プロジェクト私の解釈の範囲での説明になりますので、勘違いなど含まれているかもしれません。ではカオスの縁で均衡を保ち、創発を起こして望む結果を得るために、 マネジメントの指針を提供してくれています。その中で、特に重要と思える以下の指針を紹介します。

    指針1:ちょうど足りている状態よりも、少し足りないところまで厳密さを増大させること
厳密さは、目的ではなくバランスを取るための力と考える必要があります。 従来のプロジェクトでは、「やりたいことは分かっている。後はやるだけだ」 というメンタルモデルのため、厳密さ(つまりプロセスの最適化)はプロジェクトの成功のカギ だったのかもしれませんが、極限の状態のプロジェクトにおいては、未知なる求める答えを得る ためには厳密さが邪魔をすることもあるということを肝に銘じる必要があります。

    指針8:方針を無視する覚悟を決めておくこと
指針は判断を導くものであって、判断の代わりになるものではありません。 極限の状態のプロジェクトにおいては、時には指針を守らないことも必要 になるのかもしれません。 結局、マネージャも(開発チームも)自分で考えて決断する勇気と自信も必要なのですね。

すみません。紙面の都合により、私のおすすめポイントの紹介はここで終了とします。 興味が湧いてきた、あるいは、もっときちんと説明してほしいと思った方は、 立ち読みコーナー(リファレンスを参照してね)からホンモノ(の一部)を読んでみて下さい。 きっと、そのまま購入したくなってくること請け合いです(笑)。
この本は複雑適応系をベースにしているにも関わらず、 「複雑系」の知識がない私でもきちんと理解できる内容になっています。
また、翻訳は他のアジャイル系の書籍とは異なり、少々かための文章になっていますが、 私はとても読みやすく感じました。
本記事執筆にあたり、訳者の山岸さん、越智さんにレビューしていただきました (この他にも清水さん、山下さん、舟守さん、広場編集のみなさんにもレビューしていただきました)。 ありがとうございました。

山岸さん曰く、

    「この本に出合えたことを運命のように感じています。 (途中省略) とにかく、伝わりやすい日本語にするということにかなりこだわりました。 半年以上、土日をつぶしたのでそれなりの自信作です」
...この本への熱い思い入れが伝わってきますよね。

最後に、この本は、新しく難しい何かに挑戦したい全てのあなた (管理者、開発者、ソフトウェア開発に関わらず、全ての挑戦者)に きっと響いてくるものがあると思います。それでは、Chao !!


■ リファレンス

  • 適応型ソフトウェア開発
    • 翔泳社(SE Shop)
      出版社である翔泳社さんのオンラインショッピング(SE Shop)のページ。
      このページの左側にある「関連リンク」の"立ち読み"をクリックすると、 第1部(訳者まえがきから第1章まで)を読むことができます。 中身を確認したい人、内容を見てから購入を検討してみたい方は是非クリックしてみて下さい。

    • amazon
      ご存知、amazon.co.jpのページ。 "ソフトウェア開発"で検索すると、この本が上位にランキングされている事が分かります(2003.10.19現在)。

  • ブックレビュー(ウルシステムズ)
    監訳を行ったウルシステムズさんのホームページにある、ブックレビューです。 私の紹介記事では飽き足らない方、こちらの方もご覧下さい。レビューは短い文章ですが、とてもカッコいい紹介になっています。

  • XpJp-MLメーリングリストの議論(アーカイブ)
  • XPの日本語メーリングリスト(XP-jp ML)での議論は、いろんな方のご意見がとても参考になります。
    上記で始まるスレッドなどを参照してみて下さい。

  • 日経IT Pro:なぜプロジェクトマネジメントは普及しないのか
    直接的には関係ありませんが、タイトルの通り、 日本でPMBOKに代表されるモダンPM(プロジェクトマネジメント)が普及しない理由について、 記者の鋭い洞察が書かれた記事です。 この記事の最後「モダンPMは成功のための一要素」に、 "未知数の多い、挑戦的なプロジェクトを成功させるにはどうしたらよいか"という テーマのワークショップ(2003.10.29)が紹介されています。 基調講演 宮田教授(東大)の「世界最速のヨットを創ったプロジェクト運営」はとても興味があります。




© 2003 OGIS-RI Co., Ltd.
HOME HOME TOP オブジェクトの広場 TOP