管理者から個人プログラマまで,ソフト開発者が持っているべき思考法 ―― 『システムアーキテクチャ構築の原理』
管理者から個人プログラマまで,ソフト開発者が持っているべき思考法
『システムアーキテクチャ構築の原理―ITアーキテクトが持つべき3つの思考』
ニック・ロザンスキ,イオイン・ウッズ著
翻訳:牧野祐子 監修:榊原彰
飛翔社
ISBN-10: 4798116424
ISBN-13: 978-4798116426
560ページ
4,800円(税別)
2008年12月
Amazonで購入
ソフトウェアが年々高度化・複雑化し,ヘタをするとソース・コードで数千万行にも及ぶことすらあるというのは,もはや業界では常識でしょう.
こんなに巨大な規模のソフトウェアを一人で実装するのは無理です.まあ,ごくたまに高機能で巨大なソフトウェアを一人で作り上げてしまう天才がいるのですが,たいていの場合には大勢のプログラマが作業を分担して部分ごとに開発し,統合することになります.
そうすると,困った事態が出てきました.ブルックスの法則と言われているもので,「遅れているソフトウェアプロジェクトへの要員追加はさらに遅らせる」という経験則です.つまり,「直系1mの穴を1000m掘るのに,シャベルを持ったヤツを1000人集めても,必要なのは1人にすぎなくて,残りの999人は役に立たない」ということです.
こういった現象は古くから指摘されていて,古典的な名著としては,「人月の神話―狼人間を撃つ銀の弾はない」(フレデリック・ブルックス著,ピアソンエデュケーション),「デスマーチ ソフトウエア開発プロジェクトはなぜ混乱するのか」(エドワード・ヨードン著,日経BP社),「闘うプログラマー―ビル・ゲイツの野望を担った男達」(パスカル・ザカリー著,日経BP社)などが挙げられます.これらはまだ入手できるので,未読の方は読んでおいて損はない本です.
つまり,先ほどの例を具体的に書くと,「大規模なソフトウェア開発においては,とにかく人数をかけて人海戦術で乗り切れ!という手段は使えない」ということが判明した訳です.
そこで提唱されたのが,「ソフトウェア・プロジェクト・マネージメント」という概念です.従来から用いられてきたプロジェクト管理の手法をソフトウェアの現場に応用するという発想です.また,それに伴い,開発手法も,従来のウォーターフォール・モデルを捨て,スパイラル・モデルとかアジャイル・モデルが提唱され,採用されています.
このような背景の中で生まれてきたのが,プロジェクト・マネージャとは少し意味合いの違う,「ITアーキテクト」という専門職です.
では,この「ITアーキテクト」とは,どんな仕事をする人なのでしょうか.
IPA(独立行政法人情報処理推進機構)によると,「ITアーキテクトは,ITアーキテクチャ(情報システム・アーキテクチャ)を作成し,その成果物と効果に責任を持つ専門職である.ビジネス領域での経営戦略や実現するビジネス・プロセスの検討結果を入力としてITアーキテクチャを設計し,成果物としてITアーキテクチャの設計内容を出力する」となっています.
何じゃコレ?という感じですが,平たく書くと,要求される機能のソフトウェア構造を考案し,それを実現させる責任者ということです.
簡単なように思えるかもしれませんが,要求される能力は高度です.最終的にどんな機能を実装するのかを洗い出して実現すべきソフトウェアの構造を分析・分割し,どのような開発手法で,どのように分業化し,納期の範囲内で検証までの計画をすべて考えるという「開発の大元締め」なのです.
では,どうしたらITアーキテクトになれるのか,ITアーキテクトを名乗る以上,身につけていなければならない知識とは何でしょうか.それを解説したのが本書です.
本書では,「ビュー・ポイント」,「パースペクティブ」,「ステークホルダ」の三つの要素が不可欠だとされています.
ビューとは,その名の通り「視点」で,機能や開発,運用などといった多角的な視点からソフトウェアの構造を整理する能力です.
パースペクティブとは,その名の通り「眺望」のことで,数多くあるビューを統合し,全体を捉えてバランスを整える能力です.これも多角的な方面から眺望し,検討しなければ齟齬が発生するので,非常に高い分析力と計画力が要求されます.
そして最後のステークホルダとは,そのまま「利害関係者」という意味で,要求される仕様や機能を実装して,製品として満足される物を開発しなければならないということです.
いかに難しい仕事なのか,分かっていただけるでしょうか.ITアーキテクトを名乗りたいのなら,ソフトウェア工学ばかりでなく,システム工学や経営工学,人間工学,管理工学に精通している必要があるのです.そうそう一朝一夕でなれるものではありません.また,全ての人がスーパーマンでない以上,ITアーキテクトも間違う可能性があるわけです.その先に待っているのはデスマーチ....
本書は,そんなITアーキテクトが失敗を犯さないための教科書です.全体像を捉えるためにも,ITアーキテクトだけではなく,プログラマにも目を通して欲しい本だと思います.
大野典宏
Project NR
norihiro.oono@gmail.com
tag: 開発手法