О растущей сложности

Dan Kocherga
All Your Base
Published in
2 min readApr 27, 2018

В 2004 году Стиви написал: “You don’t work in the software industry”.
В этой заметке я хочу поразмышлять над парой пунктов его текста:

  1. Работа, которую мы делаем, никогда не заканчивается.
  2. Системы со временем становятся только сложнее.

Можно перефразировать это так: «мы чиним очень усердно, но все всегда сломано».

Бесконечные границы

В качестве примера приведу путь человечества от bare metal к контейнерам:

По мотивам презентации Маркуса Йоханссона.

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

Все будет только хуже

Картина выглядит так, будто решением проблем является не действие, а процесс:

Пытаясь сделать все правильно раз и навсегда, я поворачивался против этого процесса и получал по зубам.
Но если не получается справиться с болью, сделай боль частью себя.

Вокруг давно используют этот принцип:

  1. Кто-то устал бороться с изменением требований в проектах и придумал agile manifesto.
  2. Кто-то устал бороться с ошибками людей и придумал Blameless PostMortems.
  3. Кто-то устал бороться с распределенными системами и придумал Principles of Chaos Engineering.

Во всех этих примерах люди осознанно приняли неизбежное как часть своей рутины. Возможно, рост сложности наших систем — неотъемлемая часть их разработки, и стоит в полной мере это учитывать.

В качестве итогов, я оставляю напоминание самому себе:

  1. Инициатива приводит к ответственности.
  2. Инновации приводят к сложности.
  3. Прогресс неостановим, поэтому невозможно избежать инициативы и инноваций.
  4. Лучше быть там, где есть достаточно людей для работы над пунктами 1 и 2.

--

--