Командная работа.pptx
- Количество слайдов: 20
Командная работа КАЛИНИНГРАД, 2015
Что такое команда? Учебная деятельность Вася и Маша делают лабораторную работу Вася бухает, пока Маша делает лабораторную Вася ставит опыты, Маша записывает и обрабатывает результаты Галя, Дима и Паша пишут курсовую Галя тусит в клубешнике, Паша гнобит Диму, Дима тащит курсовую Галя строит глазки Паше и Диме, которые тащат курсовую, а сама гуляет с Вовой Галя тащит курсовую, пока Паша и Дима делают вид, что заняты написанием сложного алгоритма, который давно загуглен Паша пишет библиотеку обработки данных, Дима реализует пользовательский интерфейс, Галя тестирует и регистрирует дефекты, а также отвечает за подготовку доклада
Что такое команда? Независимая разработка Арсений, Женя и Олег делают игру Арсений сидит в контактике, Женя каждый день придумывает новую концепцию, Олег пишет код Арсений разработал концепт и сделал наброски, Женя нарисовал красивую графику и сделал анимацию, Олег написал внутреннюю логику Всё вышеперечисленное, плюс постоянное взаимодействие и доработка каждого компонента
Что такое команда? Коммерческая разработка 10 человек пишут большую коммерческую систему Дизайнер нарисовал макеты, Архитектор накидал скелет системы, Тимлид раздаёт небольшие чётко сформулированные задачи пятерым «кодерам» , каждый из которых понятия не имеет, что будет в результате, два тестировщика регистрируют дефекты. Дизайнер-верстальщик с консультациями Тимлида и Архитектора нарисовал макеты, которые модифицируются в процессе работы, пять программистов работают в рамках коротких циклов разработки, взаимно дополняя и помогая другу. Тестировщики в курсе постановки задач, имеют представление о том, что и когда надо тестировать. В идеале – в процесс вовлечён представитель клиента.
Структура команды Традиционная
Структура команды Гибкая
Проблемные точки командной работы Коммуникации Регистрация требований Передача результатов работы другу Одновременная работа над одним и тем же участком кода Регистрация дефектов и несоответствий требованиям Установка соотношения версий системы требованиям и исправлениям дефектов Развёртывание готовой системы Изменение требований
Коммуникации Коммуникативные навыки Методология Опыт командной работы Плохо решаются инструментами
Регистрация требований Помнишь, я же говорил! Требования в рамках постановки задач Функциональная спецификация Техническое задание User Stories
Передача результатов работы другу Переносные носители (флешки), почта Системы централизованного хранения файлов: Drop. Box, Google Drive, Mail. ru Cloud Системы контроля версий (Version Control Systems): Visual Source Safe, Subversion, Mercurial, Git, Team Foundation Server и т. д.
Одновременная работа над одним и тем же участком кода «Вась, не трогай класс Main. Interface. cs!» - «Гы, я его уже удалил!» Общее хранилище файлов Системы контроля версий (Version Control Systems): Visual Source Safe, Subversion, Mercurial, Git, Team Foundation Server и т. д.
Регистрация дефектов и несоответствий требованиям Надеяться на память Тестировать «от балды» Google docs или другой централизованный мусоросборник Баг-трекинговые системы: Jira, Redmine, Bugzilla, TFS, Github и т. д.
Установка соотношения версий системы требованиям и исправлениям дефектов У нас сейчас какая версия на стенде? Петя, а мы в последней версии пофиксили баг #12345? ? - Не знаю, надо у Вовы спросить. . Сопоставление требований/дефектов в комментариях к исправлениям Интеграция системы контроля версий и баг-трекинговой системы
Развёртывание готовой системы Вручную Глупо Долго Нельзя делать часто Полуавтоматически, на основе собственных скриптов и решений Требует обслуживания Трудозатратно Очень гибко Готовыми инструментами: Ant, MSBuild, Team. City, Octopus, Jenkins и т. д. Приходится разбираться с инструментами
Изменение требований Бесконтрольность Бесконечные допиливания по запросу клиента Постоянные переделки Неизбежное разочарование: клиента в продукте, команды в лишней работе Фиксация требований на весь цикл разработки Конкретика в постановке задачи Соответствие результата ожиданиям Наличие чётких критериев оценки качества Невозможность запроса на изменение во время цикла разработки
Инструменты решения проблем командной разработки
Система управления проектами Коммуникации Регистрация требований Передача результатов работы другу Одновременная работа над одним и тем же участком кода Регистрация дефектов и несоответствий требованиям Установка соотношения версий системы требованиям и исправлениям дефектов Развёртывание готовой системы Изменение требований
Система контроля версий Коммуникации Регистрация требований Передача результатов работы другу Одновременная работа над одним и тем же участком кода Регистрация дефектов и несоответствий требованиям Установка соотношения версий системы требованиям и исправлениям дефектов Развёртывание готовой системы Изменение требований
Баг-трекинговая система Коммуникации Регистрация требований Передача результатов работы другу Одновременная работа над одним и тем же участком кода Регистрация дефектов и несоответствий требованиям Установка соотношения версий системы требованиям и исправлениям дефектов Развёртывание готовой системы Изменение требований
Интегрированная платформа (TFS, Git. Hub+Team. City+Octopus, SVN+Jira+Ant и т. п. ) Коммуникации Регистрация требований Передача результатов работы другу Одновременная работа над одним и тем же участком кода Регистрация дефектов и несоответствий требованиям Установка соотношения версий системы требованиям и исправлениям дефектов Развёртывание готовой системы Изменение требований
Командная работа.pptx