Возьмем, например, архитектора жилых сооружений. Он получает требования, по этим требованиям подготавливается проект, а затем, после одобрения, он передается в разработку строительной компании.
Или возьмем пекаря. Пекарь может экспериментировать с ассортиментом хлебобулочных изделий в своей лавке, найти наиболее оптимальное соотношение ассортимента, качества ингредиентов и цены каждого из изделий для нахождения точки в многомерном пространстве с наибольшей маржинальностью. После этого пекарю достаточно просто производить булки и зарабатывать на них, лишь изредка экспериментируя, чтобы проверять, не изменились ли у его покупателей вкусы.
Возьмем же модельера Баленсиагу, создавшего всю современную индустрию моды и множество современных выкроек. Каждое его произведение – эксперимент, но и законченный шедевр. Баленсиаге достаточно было работать с тканями и булавками, а его помощник делал зарисовки выкроек. После того, как Баленсиага заканчивал экспериментировать, они получали готовую модель, и выкройки передавались в производство мастерам.
Возьмем, например...
Да возьмите кого-угодно, кроме математика, философа или программиста (наиболее прикладное сочетание первых двух), и вы будете иметь дело с чем-то законченным, чем-то, что имеет предопределенные границы. В случае же с программистами, таких границ нет. Роберт Мартин, например, часто упоминает что то, что программа делает сейчас, – это только вторая по важности вещь. Первая же вещь – то, что будет уметь программа завтра.
Мы говорим о жизни, об эволюции и адаптации – задачах, которые природа решает статистическими методами вроде "вброшу побольше разнообразия, и, может быть, что-то выживет". Мы же не играем в кости и пытаемся противопоставить этой естественной мудрости (тому, как оно есть) странные инженерные и научные подходы. В итоге люди разочаровались в таких подходах, совокупно именуемых Waterfall, и решили перейти к чему-то подобному Agile.
Agile – это про бесконечную несовершенность и незавершенность, про вечную адаптацию, которая и есть жизнью. Теперь мы поставили себе еще более сложную задачу: хотим создавать живые системы гораздо более сложные, чем мы сами, при этом мы даже самих себя не смогли познать как следует – слепые болваны, что строят Вавилонскую башню на фундаменте собственного невежества.
Когда человек глуп или без большого опыта опытен, он питает оптимизм в отношении разработки. Он считает, что может запрограммировать все, создавать вселенные, быть Демиургом, величайшим из богов и титанов существом. С опытом пыл остывает, мы наблюдаем, как башня разрушается под действием собственного веса и непредсказуемых свойств из-за сложности конструкции.
Мы строим и замечаем, что в какой-то момент башня перестает рости, а все, чем мы заняты, – попытки сохранить "высоту", сохранить монстра. В этом чудовище мы должны разглядеть самих себя, ведь наш труд есть отражение нас самих, и ужаснуться.
В чем я вижу выход, так это в том, чтобы пытаться вообще ничего не строить, а если что-то строить, то очень маленькое, необратимое, должное, необходимое для нашего выживания и покоя. Это уже не Agile, это аскеза. На практике стоит уходить от абстракций и сложных композиций, просторных рассуждений. Нужно сдвинуться с точки построения миров в сторону выпечки булочек. Решения, что мы создаем должны быть просты, как булочки. Тогда они будут закончеными, и ими можно будет насладиться.
P.S. Эту и другие мои публикации об IT можно найти в Telegram.
Комментарии
Так и не понятно почему так сложно программировать! Узнал об интересах автора к мифологии. Много философии и рассуждений о незаконченности... Где о программировании? )) Человеческая лень всему проблема, хочется сделать одно и шоб в нем было и сан узел и даже встроенный МРТ а потом, а потом еще косметичка, а еще столярный стол, мало ли... вдруг я захочу стул и тот шоб оно сооружалось само! ))) Программирование является обслуживающей системой человеческого бытия. которое безгранично в своих стремлениях объять необъятное, булочник всего-то печет булочки, в составе теста нет философии, хотя пытливый ум и там её найдет! )))
Главное чтобы было интересно, тогда все сложности их преодоление будут приносить только радость и удовольствие!))
Можешь вообще не строить Вавилонской башни, кто Тебя заставляет? Более того, можешь даже не трогать бедных булочников, которым так же как и всем остальным, в условиях современности, приходится автоматизировать процессы, а так же заниматься своими вавилонскими башнями, которые так же стоят в основании более древней башни из крови и пота.
Не любишь воевать, так не трогай тех, кто тащит камни в окоп. Создай домашнюю сеть, подключи все свои гаджеты к ней, разверни домашний сервер из перфокарт и общайся между устройствами через аудиокассеты. И опять же, - это не есть плохой путь.
Просто программирование это постоянное самокопание "а правильно ли я сделал, а безопасно ли приложение, а не надо ли будет всё обновлять через пол года...?" и так далее.
Большую часть времени я не пишу код, а думаю на каком уровне абстракции я должен реализовать тот или иной метод. Оглядываясь назад, я вижу, что я был гораздо производительнее, я писал тупой код с минимум классов, разграничений бизнес-логики, все было просто и выполняло поставленные задачи, а сейчас как-то даже уныло стало.
"Мы строим и замечаем, что в какой-то момент башня перестает рости, а все, чем мы заняты, – попытки сохранить "высоту", сохранить монстра." - Вот прям точное описание того с чем имею дело каждый день.
"В этом чудовище мы должны разглядеть самих себя, ведь наш труд есть отражение нас самих, и ужаснуться" - через это предложение проглядывает истина!
отлично, чувствуется жизненый опыт и наличие мысли, приятно читать
Спасибо за интересную статью