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