recoder: (Default)
recoder ([personal profile] recoder) wrote2013-03-11 02:28 pm
Entry tags:

Тяжела и неказиста...

Всё-таки удивительная штука - жизнь практикующего программиста.

Вот бывает, проектируешь что-нибудь, ну например систему "автомобиль". Напрягаешь свою стареющую память, вспоминаешь все похожие задачи, пишешь так чтобы в случае чего, не напрягаясь, расширять систему по ходу добавления требований. Рассчитываешь чтобы можно было легко наращивать грузоподъёмность. Чтобы можно было подменить стандартный двигатель на аэротурбину или десять мопедных моторчиков. Чтобы количество колёсных пар можно было неограничено увеличивать. Чтобы водители на ходу могли меняться. Чтобы любой прицеп можно было прикрутить и сзади, и сверху, и с любого бока. И чтобы могла ездить и вперёд и назад не теряя ходовых качеств (ведь бывали и такие случаи в практике). И думаешь, что теперь предусмотрел всё и дальше будешь, поплёвывая в потолок, спокойно развивать систему.

А потом внезапно приходят новые требования, в которых пишут "А ещё надо чтобы сверху были вращающиеся рога с воздушными шариками!"

work

[identity profile] mpak666.livejournal.com 2013-03-11 06:49 pm (UTC)(link)
В общем-то излишнее проектирование тлен!

Очень хороший манифест по ряду вещей - http://programming-motherfucker.com/

[identity profile] mpak666.livejournal.com 2013-03-12 02:20 pm (UTC)(link)
Альтернатив мне кажется нету, любой большой проект превращается в словнов, подпорки и десяток хоботов для ученых. Писать, рефакторить.... это же работа, нам за нее и платят!

[identity profile] zubian.livejournal.com 2013-03-11 08:19 pm (UTC)(link)
как это знакомо :))))

[identity profile] plumqqz.livejournal.com 2013-03-11 08:33 pm (UTC)(link)
Воот. Всего не предусмотришь.

[identity profile] plumqqz.livejournal.com 2013-03-12 05:32 pm (UTC)(link)
Это повод писать максимально просто.

[identity profile] russuv.livejournal.com 2013-03-12 03:44 am (UTC)(link)
ох тяжела!! и не говори!

[identity profile] bamsic.livejournal.com 2013-03-12 06:30 am (UTC)(link)
Да, очень трудно объяснить заказчику, почему "вот это крохотное" изменение требует таких затрат...

[identity profile] larubin.livejournal.com 2013-03-12 11:12 am (UTC)(link)
Тут метафора совсем другая. Тут не крохотное изменение требует затрат, а крохотное изменение настолько слева от концепции системы, что последующая поддержка будет весьма геморройна, особенно если таких изменений будет множество. В таком случае правильной стратегией является кастомный бранч, в котором это крохотное изменение делается и потом благополучно умирает (что, понятно, не всегда возможно).

Но вообще по топику - исходно выполнен громадный overengineering

[identity profile] larubin.livejournal.com 2013-03-12 04:06 pm (UTC)(link)
> Пока что вышеописаный процесс - лучшее что у меня получалось.

Я не спорю, что процесс работающий, self-satisfying и вообще кому-то right way to do.

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

[identity profile] bamsic.livejournal.com 2013-03-12 01:58 pm (UTC)(link)
Да, и такое тоже часто бывает.

[identity profile] larubin.livejournal.com 2013-03-12 04:07 pm (UTC)(link)
> вот прототип

Не, в этом месте "ничего не сделали" уже не катит

[identity profile] resiner.livejournal.com 2013-03-13 04:01 pm (UTC)(link)
Как человек, который просит время от времени приделать рога к автомобилю, хочу спросить - при чем тут автомобиль? Делали нечто четырехколесное, потом приделали к нему рога, стало рогомобиль, мы его и делали. Автомобиль был в голове работника, а на самом деле делали рогомобиль.
Случается так, подходишь к сотруднику и говоришь в неясных образах, смысл которых сводится к задаче клиента, а точнее говоря, чтобы тому было хорошо. Начинаешь объяснять то, что и сам не понимаешь, работник нервничает, говорит, типа, отстань от меня, я могу складывать и умножать, неясные образы мне чужды, они не ложатся ни в фон неймана архитектуру, ни в нейроподобный мозгх. В конце концов, чтобы от него отстали он решает делать автомобиль, а там будь что будет. Будь, что будет наступает в конце, в виде рогов, когда переделывать уже поздно.