Специализация (разделение труда) способно оптимизировать работу только при соблюдении следующих условий1:
- Все, что перемещается между участками работ, - это производимый рабочий продукт
- Специалисты гарантированно и значительно превосходят неспециалистов
- Система производства - это направленный ациклический граф
В разработке ПО не соблюдается ни одно из них.
Специализация (с точки зрения специалистов против неспециалистов) не помогает, потому что:
- Большинство задач не требуют высокой квалификации, поэтому выигрыш невелик
- Никто не работает в одиночку, требуется коммуникация и передача результата, что означает зависимость от результата работы других
- Специалисты в разработке не делают одну и ту же операцию изо дня в день, они решают разные проблемы в одной области. А если и делают, то выгорают от единообразной и/или неэффективной работы.
- Специалисты дороги, поэтому нужно управлять их загрузкой (максимизировать)
- Специалисты становятся де-факто запечатанными “бункерами”, хранящими знания и техники
- Специалисты легко превращаются в бутылочные горлышки вследствие пунктов 4 и 5
- пред. 1-1a1 Физическое производство оптимизировано под снижение вариативности
- см. 1-1a1a Разделение труда увеличивает производительность в физическом производстве - в физическом производстве разделение труда оправдано.