Автоматизация процессов разработки. Нужно ли это,...

49
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами? Дмитрий Андреев [email protected] Twitter @ dmandreev Международная конференция «Управление проектами 2010 с минимальными затратами»

Upload: dmitry-andreev

Post on 16-Nov-2014

1.209 views

Category:

Documents


0 download

DESCRIPTION

Процессы разработки это одна из областей, в которой эффективность от внедрения тех или иных средств автоматизации играет ключевую роль. Изучив техническую сторону вопроса и заинтересовавшись новыми возможностями, вы наверняка сразу же зададите себе вопрос. Как та или иная возможность повлияет на существующие процессы? Не внесет ли она, вместо улучшения, излишнюю бюрократию в и так сложные и порой не прозрачные текущие процессы? Каких улучшений показателей можно ожидать? Если вам интересно, каким образом возможности Visual Studio Team System 2010 могут воздействовать на подходы по ведению проектов, и каких результатов можно ожидать от внедрения таких средств, послушайте данную сессию. В рамках этого доклада будут рассмотрены ключевые возможности VSTS2010, приведены примеры оценок экономической эффективности при внедрении, и обзор вариантов при которых возможна экономия затрат на развертывание таких систем.

TRANSCRIPT

Page 1: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?Дмитрий Андреев[email protected] @dmandreev

Международная конференция «Управление проектами 2010 с минимальными затратами»

Page 2: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Проекты разработки ПО: Текущее состояние

Приемлемый уровень неудач?Отталкиваясь от сроков, бюджета и функциональности, 68% проектов никогда не достигли результатов или были вообще остановлены

32% успешны44% были выполнены в срок/бюджет/функциональность24% были прекращены

Page 3: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Уровень успеха

Должны ли мы его поддерживать в таком виде?

Перерасходы по Стоимости: 45%

Перерасходы по Времени: 63%

Снижение Функциональности: 67%

Extreme Chaos, The Standish Group International, Inc. – 2009

Page 4: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Понимание успеха проекта

Успех проектов поразработке исторически рассматривается каккомбинация

ВремениДенегФункциональности

На самом деле это уже квадратКачество – четвертый показатель

Хотите ли вы выбирать два из четырех?

Функции

Время Бюджет

Выберите два

Page 5: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Путь к успеху

Идея

Решение

Изменения рамок

Старый код

Неразделяемыецели

Невоспроизводимые ошибки

Трудности в эксплуатации

Сомнения в качестве

Changing architecture

Стоимости оборудования

Новые сотрудники

Ошибкисборок

Тяжелое составление отчетности

Изменения требований

Гетерогенные среды

Плохая оценка сроков

Плохая документация

Качество билдов

Интеграционные проблемы

Page 6: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

6

Представим себе…

Page 7: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Предсказуемость

Все члены команды знают процесс и средстваВсегда актуальный проектный план Каждая реализованная функция тщательно проверяетсяСоставляется детальная отчетность по каждому шагу

Page 8: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

8

Полный комплекс интегрированных средств

Page 9: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 10: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

10

Больше нет Черного Ящика Планирования

Отслеживание с верху в низТрассировка ТребованийОтношения Родитель/ПотомокСвертка и Детализация

Гибкое ПланированиеВстроенный менеджер бэклогаВстроенное планированиеитерацийПростое конфигурирование

Интеграция с ProjectПолная связь зависимостейПолная поддержкасинхронизации туда и обратно

Page 11: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 12: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

12

Больше нет Поздних Сюрпризов

Отчеты для на все случаи

Генерация отчетов из запросовМанипулирование данными в ExcelОчевидные OLAP кубы

Информация для Всех

Подключение отчетов в MOSS

Page 13: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

13

Больше нет Недоумения у Заказчиков

Информационные панелиИерархия ключевых показателейДетализация для анализаБыстрая настройка

Простое взаимодействиеСообщения об ошибках через вебТребования об изменениях через вебОтслеживание статусов запросов/ошибок через веб

Page 14: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 15: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Больше нет Проблем с Параллельной Разработкой

Какая ветка содержит мои изменения?Какая сборка содержит мои изменения?Откуда взялось это изменение?Зачем нужна эта ветка?Как эти ветки соотносятся?Кто ответственен за эту ветку?

Page 16: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Больше нет Проблем с Параллельной Разработкой

Создание веток на сервереВизуализация веток и отношенийОтслеживание изменений в ветках

ИсторияВремяАннотации

Разрешение конфликтов

Page 17: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 18: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Больше нет Запутавшихся Администраторов

Простая установкаМинимум вводимых параметровСнижение требований по предварительной установкеВозможность записи сценария установкиЖурналы установки

Page 19: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Больше нет Запутавшихся Администраторов

ЭффективноеАдминистрирование

Базируется на MMCТранзакционные механизмыПредварительнаяпроверка

Page 20: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 21: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Практичные Ошибки

Тестеры создают полную информацию об ошибках

Шаги для воспроизведенияСистемную информациюСнимки экрановПолноэкранное видео с меткамиОтладочный журналТестовое окружение

Page 22: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 23: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Контроль внесения изменений

Сбор изменений «на полке»Слияние с основной веткой и сборка.Если все нормально, внесение изменений в основную ветку.

Page 24: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

24

Анализ затронутых Тестов

Сбор информации о тестах на сервереСравнение результатов тестирования текущего изменения с результатами сервераРекомендации по изменению затронутых тестов

Page 25: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 26: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Эффект бабочки

Как можно проверить то что небольшое изменение не затронет всю систему?

Как можно понять и изучить всю систему?

Каких бабочек необходимо поймать в Нью-Йорке чтобы предотвратить наводнение в Токио?

Page 27: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

27

Диаграммы слоев

Архитектурная проверка соответствия кода дизайну.

Диаграмма слоев детализирует реальное состояние дел

Классы и области имен попадают в соответствующие слои

Page 28: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

28

Архитектурный Обозреватель

Понимание системы не допустит эффекта бабочки

Архитектурный Обозреватель помогает понять как работает система в целом

Визуализация кода и его взаимосвязей

Page 29: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 30: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

30

Автоматическое Регрессионное тестирование

Новый тип тестов (Coded UI)Возможность автоматического тестирования интерфейсаПоддержка:

Web UI (IE & FF Beta)Windows FormsWindows Presentation Foundation

Page 31: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 32: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

32

Выберите билдУзнайте какие тестызапустить

Система рекомендует запуск специфичных именно для этой сборки тестов

Page 33: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

33 Microsoft Confidential

Выделение требований без тестов или без удачных тестов

Отчеты отображают статусы требований

Потерянные требования - в прошлом

Page 34: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 35: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Управление лабораторией тестирования

Поддержка группы виртуальных машин для тестовБыстрое развертывание виртуальных машинРазработчики имеют доступ к среде тестированияСпециальные сетевые настройки позволяют запускать копии окружений тестирования

Page 36: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

VSTS 2010 == Успех

Больше нет Черного Ящика ПланированияБольше нет Поздних СюрпризовБольше нет Проблем с Параллельной РазработкойБольше нет Запутавшихся АдминистраторовБольше нет Неповторяемых ОшибокБольше нет Несобираемых БилдовБольше нет Эффекта БабочкиБольше нет Наведенных ошибок Больше нет Потерянных ТребованийБольше нет Ожиданий Установки БилдаБольше нет Снижения Производительности

Page 37: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Профайлер Visual Studio

Проверка только своего кодаПрофайлинг нагрузочныхтестовПрофайлинг JScriptТри новых типа

Выделение памятиРесурсной конкуренцииПотоковой конкуренции

Сравнительные отчеты

Работает под виртуализацией!

Page 38: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Веб и Нагрузочное тестирование

Новое последовательное смешениеОтчетность сразу в Excel Визуализация журналаЗапуск функциональных тестов как нагрузочных тестовСбор подробной информации о запуске

Интеграция удаленного профайлераСбор системной информацииРасширяемый механизм сбора данных

Page 40: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Основные показатели

Затраты на персоналПрограммистыТестерыМенеджмент

Незапланированные затратыПереработка по проектамПоддержка развернутых решений

Технологические затратыПоддержка инфраструктуры

Page 41: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Nucleus Research

Лидер в области оценки эффективности внедренийНезависимые исследованияKnow-how по вычислениям ROI подтвержденные примерами (Case Study)Сотни примеров для различных продуктов и вендоровНа рынке с 2000 года

Page 42: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Пример

Команда10 разработчиков2 менеджера3 тестера

Ожидаемая эффективностьЭффективность труда

Разработчик 10%Менеджер 20%Тестировщик 10%

Снижение оцененных потерь35% от 70 тыс. долл. в год.

Двухнедельная задержка проекта длительностью 6 мес.

Основные затраты на ПОVisual Studio Ultimate 11924$Test Professional 2169$

Page 43: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Некоторые стоимости лицензий

Ultimate MSDN 11 924 / 3814Premium MSDN 5 469 / 2 999Professional MSDN 1 199 / 799

Page 44: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

44

Test and Lab Manager

Manual Testing

Layer Diagram

UML Modeling

Load Testing Web Testing

Test Case ManagementIntelliTrace™

Architecture Explorer Fast Forward for Manual Testing

Logical Class Designer

Cloud Development

Office Development

Windows Development

New WPF Editor Customizable IDE

Multi-core DevelopmentSilverlight Tools

Web Development

SharePoint Development

Generate from Usage

Static Code Analysis

Database Deployment

Code Metrics

Database Unit Testing Test Data Generation

Test Impact AnalysisUI Test Automation

Code Coverage

Performance Profiling

Database Change Mgmt

Page 45: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Варианты лицензирования

RetailЛицензирование организаций

Open ValueOpen LicenseSelectEnterprise Agreement

Page 46: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Как сэкономить еще больше

Особые условия для государственных и образовательных учрежденийСтать партнером MicrosoftВоспользоваться программами *Spark

Business Spark – если вы работаете в компании зарегистрированной менее трех лет, можете получить все средства разработки бесплатноDream SparkWebsite Spark

Page 47: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Заключение

Инструменты Visual Studio позволяют решать застарелые проектные проблемы при разработке ПОЭто интегрированный комплексВнедрение Visual Studio повышает производительность команды и качество разрабатываемого ПОПри самых скромных оценках эффективности очевидна финансовая выгодаСуществует несколько вариантов лицензирования которые позволяют экономить средства

Page 48: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Ссылки

Обзор Visual Studio Team System 2010 http://www.microsoft.com/visualstudio/ROI калькулятор http://www.nucleusresearch.com О лицензировании простым языком http://technet.microsoft.com/ru-ru/licensing.aspxПрограмма Biz Spark http://ms-start.ru/Programs/BizSpark.aspx

Page 49: Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?

Вопросы?