技術別組織よりもやっぱり機能別組織が好き

機能別組織とは、ビジネスの機能に沿ってチームを組織化することである。 大企業では、巨大なアプリケーションの周辺に集められたり、 ビジネスユニットをサポートするアプリケーション群を管理するような部門に入れられたりする。 粒度がほどよくなってくると、開発者たちは小さなアプリケーションや 巨大なアプリケーションの一部の機能をサポートするような組織に集められたりする。

機能別組織のいちばんの強みは、 社会的な構造と関係が強く、ビジネス価値を提供しやすいという点だ。 私の考えでは、ソフトウェアプロジェクトとは、 サポートする活動をどれだけ改善したか(どれだけビジネス価値を生み出したか)で、成功かどうか判断される。 チームもこれと同じように組織化することで、顧客満足指向型のチームとなる——なんたってお金を払うのは顧客だ。

また、機能別組織だと、開発者は自分の担当するビジネス領域についての理解がより深まる。 ドメインの知識が深まれば深まるほど、顧客とのコミュニケーションも深まり、 ひいてはソフトウェアにまつわる決定力も向上する。 機能別組織であれば、開発者とユーザーの関係はよりよく、長く続く。

機能別組織では、タイム トゥ マーケットの向上が特に重要となってくる。 技術別組織だと、ビジネスニーズを考えていない人間に対して、 どうにかプロジェクトを動かしてくれるよう働きかけなければならない。 技術畑の人間はビジネス価値に関わろうとしないし、自ら何かをやろうとも思わない。 こういった環境でビジネス価値を生み出すというのは、 惑星を一列に並べるようなものだ★。with similar timeline★

機能別組織ではover-engeneeringは阻止される。 みんな技術ではなくビジネス価値に傾倒してしまうからだ。 ナードたちは必要以上に機能性に興味をもってしまうから、この点は非常に重要だ。 同様にテクニカルサポートの人間は、ビジネスに必要な実践的解ではなく、完璧なる一般解に必要以上に興味を持ってしまう。

こういったチームでは、技術的に何かにどっぷりつかった人間には出会わないだろう。 ここでは技術的な側面だけの狭い視野ではなく、ソリューションという幅広い視野が身につくのである。