mazinlabsのブログ

RubyとかCloudとかその辺の記事を書いたり書かなかったり

ソフトウェアアーキテクトが知るべき97のこと(47〜53)

47:現実の世界へようこそ

現実世界は情報技術者が好む0と1の正確さが通じない。
お客さんはその間であったりどちらも両立させるような矛盾を要求してくることがある。
だからこそ、開発者は理想じゃなく現実を踏まえた開発しよう。

48:支配せず、観察せよ

最近のシステムは疎結合だが時間に伴ってシステムが変化し続けるためわかりにくい。
だから観察、モデル抽出、整合性チェックでコントロールできなくなった状態を補おう。

49:アーキテクチャは2つの顔を持つ

優れたアーキテクトは顧客の矛盾した考えを満足させなければならないし、
プロジェクトや組織に対して成長を促して技術が進歩する将来を作っていかなければならない。
こうしたことができれば自分の仕事とプロジェクトは成功するはず。

50:アーキテクトは境界とインターフェイスに注意を注げ

分割統治は複雑な問題に取り組むためには適しているが、それをステークホルダーに説明するのは難しい。
アーキテクトはコンテキストマップを使い、何を一緒にして何を切り離すのかをはっきりさせて、説明できるようにしよう。

51:ディベロッパーに力を

ディベロッパーに投資を!
必要のない決定はさせるな!!
本質的でない仕事はさせるな!!!

52:理由を書き留めよ

設計に関するドキュメントを書いても同期させるのが大変だと言われる。
しかし、ソフトウェアアーキテクチャに関するドキュメントは、
意思決定がどのように行われたのかを残す。
これは確認や決定の変更があった際の見直しに使えるので書き留めるべきだ。

53:暗黙の仮定、特に自分自身のものを疑え

知らずしらずのうにち仮定していたことが、ソフトウェア設計の重要な決定に影響を及ぼしている可能性がある。
暗黙の仮定については見えるようにしておくことが必要。