Post #36
63
Accidental and essential complexity
Замечали ли вы, что сложность бывает разной по природе?
Простой пример - ваш друг вышел на новое место работы, и вы интересуетесь, как ему в целом и насколько сложно. Он отвечает: «Ой, ну у нас всё сложно: доступы получал два месяца, в проекте нет никакой документации, сам проект неделю запустить не мог»
И другой вариант: «Ой, у нас всё сложно, оказывается, чтобы пользователи могли поднимать виртуалки по кнопке, нужно столько всего сделать. Разбираюсь пока, столько нюансов»
Заметили разницу? В одном случае это сложность, которую мы сами себе создали: не настроили процесс предоставления доступов, не написали вовремя документацию к проекту и так далее
А в другом случае сам по себе процесс выдачи виртуалок по кнопке сложный, и в этом нужно будет разбираться в любом случае
В первом случае сложность привнесённая (accidental), а во втором неизбежная (essential). Процесс выдачи доступов можно было бы правильно настроить, и он бы перестал быть сложным, а вот разработка и развитие публичного облака - это сама по себе сложная задача
Это довольно интересная классификация для понимания, потому что концептуально нам хотелось бы тратить время на неизбежную сложность и минимизировать привнесённую. В том числе поэтому и существует рефакторинг
А так пост вдохновлён подкастом Бреслава и Ложечкина про сложность, советую посмотреть/послушать
Замечали ли вы, что сложность бывает разной по природе?
Простой пример - ваш друг вышел на новое место работы, и вы интересуетесь, как ему в целом и насколько сложно. Он отвечает: «Ой, ну у нас всё сложно: доступы получал два месяца, в проекте нет никакой документации, сам проект неделю запустить не мог»
И другой вариант: «Ой, у нас всё сложно, оказывается, чтобы пользователи могли поднимать виртуалки по кнопке, нужно столько всего сделать. Разбираюсь пока, столько нюансов»
Заметили разницу? В одном случае это сложность, которую мы сами себе создали: не настроили процесс предоставления доступов, не написали вовремя документацию к проекту и так далее
А в другом случае сам по себе процесс выдачи виртуалок по кнопке сложный, и в этом нужно будет разбираться в любом случае
В первом случае сложность привнесённая (accidental), а во втором неизбежная (essential). Процесс выдачи доступов можно было бы правильно настроить, и он бы перестал быть сложным, а вот разработка и развитие публичного облака - это сама по себе сложная задача
Это довольно интересная классификация для понимания, потому что концептуально нам хотелось бы тратить время на неизбежную сложность и минимизировать привнесённую. В том числе поэтому и существует рефакторинг
А так пост вдохновлён подкастом Бреслава и Ложечкина про сложность, советую посмотреть/послушать
- 🔥 4
- 🤩 1








