metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-09-25 12:17 pm

О TDD, ретроградстве и варении в собственном соку

По мотивам предыдущего поста про taucraft: решарпер там или не решарпер, но Test-Driven-Development штука (вроде бы) объективно полезная.

При этом я почти уверен, что я TDD не использую, т.к. уже 15 лет занимаюсь всякой хренью в экстренном темпе, тесты у меня все заключаются в "проверить 10 раз чтобы миграция 30 Гб БД прошла успешно" и "отчетность видна от имени пользователя, который ей будет пользоваться".

Правильность же реализации/рефакторинга/замены всего с нуля проверяется за счет двойной записи бухгалтерии, наличия нескольких путей расчета одной и той же цифры и статических гарантий (т.е., например, я никогда не стану делать отчет отдельными запросами по списку аналитических кодов, если его можно сделать одним select/group by, при этом в него нужная аналитика попадет гарантированно). Плюс функциональщина, статические типы, кодогенерация - ну невозможно ошибится в коде, если у тебя источник информации для кода всегда один. А ошибки вида "не так спроектировали" - тестами не лечатся.

Еще я не использую разного рода современные инструменты, версии студии меняю через 2-3 года после их выхода, склонен использовать самодельные компоненты вместо готовых и вообще страдаю ретроградством.

Проблема в том, что у меня совершенно нет критериев оценки, где я прав и пропускаю ненужные buzz-words мимо ушей, а где не прав, и упускаю полезные инструменты. Потому что на всех работах инструменты/платформы/методики работы выбираю я и обсудить этот выбор на адекватном уровне не с кем.
Раньше хотя бы был вменяемый критерий "успеем проект сдать вовремя или не сделаем вообще", а сейчас и он смысл потерял - это вообще перестало зависеть от используемых технологий, а стало зависеть от наличия бабла у клиентов и правильной организации труда.

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

[identity profile] vit-r.livejournal.com 2012-09-25 10:19 pm (UTC)(link)
Человек имеет свойство повторять решения. Вероятность, что другой сделает ту же самую логическую ошибку, на порядок меньше.

[identity profile] guamoka.livejournal.com 2012-09-26 07:40 am (UTC)(link)
Но вероятность того, что другой сделает еще одну ошибку, исходя из своих тараканов, от этого ничуть не уменьшается.

[identity profile] metaclass.livejournal.com 2012-09-26 09:29 am (UTC)(link)
Это как раз компенсируется. Если люди одинаково вменяемые но мыслят по разному - обычно баги разные :)

[identity profile] vit-r.livejournal.com 2012-09-26 01:11 pm (UTC)(link)
Это не более чем повод поговорить и разобраться.

[identity profile] guamoka.livejournal.com 2012-09-26 03:23 pm (UTC)(link)
Кстати, да! Отличный способ показать кипучую деятельность на ровном месте- поговорить и разобраться. Скажем, заказчик захотел, чтобы яйцо было разбито. Вася сделал это с острого конца, а Петя решил, что это следует делать с тупого конца. И вот они, два молодых льва, вооруженные до зубов алгоритмами, функциональщиной и принципами ажайл девелопмента бросились говорить и разбираться. Вася с пеной у рта доказывает, что на толстом конце яйцо будет устойчивее, а Петя утверждает, что с толстого конца надо меньше быть, т.к. там диаметр больше, и ложка пролезет сразу. Призывают старого гуру, который где-то что-то когда-то подобное уже делал на старом проекте. Но оказалось, что там он варил яйца вкрутую и разрезал их потом пополам. О-ло-ло! Пишут наконец письмо заказчику! А там тоже сидит какой-то стопятидесятый субконтрактер, который боится принимать такое важное решение, потому что за это будет бо-бо карьерным ростом и деньгами. И вот он начинает всячески спихивать с себя принятие этого решения, созывать совещания, отвечать ни да ни нет. Машина крутится, кастомер биллится, процесс идет! Отличный был повод поговорить и разобраться!

[identity profile] vit-r.livejournal.com 2012-09-26 04:50 pm (UTC)(link)
Не надо ставить себя в пример. Я написал одну строчку. Из этого незачем порождать базар на десять.

Если граждане идиоты, им никакая методология не поможет. Если вменяемые, быстро выяснят где ошибка, и продолжат работу.

[identity profile] guamoka.livejournal.com 2012-09-26 04:53 pm (UTC)(link)
ну, раз не надо было базара, то можно было не отвечать. все равно ниичего интересного не прозвучало.

[identity profile] vit-r.livejournal.com 2012-09-26 04:54 pm (UTC)(link)
Интересно, почему в российских профессиональных форумах постоянно нарываешься на хамство, а буржуи умеют любые вопросы решать без истерик...

[identity profile] guamoka.livejournal.com 2012-09-26 04:56 pm (UTC)(link)
пока что истерите вы.

[identity profile] perepertoz.livejournal.com 2012-10-11 12:37 am (UTC)(link)
поэтому рулят стартапщики - пока корпоративщики с субконтрактниками обсуждают, они успевают отбить с обоих концов %)
в минусах - write-only код, но это всяко лучше "собери совещение", я щитаю