AD
Ну в scala не силен-может там так ровненько все идет... Но не представляю если у вас фича приедет, которая потребует полпроекта перелопатить.
Dmitry
да и рефакторить приходится
Slava
Да, скала хороша тем, что там в одну строчку можно столько функциональных вызовох сделать, что потом просто переписываешь одну строчку (это проще чем понять чо там было задумано), map map reduce flatMap :D
Evgeny
Пизды даём продакту за такие фичи
Evgeny
За недальновидность
Evgeny
Но на самом деле пока не даём, у нас таких случаев не было
Evgeny
Потому что продакт сам понимает это
AD
Пока везет )))
Evgeny
Ну и скала не динамический язык, не собралось — исправляй
Evgeny
Тоже удобно
AD
На моих проектах, например как нормативка поменялась-херак и поехали изменения. А минфину люлей не накатишь.
AD
При чем тут нединамический???
Evgeny
Компилятор не сбилдил — сидишь, чинишь
Evgeny
Я к тому, что компилятор сам смотрит за тупыми ошибками
Slava
Да уж проблемы обычно именно в них
Evgeny
Потому и хотфиксов по мелочам нет
AD
Э.... Вы шутите сейчас? За логикой тоже компилятор следит?))))
Evgeny
Так я говорю про тупые ошибки
Slava
нормативка = готовая спека для тестов
Slava
минфин = рос заказчик, это не про продуктовую разработку
Slava
гос*
Evgeny
Опечатки, кривые импорты, неправильно прилетевшие типы
Slava
соответственно тут хоть TDD, BDD и прочие вещи, в контексте agile гос это не типовой сценарий (у НАС)
Slava
мой поинт если чего в том, что если продукт развивается, то TDD это тормоз
AD
Тут +100500
Slava
проверяется это просто, продайте TDD маленькой компании которая понимает сколько кэша тратит на это :)
Slava
вот кстати у меня вопрос, запуск Маском ракет - это Agile или нет?
Slava
О, кстати #whois Вячеслав, CEO https://ru.kaiten.io Интересуюсь гибкими методами разработки ПО Могу рассказать про: - опыт использования Kanban в разрезе "как это поможет компании заработать больше денег" - вероятностной прогнозирование и оценку рисков по срокам задач (проектов / стратегических целей).
Slava
На тему совместимости Scrum и Kanban – Scrum это набор ритуалов для команды, которая может сделать "что-то" от и до, а Kanban это путь от "че ваще тут творится в компании, кто все эти люди и что они делают", до бизнеса, способного конкурировать на высококонкурентных рынках (коих у нас как известно очень мало).
Slava
Теперь попробуем совместить ... :)
Anton
Где то читал про скрамбан в виде описания опыта внедрения. Если найду ссылку, поделюсь
Anonymous
мы в ябраузере стартовали без единого юниттеста хотя гугловые можно было адаптировать, через полгода где-то или даже раньше после первого миллиона пользователей юниттесты начали воскрешать, а TDD - это изощренный способ делать спецификации тестом, тесты прошли - сделал то что надо :) но это точно для команд которые много чего уже перепробовали, где-то рядом с парным программированием
Pavel
Доброго дня! Работаю начальником отдела прикладного ПО в СМС-Автоматизация. Наш отдел занимается разработкой ПО от проработки ТКП и предварительного обследования, до тех. поддержки созданного и внедренного продукта/проекта. Локация - Самара. Предметная область - промышленная автоматизация(включая АСУТП). Технологии - .NET + JS + Angular + Oracle/MS SQL/MongoDb. + WinCC OA. По организации работ - используем JIRA. Сначала спринты создавали по 2 недели, но потом перешли к канбану. В качестве базы знаний используем Confluence. Сборка и прогон модульных и приемочных тестов (Selenium) при помощи Teamcity. Ревью кода - Upsource(но тут пока идет туго). Из того что планирую попробовать на ближайших проектах - UserStroy Mapping в связке с Impact Mapping. Интересно услышать опыт ведения различных практик в контексте организации работы - что раньше не делали, что стали делать и к чему это привело. #whois
Anonymous
привет! код ревью хорошо идет в удобных инструментах, например stash и при достаточно высоком уровне сознательности самих программистов, некоторые с самомнением считают, что это нужно менеджерам для галочки
Anonymous
я в стеше даже конфиги держала для продсерверов и мне их программисты одобряли
Pavel
Программисты понимают важность ревью, но на практику со временем забивают из за неудобного софта. Стэш еще не пробовали.
Anonymous
мы в яндексбраузере вливали в ветку master только через ревью, поставив ограничение в стеше - нет двух галочек - нет мерджа
Anonymous
я так один раз в 3 часа ночи оказалась должна коробку батончиков крупской когда смогла в столь поздний час найти ревьюера
Pavel
Спасибо, посмотрю в этом направлении. Чистота и диктатура :)
Anonymous
диктатура пролетариата :)
Denis
А тем временем Алексей Пименов опубликовал перевод ещё одного видео https://www.youtube.com/watch?v=_rE2hTiEwow
Pavel
Саша, привет ;)
Alexandr
привет! рад присоединиться к группе :)
Aleksei
Ох блин, Денис - быстрый ппц
Alexandr
#whois как положено представлюсь Рыжов Александр * 10 лет работал начальником отдела разработки в СМС-ИТ, руководил разработкой проектов для энергетики на .NET (WPF,WCF), MSSQL, Delphi, Web (angular) сейчас перешел работать в СберТех возглавлять разработку на Pega BPM в Самаре * есть опыт TDD, BDD, практики XP, проводил несколько раз Cyber-Dojo, буду рад быть полезен * интересно будет обменяться опытом и узнать новое про Kanban, Lean, Agile * про группу узнал из facebook
Андрей
проверяется это просто, продайте TDD маленькой компании которая понимает сколько кэша тратит на это :)
У меня получилось убедить команду в нашем ИП, которая пока работает в минус и разрабатывает платёжный агрегатор, стараться писать по TDD. Вы временные потери подсчитывали? Нас, например, это ускоряет. За счёт того что дефекты практически отсутствуют и быстро фиксятся. Вместо того что бы дебажить дефекты мы спокойно пилим новый функционал и полностью уверены в его качестве. К примеру, у нас был не стестдрайвен репозиторий транзакции, на разбор полётов у пары ушло ~40мин, на исправление дефекта ~2ч 40мин. Я уверен что лучше бы это время было бы потрачено на тестдрайвинг. Платить всё-равно пришлось.
Karina
#whois Карина, Москва, из фейсбука. Продакт-менеджер в сервисе продажи авиабилетов, ранее PM в аутсорсинговых студиях и ещё раньше веб-разработчик. Всем привет
Alex
> Slava мой поинт если чего в том, что если продукт развивается, то TDD это тормоз TDD определяет дизайн кода. И если вы просто пишите тесты перед тем, как написать код - это не TDD, его стоит применять на определенных этапах разработки. Когда непонятен домен, когда непонятны подходы к разработке слабосвязанных компонент и т.д. Замедляет разработку все, что мы не знаем. Например, если пишем систему на Java и выносим какой-то микросервис, где лучше подходит Python, но в команде никто Python не знает - это замедляет разработку. Так же и с TDD, если команда не знает, где его применять, не имеет опыта с TDD, не понимает, где TDD, а где просто пишем Unit-тесты, это будет замедлять работу. Мы часто применяли TDD, чтобы сформировать подходящий дизайн в части системы. Затем тесты выбрасывали, поскольку свою работу они выполнили. Автоматическое тестирование делали уже через приемочные тесты, на более высоком уровне.
Андрей
> Slava мой поинт если чего в том, что если продукт развивается, то TDD это тормоз TDD определяет дизайн кода. И если вы просто пишите тесты перед тем, как написать код - это не TDD, его стоит применять на определенных этапах разработки. Когда непонятен домен, когда непонятны подходы к разработке слабосвязанных компонент и т.д. Замедляет разработку все, что мы не знаем. Например, если пишем систему на Java и выносим какой-то микросервис, где лучше подходит Python, но в команде никто Python не знает - это замедляет разработку. Так же и с TDD, если команда не знает, где его применять, не имеет опыта с TDD, не понимает, где TDD, а где просто пишем Unit-тесты, это будет замедлять работу. Мы часто применяли TDD, чтобы сформировать подходящий дизайн в части системы. Затем тесты выбрасывали, поскольку свою работу они выполнили. Автоматическое тестирование делали уже через приемочные тесты, на более высоком уровне.
А зачем выбросили юнит-тесты?
Alex
не всегда так делаем. в некоторых случаях их цель была - помочь создать дизайн. Поскольку сценарии дублировались в приемочных автоматических тестах, эти юнит выкинули
Alex
бывает, что и оставляем, когда приемочные автоматизировать сильно-сильно сложнее
Андрей
А какой профит вы получаете?
Alex
профит в том, что дизайн получается проще и тестабильный. По сути, с TDD мы проводили множество экспериментов и выбрасывание тестов - один из них. Мы не делаем так постоянно. В случае, когда тесты сохраняются - все понятно, тестабильность кода большой плюс для автоматизации. В случае, когда тесты выбрасывались после того, как сформирован дизайн, мы к ним возвращались на более позднем уровне. За счет того, что тестабильность была заложена в дизайн с самого начала, не возникало проблем с тем, чтобы написать юнит-тесты на один модуль или интеграционные на несколько сразу, подменив где-то зависимости. В добавок, мы даже на уровне интеграционных тестов внутри системы, в описании домена, порой привлекали бизнес-аналитиков, чтобы вместе с ними писать эти тесты.
Андрей
профит в том, что дизайн получается проще и тестабильный. По сути, с TDD мы проводили множество экспериментов и выбрасывание тестов - один из них. Мы не делаем так постоянно. В случае, когда тесты сохраняются - все понятно, тестабильность кода большой плюс для автоматизации. В случае, когда тесты выбрасывались после того, как сформирован дизайн, мы к ним возвращались на более позднем уровне. За счет того, что тестабильность была заложена в дизайн с самого начала, не возникало проблем с тем, чтобы написать юнит-тесты на один модуль или интеграционные на несколько сразу, подменив где-то зависимости. В добавок, мы даже на уровне интеграционных тестов внутри системы, в описании домена, порой привлекали бизнес-аналитиков, чтобы вместе с ними писать эти тесты.
Интересный случай, очень интересно. Была старая история когда на одной конференции спикером был поставлен вопрос: У вас на двух разных дисках хранится код тестов и продукта. Вы узнаете о том что один из дисков полностью уничтожен. На сохранность какого из дисков вы будете надеяться? Получается так что нужно надеяться на сохранение диска с тестами, потому что систему по тестам восстановить можно, тесты - нет. Я думаю я попробую провести такой эксперимент (да простит меня Кент Бек, я очень люблю эксперименты), можете рассказать свой контекст когда вам это понадобилось, при каких условиях и что вышло?
Alex
Контекст был в том, что перед нами стоял домен, который мы толком не понимали, как будет работать. Было много правил, которые вроде и описаны в пользовательских историях, но слишком много вопросов. Мы не понимали, как оно будет работать и, соответственно, как это спроектировать. Начали переносить требования в тесты, строить нужный домен внутри своей системы. Сформировав набор тестов, смогли сформулировать кейсы для бизнеса, которые требовали пояснений. Затем дополнили тесты и сформировали домен по ним, поддерживающий необходимые правила.
Dmitry
#whois Всем добрый денек) У нас отличная погода в Питере. Зашел к вам на огонек уму разуму поучиться. Занимаюсь внедрением ИС - в роли инженера или специалиста, но хочется расти, в сис. аналитики для начала.
Иван
Интересные цифры, Слава ;)
Evg
#whois Всем привет) Евгений. Казань. Занимаюсь разработкой финтех продукта и аутсорс-разработкой на заказ. Активно практикую и стараюсь применять agile в работе:) Интересен обмен опытом и новые знакомства.
Alexander
Много рассказов про TDD, а может кто-то есть кто работал по BDD? Интересует и позитивный, и негативный опыт.
Иван
Я смотрю наш чат превращается в филиал QA ))
Иван
Расскажите лучше лайфхаки кто какие применял по сдвигу майндсетов среднего уровня менеджмента!
Alex
Много рассказов про TDD, а может кто-то есть кто работал по BDD? Интересует и позитивный, и негативный опыт.
По нашему опыту, BDD хорош тем, что дает больше понимания команде разработчиков о бизнесе. Разработчики больше начинают думать в терминах бизнес-кейсов, нежели каких-то техничеких модулей, классов и т.д.
Иван
Типа "как убедить, что все метрики д.быть сугубо индикативные, а мотивация по KPI - зло!@
Dmitry
выбить пилот и показать результаты пилотной команды, не?
Anonymous
не рассказывать про свои метрики подчиненным, делать вид что их вообще нет
Dmitry
ну или да, стопить все на себе и не спускать ниже
Alex
Типа "как убедить, что все метрики д.быть сугубо индикативные, а мотивация по KPI - зло!@
Абсурдные примеры типа KPI по количеству вылитой воды из поливальной машины?
Anonymous
я долго думала про одного прожекта какой он крутой и как все успевает подпинывать всех вовремя - а у него была скрытая канбан-доска на его тикеты в жире :)
Dmitry
латентный агилист)
Evg
сервис по электронным платежам и переводам. Название, увы, сказать не могу)
Evg
wow, привет А что за финтех-продукт?
Иван
не рассказывать про свои метрики подчиненным, делать вид что их вообще нет
Тут контекст скорее не с точки зрения линейного менеджера, а реформатора (internal change agent)
Иван
Были может у кого кулстори по просветлению людей CEO -2,3 уровня?
Anonymous
я внедряла процессы на 300 человек яндекс.браузера, подойдет?
Anonymous
всегда хочу расшифровать BDD как BUG Driven Development и вздрагиваю :) а как правильно?