逆コーンウェイ戦略とDevOps, Microservices, Agile

コーンウェイの法則Conway

「コーンウェイの法則」というのを知ってますか?Jim Conplien の組織プロセスパターンにも登場しますが、”組織の構造がソフトウェアの構造に反映する“あるいはその逆、“ソフトウェアの構造が組織の構造に反映する”というものです。Wikipedia によると、

Conway’s law is an adage named after computer programmer Melvin Conway, …

“organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”

— M. Conway
分かりやすくたとえが、「4つのチームでコンパイラを作成すると、4 pass コンパイラになる」
という言い方で知られています。
Conway-Struct.png

逆コーンウェイ戦略

少し前の ThoughtWorks のテクノロジーレーダーに、逆コーンウェイ(“Inverse Conway Maneuver” )というのがあり、気になっていましたのでちょっと調べてみました。

コーンウェイの法則が、「観察結果」に対しての「こうなっちゃいます」というパターンとして言語化されているのに対して、逆コーンウェイは、「積極的に組織とコミュニケーションを設計しよう」というのです。観察でなく、積極的に。Maneuver、すなわち設計戦略なのだと。

“The ‘Inverse Conway Maneuver‘ recommends evolving your team and organizational structure to promote your desired architecture. Ideally your technology architecture will display isomorphism with your business architecture.”

– Technology Lader (ThoughtWorks)

拙訳:逆コーンウェイ戦略は、自分たちのアーキテクチャ設計を促進するようにチームと組織を進化させることを推奨する。理想的には「技術的アーキテクチャ」が「ビジネスアーキテクチャ」の同形写像になるように。
現代流に言えば、
  • DevOps をやるなら、Dev と Ops を同じ組織にせよ。
  • Agile やるならワンチームで。
  • 複数の Agile チーム構成にするとき、でビジネスに分かりやすい機能(フィーチャ)を重視するなら、コンポーネントチーム(ソフトウェアの部品に着目したチーム構成)でなく、フィーチャーチーム(機能縦割りのチーム構成)で。
  • Microservices アーキテクチャを採用するなら、ちいさいAgileチームをたくさん。
ということになると思います。要するに、「人間間のコミュニケーション流」というものがソフトウェア開発には決定的なインパクトを与える、ということをまず認め、それを積極的に活用するように、ということです。
「ソフトウェアは会話でできてる」(Software is made of conversations) という、このブログのテーマそのものだったので、ちょっと嬉しかったのです。
以下、参照文献。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s