В дебрях водопада
Jul. 12th, 2014 10:30 pm
SCRUM is great: you don't have to measure quality and the Product Owner is a scapegoat for all epic failures. Написал в одном нехорошем месте. Перенесу сюда, чтоб было.
Программисты, воспевающие скрам напоминают проституток, агитирующих за свой образ жизни.
Первым делом, scram - это не agile. Это процесс, практически религиозный культ, а про процессы написано в первой строчке Agile Manifesto (той, что сразу после введения).
Scrum - это Эффективный Менеджмент™ во всей своей красе. Вместе с полным незнанием предмета, полным непониманием накопленного человечеством опыта, высосанными из пальца доказательствами и совершенно неправильным использованием слов.
Любая скрам-команда, если этот бардак не прекратить, достаточно быстро выходит на безотходный цикл. То есть, они производят баги и идиотизмы со скоростью большей, чем потребна для их исправления. (В это время менеджер начинает кричать, что народ зашивается и проект горит, если ему не купят ещё десяток-другой душ. Ему их дают. Потом дают ещё. А потом он идёт на повышение.)
Как же насчёт удивительных побед, выполненых по этой методологии?
Чудес я не исключаю, но в них не верю. Помнится, как-то в фирме с красивыми сертификатами ISO, CMMI и кучей всяких других выяснил, что то, что у них спецификацией называется, на самом деле куча мусора, который никто не использует, а вся информация идёт по мейлу. Но на бумаге всё красиво.
Также и со scrum-победами: Немного поскребёшь позолоту и выясняется, что внутри или совсем не scrum, или совсем не успех.
Ещё интересно, что при всей управляемости scrum-проекты невозможно планировать. То есть, пообещать релиз софтостроители смогут, но вот, что в него попадёт на самом деле, это уже никто предсказать не в состоянии. Не в смысле очередной итерации, а в глобоальном смысле приближения к безбаговому софту, выполняющему нужные клиенту функции.
В нормальной системе, даже та, которая agile (правда, не первого уровня, а третьего) всё вовремя просчитывается и вместо «Вот релиз - жрите» у клиента и менеджмента есть достаточно точная система, предсказывающая, когда что получится, и что нужно сделать, чтобы сделать быстрее или качественнее.
Если немного отойти от мест с вебом и Эффективным Менеджментом™, в таких условиях даже можно поработать.
Scrum-посиделки типа стендап митингов и прочих игр тоже отличаются от того, что просиходит там, где есть чёткие техзадания, распределение ролей и план, за выполнение которых можно спросить по всей строгости. В данном же случае люди собираются в основном, чтобы покрасоваться перед коллегами. Все куда-то бегут, чего-то ваяют, но общий смысл у всего процесса в целом редко когда присутствует.
В остальное время программисты заняты тупым кодонабиванием. Конечно, если думать, такой режим не вынести. Зато спокойно можно копипастить из Гугла с перерывами на стендапы и прочую ерунду.
Ещё проповедники scrum любят «доказывать» правильность своей религии сравнением со спортом, рассказывая о командах, заменимости игроков на поле, и приводя в примеры звёзд высшей лиги.
Если бы проповедники scrum, рассказывающие сказки о командной работе, читали книжки, он бы знали, что программирование - это не спорт и не конвейер. Это умственная деятельность. И человек - не слабое звено, которое нужно и возможно заменить процессом, а единственный и основной элемент процесса производства.
Впрочем, Эффективный Менеджмент™ в это не верит и дальше изыскивает способы заменить специалистов на толпы посудомоек или обезьянок.
Первым делом, основная задача спортивных игр - это не произвести что-то, а совершить некое бесполезное действие, например закатить на виду у всех в ворота мячик.
Дело не в том, что работа совершенно не интеллектуальная. Гораздо интереснее для рассмотрения то, что результат всегда в конечном итоге бесполезен. Лежит мячик в воротах или не лежит, от этого банк не разорится и поезд с рельс не сойдёт. Вся беготня по полю даёт в результате только фиктивные очки в виртуальном мире. Короче, чистый выпендрёжь.
Программисты создают новую реальность. Что создают футболисты? Даже цифры на табло за них другие люди переставляют.
Но, даже, в этом случае scrum - это не командная работа. Потому я и упомянул дружный коллектив борделя. (Вот где работа чисто по скраму, маман за Product Owner, а вышибалы за Scrum Master, ну и так далее, только менее формально. Надо, впрочем, спросить у специалистов. )
Команда - это совсем другое.
Взять хотя-бы этот несчастный футбол. "Собрались - погоняли мяч" - это уровень дворовой компании. Всё, что чуть серьёзнее работает по другим принципам.
Во-первых, тренер, имеющий практически диктаторские полномочия, разрабатывающий СТРАТЕГИЮ, выясняющий слабые стороны противников, планирующий как это использовать и составляющий для футболистов план тренировок.
Во-вторых, футболистам платят не за то, чтобы они раз в квартал мячик попинали. Их работа - это каждодневные изматывающие тренировки. Они работают над собой, до автоматизма заучивая необходимые навыки. Выполняют программу, заданную тренером. Даже с питанием руководствуются чёткими рекомендациями.
И отрабатывают приёмы командной работы.
"Дал пас - передал дальше - ударил и забил" - это не подарок свыше, как учат нас проповедники сказочных методов. Это результат стратегической разработки тренера, доведение этой стратегии до каждого исполнителя, полное осознание своих задач и действий партнёров, плюс методическое заучивание всех элементов вплоть до системы сигналов, способных работать в стрессовых условиях реального матча.
В каком месте то, что называется scrum похоже на такую командную работу?
no subject
Date: 2014-07-12 08:39 pm (UTC)no subject
Date: 2014-07-12 08:42 pm (UTC)no subject
Date: 2014-07-12 08:47 pm (UTC)no subject
Date: 2014-07-13 09:23 am (UTC)no subject
Date: 2014-07-13 09:28 am (UTC)Но идея с хабром интересная. Может быть, туда тоже закину.
no subject
Date: 2014-07-13 09:32 am (UTC)Я принципиально не участвую в работе сайтов, где любой ламер, написавший кучу комментариев, имеет право нажать кнопку "минус".
no subject
Date: 2014-07-13 09:35 am (UTC)no subject
Date: 2014-07-13 09:38 am (UTC)no subject
Date: 2014-07-14 11:36 pm (UTC)Там вроде бы движок такой, что это отражается на чём-то.
no subject
Date: 2014-07-15 12:01 am (UTC)no subject
Date: 2014-07-13 02:38 pm (UTC)no subject
Date: 2014-07-13 08:35 pm (UTC)no subject
Date: 2014-07-13 04:03 pm (UTC)По большому счёту скрам мне видится как попытка девелоперов выйти из подчинения ПМов, и это само по себе неплохо :) Но недостаточно: разработчики действительно не очень умеют планировать, определять стратегию и достигать успеха. Это все поправимо, но решение находится за пределами скрама.
Я соглашусь, что сам по себе скрам мало чего значит: "борделей" я тоже насмотрелся. Но я видел два случая, когда реализация была успешной. В обоих случаях создавалась система взаимоотношений и правил, частью которой был скрам. В одном случае скрам пришлось очень сильно покорежить, чтобы он работал для создания комплексной системы (девелоперы роптали, но результат был изумительным).
Соглашусь и с тем, что в скраме есть проблема карьерного роста (не профессионального, а типа "как выйти на качественно иной уровень, если для этого есть предпосылки"). Но тут должен начальник как-то свой хлеб отрабатывать, и давать людям возможность проявить себя.
В общем, все сложно, но не безнадёжно, я считаю :)
no subject
Date: 2014-07-13 08:41 pm (UTC)... то же самое, но раз в неделю и на другом уровне
... решение находится за пределами скрама
... скрам пришлось очень сильно покорежить
Если у бабушки есть яйца, то это, скорее всего, дедушка.
Создатели этой религии не придумали ничего нового, просто взяли давно известные вещи и немного завернули в другую упаковку. Странно бы было бы, если бы "элементы скрама" не работали.
По большому счёту скрам мне видится как попытка девелоперов выйти из подчинения ПМов
В Agile Manifesto написано, что люди важнее процессов.
Я уже писал, что создатели Скрама сказали, что манифест замечательный, но люди не важны, а про процессы там ничего нет. Отсюда следует, что необходимо создать процесс.
Кому необходимо? Явно не программистам. Целевая аудитория религии процессов - менеджеры.
no subject
Date: 2014-07-16 02:37 pm (UTC)no subject
Date: 2014-07-16 02:42 pm (UTC)no subject
Date: 2014-07-16 03:58 pm (UTC)Там, где это важно, люди выставляют ключи компиляции и проверяют все сообщения об ошибках.
Другое дело, если один маленький баг убивает программу, то это плохая программа.
no subject
Date: 2014-07-16 04:19 pm (UTC)Так GCC зачастую ничего не расскажет про UB, а просто убьёт код.
Всё-таки, понятно, что "стандарт языка Цэ" не вполне описывает то, что компилятор может делать. Скажем, хотя по стандарту при возникновении UB программа может делать всё, что хочется, компилятор явно не должен вставлять туда вызов "rm -rf $HOME", да и вызов nethack'а недопустим.
Т.е. есть некоторые плохо формализуемые правила разработки компиляторов.
> Другое дело, если один маленький баг убивает программу, то это плохая программа.
Какая программа имеется ввиду? Компилятор или обрабатываемая?
-------------------------------------------------------------
Насколько я понимаю, тут есть серьёзный конфликт между низкоуровневостью языка и желаемой степенью оптимизации. Т.е. в языке более высокого уровня руки у компиляторостроителей развязаны должны быть сильнее.
no subject
Date: 2014-07-16 04:39 pm (UTC)Есть сертифицированные версии GCC. Есть специальные компиляторы. Там, где надо, всё это стоит и никаких побочных эффектов нет. Оптимизацию обычно отключают.
Оптимизация - это уже игра с возможными неожиданностями.