В дебрях водопада
Sep. 6th, 2020 11:11 amВ дискуссии под прошлым постом проявилось странное непонимание... Да, ладно. Чего уж там. Ничего странного.
Основная проблема agile в том, что нет различия между работой делаемой и сделанной. В процессах качества важным моментом является рапорт производителя или контролирующей инстанции об окончании работ. Это контрольная точка, с которой начинается user acceptance test. (Понятно, что писать надо по-английски, но оставил русский ради последней фразы, потому что agileсродни деревенской русской культуре очень русский разухабистый деревенский культ.)
User acceptance test - это когда архитектор встаёт на лодке под мостом и машет рукой, чтобы по нему пускали первый состав; когда инженер в присутствии заказчика замыкает рубильник и включает установку; когда повар пробует суп, кивает головой и говорит помощнику "Разливай!"
Люди в софтописании кто забыл, а кто и не знал, что так бывает. Современный пользователь ничего не решает и никуда не денется. Вместо всяких ритуалов софт просто сообщает ему:
-- Ей, пользователь! Нам тут опять удалось скомпилировать. Ну, с богом!
Основная проблема agile в том, что нет различия между работой делаемой и сделанной. В процессах качества важным моментом является рапорт производителя или контролирующей инстанции об окончании работ. Это контрольная точка, с которой начинается user acceptance test. (Понятно, что писать надо по-английски, но оставил русский ради последней фразы, потому что agile
User acceptance test - это когда архитектор встаёт на лодке под мостом и машет рукой, чтобы по нему пускали первый состав; когда инженер в присутствии заказчика замыкает рубильник и включает установку; когда повар пробует суп, кивает головой и говорит помощнику "Разливай!"
Люди в софтописании кто забыл, а кто и не знал, что так бывает. Современный пользователь ничего не решает и никуда не денется. Вместо всяких ритуалов софт просто сообщает ему:
-- Ей, пользователь! Нам тут опять удалось скомпилировать. Ну, с богом!
no subject
Date: 2020-09-06 09:41 am (UTC)no subject
Date: 2020-09-06 09:46 am (UTC)Ну и понятно, что искать ошибку -- это время и мозги, которых нет. Отключить лишний тест и отчитаться о безошибочном прохождении -- дело пяти минут.
no subject
Date: 2020-09-06 09:51 am (UTC)no subject
Date: 2020-09-06 09:57 am (UTC)no subject
Date: 2020-09-06 09:58 am (UTC)no subject
Date: 2020-09-06 10:00 am (UTC)no subject
Date: 2020-09-06 03:43 pm (UTC)Мне на днях пришла реклама на фесбуке. "Agile security solutions". Ну тут даже я, который так-то за аджайл (done right), подохуел. Понятно, что цель - ничто, движение - все. Но как-то жалко денег и данных.
no subject
Date: 2020-09-06 03:45 pm (UTC)Вот массовый пример из моей недавней практики. В конце тест-кейса (не содержащего ни одного ассерта) пишем
System.assert(true, 'test passed');no subject
Date: 2020-09-06 05:15 pm (UTC)- Сколько процентов сделано?
- Мы выполнили пятьсот двадцать семь тестов из них пятьсот четырнадцать успешных. Из критических ошибок осталась только одна: программа у пользователя не запускается.
- Мне не нужны подробности! Я спрашиваю, сколько выполнено в процентах.
no subject
Date: 2020-09-06 05:17 pm (UTC)А с безопасностью давно пора успокоиться: Все наши данные рано или поздно будут у китайцев и надо это правильно учитывать. Пусть подавятся.
no subject
Date: 2020-09-06 06:56 pm (UTC)Это, типа, любая система, считающая покрытие кода тестами, даст хороший показатель, а поскольку ассертов нет, то и все тесты проходят?
no subject
Date: 2020-09-06 07:14 pm (UTC)В той тулзе, что у нас, этот ассерт как раз "свидетельствует", что данные функции протестированы.
no subject
Date: 2020-09-06 07:15 pm (UTC)no subject
Date: 2020-09-07 07:28 am (UTC)no subject
Date: 2020-09-07 07:45 am (UTC)А дальше уже начинается совсем другая тема.
no subject
Date: 2020-09-07 08:07 am (UTC)no subject
Date: 2020-09-07 09:00 am (UTC)Впрочем, некоторые справились проще и до сих пор в некоторых системах после столетнего дня рождения у человека возраст сбрасывается в ноль.
no subject
Date: 2020-09-07 09:50 am (UTC)no subject
Date: 2020-09-07 09:53 am (UTC)2. Как вариант - простенький канбан
3. Как еще вариант - сказать честно что это не проект, а рисёрч и делаем как можем
no subject
Date: 2020-09-07 10:09 am (UTC)Канбан выглядит хорошим ответом, надо будет почитать про это подробнее. Хотя его, наверное, нужно совмещать с периодическим тотальным перетряхиванием проекта.
no subject
Date: 2020-09-07 10:11 am (UTC)no subject
Date: 2020-09-07 10:18 am (UTC)no subject
Date: 2020-09-07 10:25 am (UTC)no subject
Date: 2020-09-07 10:48 am (UTC)Если почитать ту же книгу, там банально скзано, что выводы из разработки гибридных автомобилей Тойота засекретила, в отличие от системы качества Демминга, которую она распространяет по всему миру. (Это позволяет повысить качество поставщиков, что резко снижает расходы самой Тойоты.)
Нету волшебной методики, которая заменит опыт и знания. Особенно, опыт и знания необходимые для разработки в условиях быстрой адаптации.
А требования меняются по ходу выполнения любого проекта. Вопрос в том, успевает ли проект за изменениями или заказчику пытаются впихнуть морально устаревший результат.
Agile security solutions
Date: 2020-09-07 05:54 pm (UTC)"Wreck driven development:Agile in construncting real time embedded systems. Edited by Dmitriy Rogozin. Pre-order only 14.88$ "
no subject
Date: 2020-09-08 05:54 pm (UTC)no subject
Date: 2020-09-08 05:59 pm (UTC)Даже без этого есть вещи, которые не находятся типичными тестами. Например, утечки памяти, неправильные асимптотики алгоритмов, эстетические требования и т.д.
Да, господи, я находил ошибку в Самоучителе языка F* - требуем одно, а доказываем другое. И ведь это игрушечная задача, опытнейшие люди.
no subject
Date: 2020-09-09 04:42 am (UTC)В целом я согласен, что квалификация инженеров (или программистов, если они не считаются инженерами) имеет значение, и немалое, но если бы водопад хорошо работал, он бы по-прежнему доминировал...
no subject
Date: 2020-09-09 07:25 am (UTC)Moneyfall -- это просто модель оценки бюджета. Я про это уже писал. Можно почитать вглубь блога, чтобы мне каждый раз не приходилось повторяться.
Ежу понятно, что выгоднее отказаться от эффективных методов, приводящих к коротким проектам и долгоживущему софту, а вместо этого пересадить заказчика в Hamster Wheel. Тут agile даёт сто очков вперёд любым другим вариантам, потому что просто выкидывает качество результата из рассмотрения.
no subject
Date: 2020-09-09 07:36 am (UTC)Тесты, включённые в индустриальную систему контроля качества, -- это совсем другая культура. Сейчас почти вымершая.
no subject
Date: 2020-09-09 11:43 am (UTC)Что на доске нарисовали - то и делаем
no subject
Date: 2020-09-09 11:53 am (UTC)no subject
Date: 2020-09-09 03:59 pm (UTC)no subject
Date: 2020-09-09 04:07 pm (UTC)Тут можно говорить только о стоимости обнаружения ошибки и её потенциальной стоимости, но не о автоматизации отчётности по тестированию.
no subject
Date: 2020-09-09 07:54 pm (UTC)По теме обсуждения - можно провести сегментацию по тому, кто 'заказчик' (и как платят)
- если платят за один проект, ограниченный по срокам - то да, 'hamster wheel' довольно привлекательно... но оно ограничевается тем, что заказчики могут прекратить платить вот конкретно тебе за топтание на месте, и отдать решение задач кому-то ещё.
- если 'заказчик' - это обощённая аудитория (от сотен до миллиардов), и ты сам (или твоя организация) пытаешься понять, что им нужно и за что они заплатят. И вот тут вот - мой основной аргумент - казалось бы написал раз (дешево и хорошо), и продавай сотни/тысячи/миллионы раз... но нет, в реальности не получается, сложность систем уже слишком велика, и конкурентов много, и пользователи всё время хотят больше, быстрее, дешевле (а лучше вообще бесплатно).
no subject
Date: 2020-09-09 08:16 pm (UTC)Опять же, об этом я писал пять лет назад. Tнас и Tнах
В принципе, чем больше заказчик бегает по кругу, тем сложнее ему выскочить. Основная проблема в том, что при этом ответственность переходит на того менеджера, который принимал решения о выборе исполнителя. Потому, "Мы потеряли гору денег, но приобрели важный опыт. Давайте продолжать."
А про то, почему хорошее быстро умирает, есть классический текст "Worse is better". Хороший софт работает и следующую версию никто покупать не спешит. Постепенно у фирмы заканчиваются деньги на развитие и её покупают бракоделы, которые раз в год трясут мошну пользователей. (Понятно, что картина немного сложнее, но сейчас дальше углубляться не буду.)
А ёмкость рынка ограничена. Прекрасный софт можно продать не "миллионы раз", а в пределах десятка тысяч, может быть, пару сотен. Некоторый специфичный может иметь меньше тысячи потенциальных клиентов.
А массовый рынок банально забивается рекламой, а не качеством.
no subject
Date: 2020-09-23 10:44 am (UTC)...У нас есть поезд номер... маршрута из А в Б длиной и массой такими-то. Сортамент грузов часто обновляется и нас задолбало под кажду поездку заказывать новый состав. Мы слышали что-то хорошее о контейнерных перевозках, но также слышали гораздо больше плохого. Может быть есть какие-то другие подходы?
no subject
Date: 2020-09-23 10:54 am (UTC)Кто-то намёк понял, кто-то нет. Дальше уже не мои проблемы.
no subject
Date: 2020-09-23 12:15 pm (UTC)Причем, если понял, то в рамках своей мизантропии. Как водится.
no subject
Date: 2020-09-23 12:32 pm (UTC)no subject
Date: 2020-09-23 12:56 pm (UTC)no subject
Date: 2020-09-23 01:03 pm (UTC)А информацию в сети сейчас искать всё бесполезнее. Проблема, даже, не в цензуре и кривизне поисковиков. Проблема в мусоре.
no subject
Date: 2020-09-23 02:22 pm (UTC)