презентацию

Download Report

Transcript презентацию

ОРГАНИЗАЦИЯ РАЗРАБОТКИ
И ТЕСТИРОВАНИЯ ПРОЕКТА
C ДЛИННЫМ ЖИЗНЕННЫМ ЦИКЛОМ
Григорий Добряков
@g_dobryakov
UMI.CMS
ЦИКЛ КОРОТКОГО ПРОЕКТА
ЦИКЛ ДЛИННОГО ПРОЕКТА
ОТКУДА БЕРЁТСЯ ДЛИННЫЙ ПРОЕКТ?
1.Революционная идея?
2.Тщательное бизнес-планирование?
3.Большие стартовые инвестиции?
4.Случайно.
КРАТКОСРОЧНЫЙ ПРОЕКТ
Допустим, есть две одинаковых задачи
Задача A
Задача Б
Баги А
Баги Б
ДОЛГОСРОЧНЫЙ ПРОЕКТ
Задача Г
Задача Д
A
Д
Б
Д
A
Д
В
Д
Трудоёмкость – это не календарный срок!
Задача Б выполняется в N раз дольше.
КРАТКОСРОЧНЫЙ ПРОЕКТ
Допустим, факап раз в две недели
F
F
F
F
ДОЛГОСРОЧНЫЙ ПРОЕКТ
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
А ещё остаются баги с предыдущего витка
КОМАНДА НА СТАРТЕ
Лидеры
Бойцы
Ботаны
Стажёры
КОМАНДА ЧЕРЕЗ N ЛЕТ
Лидеры
ушли
Ботаны
остались
Бойцы
перегорели
Стажёры
выросли
МОТИВАЦИЯ КОМАНДЫ
Двигаем слабое звено
Высокая
квалификация
Низкая
мотивация
Высокая
мотивация
Слабое
звено
Лидер
Низкая
Мальчик для
квалификация
битья
Рабочая
лошадка
ОРГАНИЗАЦИЯ КОМАНДЫ
Неправильно:
Задача A
Задача
Б
A
Б
A
Б
A
Б
A
Б
Правильно: делает один человек, а чинит другой
Задача A
Задача Б
Задача В
Задача Г
Баги А
Баги Б
Баги В
Баги Г
1)Нормальное планирование;
2)О каждой задаче знает как минимум 2 человека;
3)Специализация по задачам и по багам отдельно;
4)Отдел саппорта сразу щупает функционал.
Люди бизнеса
ОРГАНИЗАЦИЯ КОМАНДЫ
Девелопер
Технический
чувак
Девелопер
Девелопер
ОРГАНИЗАЦИЯ КОМАНДЫ
Люди бизнеса
Девелопер
Технический
чувак
Девелопер
Девелопер
ОРГАНИЗАЦИЯ КОМАНДЫ
Девелопер
Девелопер
Девелопер
Технический
чувак
Не противься силе, используй её в своих интересах.
Менеджер отвечает за эффективное использование
выделенных ему ресурсов.
РАБОТА С БОЛЬШИМ ОБЪЁМОМ ЗАДАЧ
Как это обычно бывает
РАБОТА С БОЛЬШИМ ОБЪЁМОМ ЗАДАЧ
Как это обычно решается
РАБОТА С БОЛЬШИМ ОБЪЁМОМ ЗАДАЧ
Чем вам это грозит через несколько лет
А давайте сделаем задачу X?
Баг
Баг
Баг
Баг
Баг
Баг
Баг
Баг
Баг
Задача X
Задача X сделана.
Все устали.
РАБОТА С БОЛЬШИМ ОБЪЁМОМ ЗАДАЧ
Как надо на самом деле
Мы это сделаем не сейчас.
Сейчас мы сделаем не это.
ИНСТРУМЕНТЫ И ПРОЧИЕ ОБЛАКА
1.Тикет-система для сбора заявок от клиентов.
2.Таск-трекер и баг-трекер с очередью задач.
3.Система контроля версий (svn, git)
4.Система автоматического тестирования
5.Тестовая платформа.
6.Система деплоя и обновления.
Облако
ПРИЧЁМ ТУТ ОБЛАКО?
Облако
- Тестировать продукт нужно в 100500 различных
средах и окружениях.
- Поднимать или перенастраивать физические
сервера займёт до 99% времени.
- Вам нужно средство, которое позволит быстро
создавать виртуалки нужной конфигурации.
- Так же оно используется для имитации
окружений клиентов.
ОБЫЧНАЯ ЛИНЕЙНАЯ РАЗРАБОТКА
- Мы всё закончили!
- А что осталось?
- Пофиксить баги, задеплоить….
ПАРАЛЛЕЛЬНАЯ РАЗРАБОТКА
Фича А
Фича Б
Фича В
В центральной ветке у вас всегда стабильный
продукт. Релизиться (или деплоить) можно
хоть “каждый день”.
ФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ
Хотелки
Тесты
РЕГРЕССИОННОЕ ТЕСТИРОВАНИЕ
Хотелки
100500
лет
Тесты
ТЕСТИРОВАНИЕ ВНЕДРЕНИЙ
Тесты
Сервера
клиентов
Сложности:
1) Неподходящие окружения.
2) Нет доступа к ssh.
3) Маленькие таймауты.
4) Заблокирован вывод ошибок.
5) Нет доступа к логам.
FOOL-PROOF
Защита исходного кода продукта
от неквалифицированных изменений клиентом.
- Зачем это надо?
- Как это сделать?
- Как предоставить возможность
для легального внедрения
кастомного функционала?
- Как быстро анализировать
внедрения?
LONG-TIME SUPPORT
Поддержка и багфиксинг старых версий.
Нужно:
- База ошибок и рецептов по их исправлению
(knowledge base).
- Возможность сборки продукта старой версии
и на старом окружении.
- Функциональные тесты, хранящиеся в svn
синхронно с развитием продукта.
УДАЧИ :-)
Григорий Добряков
twitter: g_dobryakov
e-mail: [email protected]
www.umi-cms.ru