ライティングソフトウェア 第1章 「メソッド」
公式サポートサイト
Righting Software (inform IT)
成功するためには
- システム
- システムを構築するプロジェクト
の両方をデザインしなければいけない。
アーキテクチャなしでプロジェクトをデザインすることはできない。
「ザ・メソッド」
初心者アーキテクトには選択肢は無数にある。
マスターアーキテクトには選択肢はごくわずかしかない。
何年もかけて幾多のシステム。プロジェクトを手掛けやり方を身につけマスターアーキテクトにならなければ、正しいことがわからないのか?
そうではなく、
知識を整理し土台の方法論をしっかり理解しておけば誰でもまずまずのシステム/プロジェクトデザインを作り出せることができる。
「ザ・メソッド」は成功のために必要不可欠。
ザ・メソッド=システムデザイン+プロジェクトデザイン
システムデザインの面では
ザ・メソッドは
大きなシステムを小さなモジュラーコンポーネントに分割する方法を明らかにする。
コンポーネントの構造、役割、意味とコンポーネントのインタラクションのあり方についてのガイドラインを示す。
それに従った結果がシステムアーキテクチャとなる。
プロジェクトデザインの面では、
ザ・メソッドは、
システム構築のプランを複数用意してマネジメントに提示する部分でアーキテクトを支える。
個々のプランはスケジュール、コスト、リスクの組み合わせであると同時に、システムの組み立て説明書でもあり、プロジェクトの作業と進行管理の基礎となる。
成功を収めるには、システムデザインよりもプロジェクトデザインの方がはるかに重要。
プロジェクトデザインはシステムデザインよりも複雑でもあり、新たなツール、アイデア、テクニックが必要になる。
ザ・メソッドはシステムデザインとプロジェクトデザインを結合したもので、実際にはデザインプロセス。
システムの詳細設計ではなく、システムデザイン、アーキテクチャのこと。
詳細設計はアーキテクチャのコンポーネントごとに、インターフェース、クラス階層、データコントラクトなど、実装上重要な要素を生み出していく。
これはシステム全体のデザインよりも時間がかかるが、プロジェクトの進行と共に進めても、システムの構築、発展の過程で変えてもいい。
ザ・メソッドの目的は、アーキテクチャとプロジェクトのプランを作ることだけではない。
プロジェクトにとってリスクとなるようなデザインを取り除くことも大事。
短期間で効率よく効果的に適切なアーキテクチャを見つけ出す。同じことがプロジェクトデザインにも当てはまる。
ザ・メソッドを使えば、システム全体のデザインは数日(一般に3日から5日)で作り出せるし、プロジェクトデザインにかかる時間も同じくらい。
ザ・メソッドは、断固としてスピーディに決行しなければならない。
時短は、無駄に豪華な設計を避けるためにも役立つ。
デザインにために使える時間を短く制限すれば、ちょうどいいところまでのデザインが生み出される。
システム/プロジェクトデザインのディシジョンツリー(決定木)を意識していなければ、分析麻痺に陥り、いくら優秀な人でも生産的な成果を生み出せなくなる。
正しいディシジョンツリーを知らずにいると、木構造の根、ルートとは異なる場所からスタートすることになる。
そうすると設計判断を進めていくうちに、以前の判断が通用しなくなる地点に必ずぶつかる。→2つの点の間で下した判断は無駄になる。
ザ・メソッドは、システムデザインとプロジェクトデザインの両方について、典型的なビジネスシステムのディシジョンツリーを提供している。
ルートから出発して、以前の判断のやり直しや再評価を避けながら、適切な選択を導いてくれる。
ディシジョンツリーの不要な枝を切り落とすためにテクニックとして特に役立つのは、制約を利用すること。
まっさらで何も描かれていないキャンバスほど、アーキテクトにとって恐ろしいものはない。
デザインのディシジョンツリーには必ず制約があるため、ザ・メソッドは、システムとプロジェクトにかかる制約を増やしていき、デザインがすばやく収束、解決するようにしている。
ザ・メソッドの重要な利点のひとつは、デザインの考え方のコミュニケーションがしやすくなること。
ザ・メソッドは、明確に定義されたセマンティクスと構造を組み合わせており、この種のコミュニケーションの円滑化ということでは特に優れている。
システム構築を担当した開発者たちがデザインを理解せず、デザインの価値を認めなければ、デザインは間違いなくズタズタになってしまう。
ザ・メソッドを取り入れたアーキテクトは、開発者や管理職にデザインの説明をできるようになるだけでなく、他のアーキテクトとの間でもデザインについて簡単、正確に伝えられるようになる。
ザ・メソッドを取り入れたからといって、正しいアーキテクチャを作るためにアーキテクトの想像力や努力が不要になるわけではない。
アーキテクトはアーキテクチャを元にして実現可能性のあるプロジェクトデザインを作らなければならない。
プロジェクトデザインの形だけを真似ても無意味。
ザ・メソッドが力を発揮するのは、必要な情報を集めるために時間と精神的なエネルギーを注ぐこみ、忠実に実践したときに限られる。