Urbancodeでは、これを「Bob the Builder」アンチパターンと呼んでいます。良いニュースは、ボブ (あなた) がループから抜け出したいということです。ビルド担当者が休暇に行けなかったり、プロセスの一部が停止しない限り病気になったりする場合は、実際には容認できない問題があります。もし私がベッティングマンなら、プロセスを「訓練された猿」のレベルまで単純化するプロセスを開始すると、頭が良くて実際に追加できるのに、なぜこのような単純なことをすることに時間を費やしているのか疑問に思うでしょう.どこかに価値がある。
私たちの本の「ボブ・ザ・ビルダー」症候群の症状:
- ビルド、または特定のタイプのビルドのすべてのリクエストは、個人または小規模なチームを通過します。
- これらのビルド リクエストへの応答は、開発者にとって厄介なほど遅くなります。ビルド チームが昼食中の場合は、何時間も待ちます。
- ボブ、またはボブのチームは、時間のかなりの部分を単純作業に費やしています。
- ボブ一家がその日家に帰ったり、ランチに行ったり、休暇に行ったり、病気になったりすると、チームが物事を成し遂げる能力が妨げられます。
AnthillProのお客様には、この種のものをすべてオートメーションにプッシュするように伝えています。異なるマシン、異なるビルド番号などを使用する 2 つのビルド タイプがあることは問題になりません。
最初のステップは、プロセスを単純化することです。「訓練された猿」のプロセスに取り掛かることができるように、できるだけ複雑なものを取り除いてください。何かがそれに近づいたら、サルをコンピューターに置き換えるのは非常に簡単です。
もっと具体的なアドバイスをしたいのですが、カオス以外に複雑さがどこから来るのかを教えてくれなかったと思います。この状況では、無秩序で悪い慣行を攻撃する必要がある場合があります。「このソース コードのベースラインとその 2 つのファイルとこれらの 3 つのファイル」というビルドを行っていますか? それはトリッキーで、おそらくループ内に CMer が必要です。禁止する方法を見つけてください。それを「ブランチを作成し、そのブランチに特定の変更を加える」に置き換えると、そのサルがビルドを実行できるようになります。
これらの変更はリスクが高いと主張できるはずです。あなたが優秀であっても、悪い日もあり、人的ミスを可能な限り排除したいと考えています。同時に、開発者とセルフ サービス (おそらく開発者と管理者が望んでいる) への迅速な対応を求めている場合は、自動化可能/モンキー可能にする必要があるものもあります。
より良いフォームを持つことは当面は良いことであり、ツールをうまく使用することは常に良いことですが、私は「訓練されたサル」の問題をかなり積極的に攻撃します. 訓練されたサル (またはコンピューター) が実行できないことはすべて、プロセスを終了する候補となる必要があります。「訓練された猿」の状態になったら、ビルドの自動化を実施して、あなたも開発者も猿になる必要がないようにします。これにより、あなたの役割が "Bob the Builder" から "Bob the Build System Owner" に変わります。