Dmitry
Behavior
Dmitry
блин, там o или ou, не помню)
Иван
Anonymous
давай с начала, тут вопрос про метрики именно?
Иван
Нет, как пример. Вопрос про смену майндсета с планово-контрольного на коллаборативно-агильно.
Anonymous
процесс внедрения занял полтора года, из них первые полгода я тупила и пыталась по-хорошему :)
Anonymous
потом мы начали пилот, ткнув пальцем в группу, которая была "самая плохая" по мнению московского офиса у нас в Питере
Dmitry
с командами надо по-хорошему, а с менеджментом можно жестко)
Anonymous
и когда эта "самая плохая" стала крутой - на их примере мотивировали еще 12 групп
Anonymous
причем уровень разработчиков и тестировщиков не поменялся
Anonymous
просто на лиде разработки висело 400 задач и коллеги из москвы были все уверены что именно их задача - самая главная
Anonymous
мы начали с канбан-доски и плазменного экрана на котором она в реальном времени менялась
Anonymous
блокеры стали делаться оперативно без звонков из москвы
Anonymous
потом мы убедили начальника группы сделать стендапы - показав стендапы другой группы разработки, в мобильном браузере уже был "скрамно" своеобразный, а потом он САМ ПРИШЕЛ ПРОСИТЬ СПРИНТЫ чтобы отгородиться от очереди из 400 тикетов набором того что можно сделать за спринт
Anonymous
примерно также менялось мышление у всех остальных
Anonymous
мы ввели правило, что есть встреча между всеми заказчиками разработки и руководителем группы разработки, на которой из уже оценненных(планнинг покер) задач выставляются сквозные приоритеты
Anonymous
причем кто ушел со встречи - свои задачи в спринте потерял
Anonymous
и разработчики тогда из минска сказали мне главное: продавать спринты разработчикам можно просто: если они сделают в срок все тикеты/стори из спринта, новые они смогут выбрать из бэклога сами или даже не выбирать ничего а заняться рефакторингом или исследованиями
Anonymous
после этого у меня спринты внедрялись 1 совещанием и клонированием доски :)
Anonymous
а последние 2 группы пришлось сломить через главного прожект менеджера, они пошли к руководителю всей разработки и тот им разрешил быть последними кто не перейдет очень долго на новую систему, и когда я пришла к ним внедрять, гордо об этом сообщили, я тогда сказала "к вам придет начальство и вы "захотите" и сами обратно ко мне прибежите" ну почти дословно от раздражения незавершенности :) потом написала начальству, и через полдня они сами меня позвали и даже переговорку забронировали не только в мск но и в питере с видео(необычайно предусмотрительно для москвичей)
Иван
Кулстори, зачет!
Anonymous
статью чтоли теперь оформить из этого текста :) можете посмотреть видео с аджайл дейз 15 пошаговая инструкция по переходу на спринты, там будет инструкция, основанная на этом опыте
Ruslan Kuzminov
прекрасная мысль! =)
Ruslan Kuzminov
давай
Ruslan Kuzminov
как кейс
Ruslan Kuzminov
с результатами =)
Alexander
Anonymous
спасибо!
Alexander
Вам спасибо за подсказки) эх, должны же руки дойти запилить базу знаний по agile
Fedor
Anton
поржал тут над TDD хейтерами :)
Anton
когда у разработчиков не пишущих тесты, начнутся проблемы - приходите к нам ))
Иван
Антон, мочИ!
Иван
Культуру в массы!
Anton
я имею опыт работы и с тестами и без. могу сравнивать. вообще решение о том, надо писать тесты или нет - это бизнес решение, тут Слава прав. если у вас стартап и вам важна скорость в ущерб поддерживаемости кода - тесты будут вас замедлять. но надо понимать, что такой код долго не живет. но это вплоне себе жизненный кейс. если для бизнеса тесты не выгодны - их не надо писать.
Anton
но если уж решили что тесты на проекте нужны, то лучше уж писать по TDD, чем Test Last.
Anton
по опыту скажу что мне лично гораздо комфортнее писать новый код одновременно с тестами - либо по TDD, либо по Test First
Иван
Иван
Иван
А я бы вот такую тему вбросил
Anton
TDD тоже не серебряная пуля, он помогает там где домен сложный и сразу не поймешь откуда начинать. TDD организует процесс работы так, что ты двигаешься маленькими шагами, имеешь постоянно работающий код, в случае ошибки мгновенно видишь что сломано, и главное - после каждого 10-15 минутного цикла ты получаешь новый работающий инкремент функционала, который можно закоммитить
Иван
Кто-нить рэнкинг по cost of delay делает?
Anton
если хотите узнать сколько времени экономит TDD - посчитайте сколько времени вы тратите на дебаг
Иван
Или более сложным штукам типа WSJF. "Бизнес" участвует в оценках?
Oleg
А если 50% времени разработки это исправление ошибок, это о чем говорит?)) Стоит внедрять TDD?)
Anton
не знаю )) если домен сложный то да, если простой то нет. если в основном поддержка старого кода, то внедрять TDD уже поздно . но тесты писать никогда не поздно
Anton
а вообще если у вас 50% времени - исправление ошибок, то у вас явные проблемы с качеством. тут уже TDD не поможет. здравствуй рефакторинг, юнит тестирование, код ревью или парное программирование.
Oleg
Юнит или автотесты селениумные?) То есть что лучше на многолетнем продукте внедрять - тестовое покрытие методов или же автотестами покрыть, чтобы смоук тесты и интеграционка не позволяла ещё больше увеличивать процент?
Oleg
Кстати, парное программирование был опыт внедрения на распределенной команде?
Anonymous
это как? через тимвьюер?
Oleg
Ага, я делал через тимвьювер или VNC
Anton
да, есть такой опыт
Oleg
Один прогает, другой на хенгаусте висит и является навигатором собственно
Anonymous
юниттесты внедрять дешевле, вторые по стоимости интеграционные, ну вы поняли
Anton
селениум тесты не люблю. их писать легко, но на поддержке сдохнете
Anonymous
начинать с самого дорогого - ваш выбор
Anton
юнит + интеграционные
Anonymous
ага
Anonymous
как говорит мой хороший друг: нет юнитов - нет тестов :)
Anonymous
сначала правильная многослойная архитектура
Anonymous
уволить нафиг такую команду, как по мне или перевести в девопсы
Anonymous
ну да
Petr
Можно начать с того что юнит тестами покрывать новый функционал
Petr
Через пару месяцев предложить рефакторинг, когда понравится тесты писать
Anton
когда код написан и не поддерживается, то действительно романтический момент упущен, юнит тесты писать без толку. пишите интеграционные. но тут есть проблема. если код написан без тестабельного дизайна в уме, то вы не сможете написать интеграционные тесты. вам сначала придется распилить код на горизонтальные слои хотя бы, чтобы можно было мокать тяжелые зависимости (сервисы, БД, файловая система, …). а рефакторить код без тестов страшно. вот вам и и смертельная спираль. нет тестов - страшно рефакторить. не рефакторим - код загнивает - еще тяжелее писать тесты
Oleg
Иван
Anton
тады ой :)
Anton
в смысле ок. но все равно, скорее всего интеграционные тесты вам будут более полезны
Anonymous
на опыте переписать продукт дешевле чем бороться с зашоренностью мышления, как-то после ухода одного программера в его коде нашли "магию" замешанную на 4 параметрах, один из которых всегда равен 1
Anton
если есть критические модули, которые часто меняются или от которых много чего зависит с плане рисков, то лучше их дополнительно покрыть юнит тестами. но все покрывать не надо…
Anonymous
еще помогает код ревью
Oleg
Я пока на слоенку перевожу четко разделяя front (react), back (rest), bi (services), db (ну понятно). Помодульно
Oleg
Плюс прошу их покрывать тестами и некоторых программистов способных по TDD прошу
Anonymous
и требование покрытия тестами нового проверяемое на ревью