MMMとは
まず、ブルックの法則の背景を説明します。1975年に彼が作成した理由は何ですか?
人月は、1か月に1人が行った作業を表す架空の作業単位です。ブルックスの法則によれば、有用な仕事を人月で測定することは不可能だという。
ソース:https : //en.wikipedia.org/wiki/The_Mythical_Man-Month
かつては、複雑なプログラミングプロジェクトは大きなモノリスシステムを意味していました。そして、ブルックスは、これらを開発者間のコミュニケーションなしで、そしてタスクとそれを実行する人々との間の複雑な相互関係のセットを確立することなく作業できる個別のタスクに完全に分割できないと主張します。
これは、非常にまとまりのあるソフトウェアモノリスに非常に当てはまります。デカップリングがいくら行われても、大きなモノリスは、新しいプログラマがモノリスについて学ぶために必要な時間を要求します。また、通信オーバーヘッドが増加し、利用可能な時間がますます増えています。
しかし、本当にこのようにする必要がありますか?モノリスを作成し、開発者の人数に応じてコミュニケーションチャネルを維持する必要n(n − 1) / 2
がn
ありますか?
数千人の開発者が大きなプロジェクトに取り組んでいる企業があることを知っています...そしてそれはうまくいきます。したがって、1975年以降に変更されたものがあるはずです。
MMMを緩和する可能性
2015年、PuppetLabsとIT Revolutionは2015 State of DevOps Reportの結果を公開しました。そのレポートでは、彼らは高パフォーマンスの組織と非高パフォーマンスの組織との違いに焦点を合わせました。
高パフォーマンスの組織は、いくつかの予期しない特性を示しています。たとえば、彼らは開発において最高のプロジェクト期日パフォーマンスを持っています。運用における最高の運用安定性と信頼性。また、最高のセキュリティとコンプライアンスの実績。
レポートで強調されている驚くべきことの1つは、1日あたりの展開数の指標です。しかし、1日あたりの展開だけでなく、展開/日/開発者、およびパフォーマンスの高い組織とパフォーマンスの低い組織で開発者を追加した場合の影響も測定しました。
これはそのレポートのグラフです-
成果の低い組織は、神話上の男月の仮定に沿っています。高性能な組織は、開発者の数に応じてデプロイ/日/開発の数を線形にスケーリングできます。
Gene KimによるDevOpsDays London 2016での優れたプレゼンテーションは、これらの調査結果について語っています。
どうやってするの
まず、どのように高性能な組織になるのですか?これについて説明している本がいくつかありますが、この回答には十分なスペースがありませんので、それらにリンクします。
ソフトウェアおよびIT組織にとって、パフォーマンスの高い組織になるための重要な要素の1つは、品質と速度に焦点を当てることです。
例えば、ウォード・カニンガムは、私たちが未解決のままにしておいたすべてのものを技術的負債として説明しています。これは、時間があるときに修正されるという約束が常にあるため、経営陣に受け入れられています。
決して十分な時間はなく、技術的な負債はますます悪化しています。
技術的負債を増大させる原因は何ですか?
- レガシーコード
- 環境の手動構成
- 手動テスト
- 手動展開
レガシーコードマイケルフェザーズによる「レガシーコードを効果的に使用する」で定義されているように、自動テストがないコードがあります。
いつでもショートカットを使用してコードを実稼働に移行します。事業はこの借金を永久に維持する負担を負います。その後、展開のプロセスはますます長くなります。
ジーンはプレゼンテーションで、6週間の展開を行っている会社について話しています。数万の非常にエラーが発生しやすい退屈な手順を伴い、400人を拘束し、毎年4回これを行います。
DevOpsの原則の1つは、小規模な展開をより頻繁に行うことで信頼性が得られることです。
例
これら2つのプレゼンテーションは、Amazonがコードを本番環境にデプロイするのにかかる時間を短縮するために行ったすべてのことを示しています。
Geneによれば、これらの高パフォーマンスの組織で時間とともに変化するのは、開発者の数だけです。したがって、Amazonの例から、4年でさらに人を追加するだけで展開が10倍になったと言えるでしょう。
これは、特定の条件下で、適切なアーキテクチャ、適切な技術的慣行、適切な文化的規範により、開発者の数が増えるにつれて開発者の生産性が拡大することを意味します。そして、DevOpsは間違いなくこれらすべての真っin中にあります。