52
Как инженерные практики помогают экономить бизнесу Ребров Андрей

как инженерные практики помогают экономить бизнесу

Embed Size (px)

Citation preview

Page 1: как инженерные практики помогают экономить бизнесу

Как инженерные практики помогают экономить бизнесу

Ребров Андрей

Page 2: как инженерные практики помогают экономить бизнесу
Page 3: как инженерные практики помогают экономить бизнесу

О чем этот доклад

Page 4: как инженерные практики помогают экономить бизнесу
Page 5: как инженерные практики помогают экономить бизнесу

Для кого этот доклад

Page 6: как инженерные практики помогают экономить бизнесу

Если вы…

•  dev (qa, ops) и хотите что-то внедрить

•  менеджер и вам постоянно что-то «впаривают»

•  коуч/консультант и никак не можете объяснить, что команде нужно что-то внедрить

…то вы пришли по адресу!

Page 7: как инженерные практики помогают экономить бизнесу

Пришло время историй

Page 8: как инженерные практики помогают экономить бизнесу

История 1. Про Selenium •  Есть классный фреймворк – Selenium!

Давайте его использовать у нас!

•  У нас есть проработанная система на TestComplete.

•  TestComplete - $#$&#!

•  …

Page 9: как инженерные практики помогают экономить бизнесу
Page 10: как инженерные практики помогают экономить бизнесу

Don`t!

•  Никогда не говори, что текущие наработки – ерунда

•  Новизна технологии – не аргумент

•  То, что технологию используют «вот эти ребята» не аргумент, даже если это Google

Page 11: как инженерные практики помогают экономить бизнесу

Как сработало

•  Привлекай «ручных» тестировщиков на свою сторону – они твои заказчики

•  Делай демо своих наработок как можно чаще – так ты покажешь, что фреймворк прост в использовании

•  Во время демо создай позитивную обстановку – принеси чай и печеньки

•  Тренируйся в обучении своему фреймворку

Page 12: как инженерные практики помогают экономить бизнесу

Как продали бизнесу

•  Удешевляем разработку, так как быстрее находим баги

•  Долгое время не понадобятся новые тестировщики – есть автотесты

• Можем брать больше задач в итерацию

• Можем быстрее выходить в релиз

Page 13: как инженерные практики помогают экономить бизнесу

Новые безопасны и дают преимущество

Page 14: как инженерные практики помогают экономить бизнесу

История 2. Про TDD • Ребята, вам нужно TDD – оно

рулит!

• Но нам придется переписать весь наш проект, чтобы можно было тестировать!!!

• Ну и что, зато у вас будут тесты!

• …

Page 15: как инженерные практики помогают экономить бизнесу
Page 16: как инженерные практики помогают экономить бизнесу

Don`t! • TDD ради тестов и TDD – самый

глупый аргумент

• TDD ради всеобщего блага – еще более глупый аргумент

• То, что TDD используют «вот эти ребята» - ну вы поняли…

Page 17: как инженерные практики помогают экономить бизнесу

Как сработало

• Просвещение в виде видео

• Личный пример – сделал, засек временя, не нашел багов, повторил

• Conding Dojo – пробовать что-то новое самому _ВСЕГДА_ страшно, лучше бояться вместе

Page 18: как инженерные практики помогают экономить бизнесу

Как продали бизнесу

Партизанский TDD:

• Применяем в течении 3-4 недель

• Показываем, что ситуация (метрики по SLA, баги, wtf/sec) улучшилась

• фиксируем договоренности

Page 19: как инженерные практики помогают экономить бизнесу

TDD позволяет писать код эффективно

Page 20: как инженерные практики помогают экономить бизнесу

История 3. Про Refactoring

• Давайте отрефакторим вон тот модуль!

• Зачем? Он же работает!

• Но там спагетти-код и масса нарушений в коде

• …

Page 21: как инженерные практики помогают экономить бизнесу
Page 22: как инженерные практики помогают экономить бизнесу

Don`t! •  Когда ты говоришь о рефакторинге –

ты оскорбляешь чей-то код, будь готов к сопротивлению

•  Переписать, потому что так написано в книге – очередной глупый аргумент

•  Сразу говорю, убеждать, что на рефакторинг нужен сразу месяц не стоит

Page 23: как инженерные практики помогают экономить бизнесу

Как сработало

•  Визуализация проблем – поставь Sonar, менеджеров пугают цифры

•  Рассказать про технический долг и как он влияет в перспективе

•  Подготовить план рефакторинга с объяснением почему в определенный момент времени мы переделываем именно этот код

Page 24: как инженерные практики помогают экономить бизнесу

Как продали бизнесу •  Показать график

•  Рассказать, что делают с должниками =)

Page 25: как инженерные практики помогают экономить бизнесу

Рефакторинг позволяет не бояться долгов

Page 26: как инженерные практики помогают экономить бизнесу

История 4. Про автоматизацию

• Дима, давай автоматизируем тестирование!

• И зачем нам это?

• Ну, мы сможем заниматься интересными задачами и будет круто!

• …

Page 27: как инженерные практики помогают экономить бизнесу
Page 28: как инженерные практики помогают экономить бизнесу

Don`t! •  Автоматизация ради автоматизации – как

TDD ради TDD, а это мы уже прошли

•  Не говори, что автоматизация ничего не стоит – будешь выглядеть дураком

•  Запомни! Не бывает бесплатных инструментов, как минимум они стоят твое рабочее время

•  Не стоит бежать к лиду, как только прочитал про инструмент, попробуй сам

Page 29: как инженерные практики помогают экономить бизнесу

Как сработало

• Показать концепт как оно работает

•  Знать о преимуществах и недостатках

• Показать, разные варианты использования – чем больше выбор, тем больше вероятность, что хоть один подойдет

Page 30: как инженерные практики помогают экономить бизнесу

Как продали бизнесу

• Посчитать ROI автоматизации

• Показать, что поддержка стоит дешевле, чем отдельный человек, который будет делать все вручную

• Показать стоимость ОШИБКИ, которую может допустить такой человек

Page 31: как инженерные практики помогают экономить бизнесу

Хорошие роботы спасут в беде

Page 32: как инженерные практики помогают экономить бизнесу

История 5. Про Feature Toggling и ветки

• Нужно перестать делать ветки под каждую новую ветку!

• Почему?

• Так завещал Martin Fowler!

• …

Page 33: как инженерные практики помогают экономить бизнесу
Page 34: как инженерные практики помогают экономить бизнесу

Don`t! •  Не все знают, кто такой Фаулер =)

•  Прочти Фаулера сначала сам

•  Не стоит кидаться терминами cherry pick, feature branch и так далее – вы будете выглядеть как колдун вуду

•  Говорить, что «feature toggle это как if, но не if, а по другому» тоже не стоит

Page 35: как инженерные практики помогают экономить бизнесу

Как сработало

•  Экономим время на merge`ах веток – теперь их нет

•  У всех разработчиков всегда последний код – все видят картину целиком

•  В разы проще становится настройка Continuous Integration (о нем ниже)

Page 36: как инженерные практики помогают экономить бизнесу

Как продали бизнесу

• Теперь в любой момент мы можем выключить тот или иной элемент функционала – у нас есть набор конфигов для этого

Page 37: как инженерные практики помогают экономить бизнесу

Не плодим сущностей без необходимости

Page 38: как инженерные практики помогают экономить бизнесу

История 6. Про Continuous Integration

•  Нам срочно нужен Continuous Integration, чтобы мы знали, что ничего не сломали!

•  А почему ты не проверяешь на своем компьютере?

•  А зачем?

•  …

Page 39: как инженерные практики помогают экономить бизнесу
Page 40: как инженерные практики помогают экономить бизнесу

Don`t!

•  Никогда, еще раз, никогда не говорите, что CI будет находить ваши ошибки – вы выставляете себя в плохом свете

•  CI не просто штука, которая запускает тесты – если ваш менеджер технарь, ему не стоит такое говорить

Page 41: как инженерные практики помогают экономить бизнесу

Как сработало • CI позволяет делать регрессионное

тестирование на уровне кода – снимаем нагрузку с тестировщиков

• Можем автоматизировать наши процессы (см. пункт 4)

• Не требует поддержки

Page 42: как инженерные практики помогают экономить бизнесу

Как продали бизнесу

• Так же, как автоматизацию

• Сказали, что это путь к непрерывной поставке (будет дальше)

Page 43: как инженерные практики помогают экономить бизнесу

CI заботится о стабильности в коде

Page 44: как инженерные практики помогают экономить бизнесу

История 7. Про DevOps

•  Давайте настроим Nagios, Chef, Graphite и Logstash и станем DevOps`ами!

•  А как это поможет?

•  Ну мы просто будем делать все быстрее

•  …

Page 45: как инженерные практики помогают экономить бизнесу
Page 46: как инженерные практики помогают экономить бизнесу

Don`t!

•  Не продавай инструменты – проблему процессов ими не решишь, а фейл за тобой останется

•  Построение DevOps процесс долгий – не говори, что за неделю все станет здорово

•  Не решай проблему админов за них самих – они обидятся

Page 47: как инженерные практики помогают экономить бизнесу

Как сработало

•  Визуализация процесса – все увидят, что творится что-то не ладное и появляется поддержка всей команды

•  «Затуши пожар» в течении недели - быстрая победа добавляет очков

•  Как обычно, показать прототипы не помешает

Page 48: как инженерные практики помогают экономить бизнесу

Как продали бизнесу

•  Процесс поставки становится прозрачным и управляемым

•  Поставка делается за пару часов, а не дней

• Мы не потеряем данные пользователей

• Мы сможем стать «фабрикой по производству фич»

Page 49: как инженерные практики помогают экономить бизнесу

DevOps позволяет нам быть первыми на рынке

Page 50: как инженерные практики помогают экономить бизнесу

В качестве эпилога

Page 51: как инженерные практики помогают экономить бизнесу
Page 52: как инженерные практики помогают экономить бизнесу

Twitter

@andrebrov

E-mail

[email protected]

Skype

rebrov.andrey

Вопросы?