Скачать презентацию Дом который построили коты и кошки Кузовлев Евгений Скачать презентацию Дом который построили коты и кошки Кузовлев Евгений

c9895c6e8c7cfbfa6dd77f54658d99b6.ppt

  • Количество слайдов: 34

Дом, который построили коты и кошки Кузовлев Евгений Дом, который построили коты и кошки Кузовлев Евгений

Обо мне. С 2006 года: • • • Тестировщик Руководитель тестировщиков Разработчик Руководитель разработчиков Обо мне. С 2006 года: • • • Тестировщик Руководитель тестировщиков Разработчик Руководитель разработчиков СТО

О нас. Smart. Medicina: • • • Это про медицину Это про ПО уровня О нас. Smart. Medicina: • • • Это про медицину Это про ПО уровня enterprise Это ПО, написанное не на том языке Это ПО, написанное не так, как принято Команда ~25 человек

О чем мы тут вообще? • • • Про Про Про методологию процессы грабли О чем мы тут вообще? • • • Про Про Про методологию процессы грабли команду опыт

Задача: сделать медицинскую информационную систему: • Быстро • В соответствие с требованиями заказчика • Задача: сделать медицинскую информационную систему: • Быстро • В соответствие с требованиями заказчика • Обеспечить высочайшую надежность Условия: • Взаимоисключающие бизнес требования • Множество владельцев процессов

Методология Методология

Методология Agile • Быстро • Примерно в соответствии с требованиями* * - как-нибудь Методология Agile • Быстро • Примерно в соответствии с требованиями* * - как-нибудь

Методология Водопад • Все согласовано • Все в срок • Медленно • Ооооочень медленно… Методология Водопад • Все согласовано • Все в срок • Медленно • Ооооочень медленно…

Как получилось в итоге Как получилось в итоге

Как получилось в итоге Как получилось в итоге

Процессы Процессы

Процессы Git flow Continuous Integration Continuous Delivery Персонифицированная ответственность (коллективная ответственность не работает!) • Процессы Git flow Continuous Integration Continuous Delivery Персонифицированная ответственность (коллективная ответственность не работает!) • Контроль качества ПО • •

Git flow Git flow

CI • Git. Lab (в том числе smoke тестирование при мерж-реквестах) • Jenkins (ночные CI • Git. Lab (в том числе smoke тестирование при мерж-реквестах) • Jenkins (ночные сборки) • Redmine • Система миграций • Система автомержа основных веток

CD • Vagrant / docker для разработки и тестирования • Управление конфигурациями – puppet CD • Vagrant / docker для разработки и тестирования • Управление конфигурациями – puppet • Доставка и обновление кода – fabric • Мониторинг - zabbix

CD: особенности • Отсутствие технологических окон • Обновление по одной кнопке • Отсутствие миграций, CD: особенности • Отсутствие технологических окон • Обновление по одной кнопке • Отсутствие миграций, удаляющих или изменяющих данные в БД • Невозможно использовать ORM с жестким описанием структуры в коде приложения

Персонифицированная ответственность: KPI Персонифицированная ответственность: KPI

Персонифицированная ответственность: KPI Проблема № 1: задача «провисает» в промежуточных стадиях (тестирование, код-ревью): • Персонифицированная ответственность: KPI Проблема № 1: задача «провисает» в промежуточных стадиях (тестирование, код-ревью): • Ответственность разработчика за общий срок закрытия задачи • Ответственность тестировщика за срок невзятия задачи в тестирование Проблема № 2: качество реализованных задач, с т. з. бизнеспроцессов • Ответственность руководителя группы (lead разработчика) за приемку задач и соответствие бизнес-логике

Процессы: когда они нужны Разработка Развитие Git. Flow V V CI V V CD Процессы: когда они нужны Разработка Развитие Git. Flow V V CI V V CD V Перс. ответственность V

Процессы: когда их внедрять Разработка Развитие Git. Flow V V CI V V CD Процессы: когда их внедрять Разработка Развитие Git. Flow V V CI V V CD V V Перс. ответственность V

Контроль качества: task flow Контроль качества: task flow

Контроль качества: инструменты 0) 1) 2) 3) 4) TDD (не всегда!) Code Review Smoke Контроль качества: инструменты 0) 1) 2) 3) 4) TDD (не всегда!) Code Review Smoke тесты при MR Ручное тестирование задачи Функциональные ручные тесты при сборке epic задачи 5) Регресс (автотестами) при сборке stable 6) Ночные сборки

Контроль качества: когда и что Разработка Развитие TDD V V CR V V Smoke Контроль качества: когда и что Разработка Развитие TDD V V CR V V Smoke при MR V V Ручная приемка V V Функциональные ручные тесты при сборке epic задач V Авторегресс сборки stable V Ночные сборки V V

Команда Команда

Команда Команда

Команда: тестирование • 1 автоматизатор (QA) на 5 -6 разработчиков • 1 ручной тестировщик Команда: тестирование • 1 автоматизатор (QA) на 5 -6 разработчиков • 1 ручной тестировщик на 2 разработчиков • После внедрения – это еще и поддержка (+1 ставка)

Команда: разработка • • Деление на группы В группе не более 4 человек вместе Команда: разработка • • Деление на группы В группе не более 4 человек вместе с лидом Группа работает над epic-задачей (или группой задач) Сроки epic-задач не более 2 -х месяцев на группу Итог: возможность гибкого управления ресурсами даже при водопадной модели разработки.

Команда: как удержать людей Не стройте искусственных преград Устанавливайте рамки Объясняйте решения Следите за Команда: как удержать людей Не стройте искусственных преград Устанавливайте рамки Объясняйте решения Следите за рынком (и понимайте, где ваша целевая группа!) • Поощряйте людей • Следите за иерархией подчиненности • •

Команда: как удержать людей после запуска проекта • Все предыдущее не работает на 100%! Команда: как удержать людей после запуска проекта • Все предыдущее не работает на 100%! • Никак • Смириться и открыть вакансии

Грабли и опыт: что должно быть к моменту запуска • Мониторинг • CRM • Грабли и опыт: что должно быть к моменту запуска • Мониторинг • CRM • Работающая в read-only режиме основная система на протяжении Х месяцев (если вы замещаете другое ПО) • Описание функционала системы

Грабли и опыт: техдолг • Не заниматься техдолгом при создании системы • После запуска Грабли и опыт: техдолг • Не заниматься техдолгом при создании системы • После запуска системы, техдолг – полноправный участник планирования • Если за техдолг вам не платят – закладывайте его в сроки (и цену ) новых доработок.

Что сложнее – сделать проект или развивать его? Что сложнее – сделать проект или развивать его?

Спасибо за внимание! Кузовлев Евгений Mail: Phone: Telegram: Eugene. Kuzovlev@gmail. com +7 905 7986063 Спасибо за внимание! Кузовлев Евгений Mail: Phone: Telegram: Eugene. Kuzovlev@gmail. com +7 905 7986063 @rafik_jan