Tagged: structure

Закон Конвея

Я все время забываю формулировку закона (правила?), а гуглится он почему то очень плохо, так что запишу его тут. Итак, Джон Конвей когда-то заявил что:

Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

что можно перевести как:

Организация которая разрабатывает систему ... вынуждена делать систему по структуре повторяющую структуру коммуникаций внутри организации

В общем если в компании разрабатывающей ПО есть 3 отдела, которые занимаются этим проектом, то он, с точки зрения архитектуры, будет представлять из себя 3 больших модуля. Или если у вас есть 2 офшорные команды, то и проект будет состоять из двух частей.

Причем если эти команды тесно общаются, например устраивая ежедневные skype митинги и вообще, то и модули будут тесно связаны — например единая сборка, репозиторий, документация, трекер, но разные библиотеки лежащие рядом. Но если общаются лишь переписываясь по email, то получите связь через какой нибудь RESTful API. Десятки раз видел подобные примеры.

Или, как сказал Эрик Реймонд:

Если у вас есть 4 команды разрабатывающие один компилятор — вы получите компилятор работающий в 4 прохода (4-pass compiler)

См. закон на википедии: Conway's law