Тяжела и неказиста...
Mar. 11th, 2013 02:28 pmВсё-таки удивительная штука - жизнь практикующего программиста.
Вот бывает, проектируешь что-нибудь, ну например систему "автомобиль". Напрягаешь свою стареющую память, вспоминаешь все похожие задачи, пишешь так чтобы в случае чего, не напрягаясь, расширять систему по ходу добавления требований. Рассчитываешь чтобы можно было легко наращивать грузоподъёмность. Чтобы можно было подменить стандартный двигатель на аэротурбину или десять мопедных моторчиков. Чтобы количество колёсных пар можно было неограничено увеличивать. Чтобы водители на ходу могли меняться. Чтобы любой прицеп можно было прикрутить и сзади, и сверху, и с любого бока. И чтобы могла ездить и вперёд и назад не теряя ходовых качеств (ведь бывали и такие случаи в практике). И думаешь, что теперь предусмотрел всё и дальше будешь, поплёвывая в потолок, спокойно развивать систему.
А потом внезапно приходят новые требования, в которых пишут "А ещё надо чтобы сверху были вращающиеся рога с воздушными шариками!"
no subject
Date: 2013-03-11 06:49 pm (UTC)Очень хороший манифест по ряду вещей - http://programming-motherfucker.com/
no subject
Date: 2013-03-12 02:10 pm (UTC)Манифесту - зачёт (хотя я конечно too old for this extremist shit).
no subject
Date: 2013-03-12 02:20 pm (UTC)no subject
Date: 2013-03-12 02:28 pm (UTC)- Linus Torvalds
no subject
Date: 2013-03-11 08:19 pm (UTC)no subject
Date: 2013-03-11 08:33 pm (UTC)no subject
Date: 2013-03-12 02:08 pm (UTC)no subject
Date: 2013-03-12 05:32 pm (UTC)no subject
Date: 2013-03-12 03:44 am (UTC)no subject
Date: 2013-03-12 06:30 am (UTC)no subject
Date: 2013-03-12 11:12 am (UTC)Но вообще по топику - исходно выполнен громадный overengineering
no subject
Date: 2013-03-12 02:00 pm (UTC)no subject
Date: 2013-03-12 02:08 pm (UTC)Пока что вышеописаный процесс - лучшее что у меня получалось. Альтернатива - "говнокодить, а потом рефакторить" мне кажется хуже с точки зрения перспективности, ибо оставляет за собой гниющие болотца кода, имеющие тенденцию разрастаться...
no subject
Date: 2013-03-12 04:06 pm (UTC)Я не спорю, что процесс работающий, self-satisfying и вообще кому-то right way to do.
Но имхо правильной стратегией было бы идти по линии прототипирования, то есть делать макет автомобиля в натуральную величину до тех пор, пока на нем некому ездить, а не садиться и сразу выпиливать его из единого куска железа.
no subject
Date: 2013-03-12 04:10 pm (UTC)Увы, я мало видел *-менеджеров, готовых сказать "Ништяк! Прототип рулит. А теперь мы всё выбрасываем и переписываем набело". Обычно бывает по-другому, и постаревшему мне уже сложно их винить...
no subject
Date: 2013-03-12 01:53 pm (UTC)— Прошло уже две недели разработки — покажите что-нибудь.
— Смотрите: вот архитектура, вот документация, вот тесты, вот прототип.
— Вы что же, за две недели НИЧЕГО НЕ СДЕЛАЛИ?
no subject
Date: 2013-03-12 01:58 pm (UTC)no subject
Date: 2013-03-12 04:07 pm (UTC)Не, в этом месте "ничего не сделали" уже не катит
no subject
Date: 2013-03-13 04:01 pm (UTC)Случается так, подходишь к сотруднику и говоришь в неясных образах, смысл которых сводится к задаче клиента, а точнее говоря, чтобы тому было хорошо. Начинаешь объяснять то, что и сам не понимаешь, работник нервничает, говорит, типа, отстань от меня, я могу складывать и умножать, неясные образы мне чужды, они не ложатся ни в фон неймана архитектуру, ни в нейроподобный мозгх. В конце концов, чтобы от него отстали он решает делать автомобиль, а там будь что будет. Будь, что будет наступает в конце, в виде рогов, когда переделывать уже поздно.
no subject
Date: 2014-08-13 05:25 pm (UTC)И получается, что очень важно насколько исполнитель является аналитиком в предметной области или насколько он опытен вообще. Первый попытается понять логику и назначение поставленной задачи и может угадать недосказанное в задании, но может и не угадать. А второй - начнёт строить общие решения, типа колёсной базы для чего угодно, что позволит в будущем менять направление развития, но ценой первичной разработки и последующей эффективности.
Увы, программирование - это не просто.