Тяжела и неказиста...
Всё-таки удивительная штука - жизнь практикующего программиста.
Вот бывает, проектируешь что-нибудь, ну например систему "автомобиль". Напрягаешь свою стареющую память, вспоминаешь все похожие задачи, пишешь так чтобы в случае чего, не напрягаясь, расширять систему по ходу добавления требований. Рассчитываешь чтобы можно было легко наращивать грузоподъёмность. Чтобы можно было подменить стандартный двигатель на аэротурбину или десять мопедных моторчиков. Чтобы количество колёсных пар можно было неограничено увеличивать. Чтобы водители на ходу могли меняться. Чтобы любой прицеп можно было прикрутить и сзади, и сверху, и с любого бока. И чтобы могла ездить и вперёд и назад не теряя ходовых качеств (ведь бывали и такие случаи в практике). И думаешь, что теперь предусмотрел всё и дальше будешь, поплёвывая в потолок, спокойно развивать систему.
А потом внезапно приходят новые требования, в которых пишут "А ещё надо чтобы сверху были вращающиеся рога с воздушными шариками!"
no subject
Очень хороший манифест по ряду вещей - http://programming-motherfucker.com/
no subject
Манифесту - зачёт (хотя я конечно too old for this extremist shit).
no subject
no subject
- Linus Torvalds
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Но вообще по топику - исходно выполнен громадный overengineering
no subject
no subject
Пока что вышеописаный процесс - лучшее что у меня получалось. Альтернатива - "говнокодить, а потом рефакторить" мне кажется хуже с точки зрения перспективности, ибо оставляет за собой гниющие болотца кода, имеющие тенденцию разрастаться...
no subject
Я не спорю, что процесс работающий, self-satisfying и вообще кому-то right way to do.
Но имхо правильной стратегией было бы идти по линии прототипирования, то есть делать макет автомобиля в натуральную величину до тех пор, пока на нем некому ездить, а не садиться и сразу выпиливать его из единого куска железа.
no subject
Увы, я мало видел *-менеджеров, готовых сказать "Ништяк! Прототип рулит. А теперь мы всё выбрасываем и переписываем набело". Обычно бывает по-другому, и постаревшему мне уже сложно их винить...
no subject
— Прошло уже две недели разработки — покажите что-нибудь.
— Смотрите: вот архитектура, вот документация, вот тесты, вот прототип.
— Вы что же, за две недели НИЧЕГО НЕ СДЕЛАЛИ?
no subject
no subject
Не, в этом месте "ничего не сделали" уже не катит
no subject
Случается так, подходишь к сотруднику и говоришь в неясных образах, смысл которых сводится к задаче клиента, а точнее говоря, чтобы тому было хорошо. Начинаешь объяснять то, что и сам не понимаешь, работник нервничает, говорит, типа, отстань от меня, я могу складывать и умножать, неясные образы мне чужды, они не ложатся ни в фон неймана архитектуру, ни в нейроподобный мозгх. В конце концов, чтобы от него отстали он решает делать автомобиль, а там будь что будет. Будь, что будет наступает в конце, в виде рогов, когда переделывать уже поздно.
no subject
И получается, что очень важно насколько исполнитель является аналитиком в предметной области или насколько он опытен вообще. Первый попытается понять логику и назначение поставленной задачи и может угадать недосказанное в задании, но может и не угадать. А второй - начнёт строить общие решения, типа колёсной базы для чего угодно, что позволит в будущем менять направление развития, но ценой первичной разработки и последующей эффективности.
Увы, программирование - это не просто.