Top Banner
Разделение ответственности в заказной разработке Максим Цепков Главный архитектор дирекции развития решений 18 апреля 2015 года
37

Responsibilities in software development tsepkov analyst days 2015

Jul 18, 2015

Download

Software

Maxim Tsepkov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Responsibilities in software development tsepkov analyst days 2015

Разделение ответственности

в заказной разработке

Максим Цепков

Главный архитектор

дирекции развития решений

18 апреля 2015 года

Page 2: Responsibilities in software development tsepkov analyst days 2015

Разделение ответственности в проекте –

популярная тема холиваров

Многие уверены, что знают «правильный способ»

Часто выдают претензии смежникам, что те не делают

положенное или, наоборот, лезут на чужую поляну

Однако единственной схемы не существует,

это пережиток эпохи «правильного процесса»

Разделение ответственности нужно

конструировать в проекте, с учетом его

особенностей и интересов участников

О чем будет доклад

2/37

Page 3: Responsibilities in software development tsepkov analyst days 2015

1. Схема для разделения ответственности

2. Простой кейс: разработка по спецификациям

3. Заказчик и компания-разработчик: разделение

ответственности и взаимодействие

4. Ответственность в компании-разработчике

Содержание доклада

3/37

Page 4: Responsibilities in software development tsepkov analyst days 2015

Схема для разделения

ответственности

4/37

Page 5: Responsibilities in software development tsepkov analyst days 2015

Возьмем схему процесса – и разметим

Используем стандартную схему – V-модель

Визуальное представление

V-Model (Wikipedia)

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

Project

Definition

Project Test

and Integration

Time

Verification

and

Validation

5/37

Page 6: Responsibilities in software development tsepkov analyst days 2015

Водопадная модель на схеме

ВнедрениеБизнес-

аналитики

Системные

аналитикиТестировщики

Разработчики

Заказчик

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

6/37

Page 7: Responsibilities in software development tsepkov analyst days 2015

Простой кейс:

разработка по спецификациям

7/37

Page 8: Responsibilities in software development tsepkov analyst days 2015

Компания

Заказчик

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

Уместен при высокой стандартизации продукта,

позволяет создать задание и определить результат

Аутсорсинг кодирования

ТЗ ПО

8/37

Page 9: Responsibilities in software development tsepkov analyst days 2015

Разработчики

Заказчик

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

В компании – только разработчики

Компания

Менеджер

Работает, если проекты небольшие или имеют типовую

декомпозицию, а также в случаях, когда применяются только

типовые решения. Организация – одна команда или мини-группы

Менеджер или Teamlead

управляет процессом работ

9/37

Page 10: Responsibilities in software development tsepkov analyst days 2015

По разным технологиям

Java и СУБД

Дизайнер и разработчик в web

Выделение «дешевых» специализаций,

например тестировщиков

Работа может быть организована

последовательно или параллельно

При последовательной работе возможно

выделение отделов

Например, дизайн – разработка – тестирование

Специализация в команде

10/37

Page 11: Responsibilities in software development tsepkov analyst days 2015

Разрыв между заказчиком и компанией

Компания

Заказчик

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

ТЗ ПО

Спецификация недостаточно

определяет продукт

ПО не может выполнять

ожидаемые функции

Просто отказ

Новый цикл?

11/37

Page 12: Responsibilities in software development tsepkov analyst days 2015

Почему плохо работает?Мешает природа

ИТ-разработки

Jack W. Reeves «What is software design» (1992; перевод)

Конструирование

системы

Обычный НИОКР

ПроизводствоПроект

ИТ-разработка

Архитектура

и дизайнТЗ Кодирование

Вещь

ПО

Архитектура

и дизайнКодКодиро-

вание ПОКомпиляция

(build)

12/37

Page 13: Responsibilities in software development tsepkov analyst days 2015

ПО ПОТЗ

ТЗ

Решение – коммуникация

Поставки ПО

и участие во

внедрении

Это фишка Agile

Компания

Заказчик

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

ТЗПО

Так работает

Коммуникации

Заказчик ставит задачу в терминах бизнеса, компания осуществляет

разработку и внедрение вплоть до перестройки бизнес-процессов.

Большая зона совместной ответственности обеспечивает успех проекта

13/37

Page 14: Responsibilities in software development tsepkov analyst days 2015

Заказчик и компания-разработчик:

разделение ответственности и

взаимодействие

14/37

Page 15: Responsibilities in software development tsepkov analyst days 2015

У заказчика есть свой ИТ…

ИТ Заказчика

Заказчик

Компания

Бизнес-подразделения

ЗаказчикаConcept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

ИТ заказчика часто стремится изолировать компанию

от бизнес-подразделений заказчика, однако для успеха проекта

взаимодействие необходимо

15/37

Page 16: Responsibilities in software development tsepkov analyst days 2015

Операционная работа и развитие

Заказчик

Компания

Технологи и руководители,

проектный офис

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

ИТ-отдел(ы)

новых разработок

и проектов

Операционные

сотрудники

Эксплуатация ИТ

(админы)

Постановку задачи на разработку и эксплуатацию созданного

приложения осуществляют разные группы стейкхолдеров заказчика

Но это

еще не все

16/37

Page 17: Responsibilities in software development tsepkov analyst days 2015

ИТ-проект – часть бизнес-проекта

Concept Maintenance

ИТ-проект

Бизнес-проект

Concept

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

Implementation

Ответственность стейкхолдеров заказчика – относительно

бизнес-проекта, а не ИТ-проекта

17/37

Page 18: Responsibilities in software development tsepkov analyst days 2015

Заказчик

Компания

Concept

Requirements

and Architecture

Detailed

Design

Implementation

Integration

and Test

System

Verification

Maintenance

Где ответственность за целое?

ТЗ

Процессный ответ – обеспечим

через согласование артефакта

Артефакт –

не работает

18/37

Page 19: Responsibilities in software development tsepkov analyst days 2015

А пусть будет Product Owner

Заказчик

Компания

Product Owner ?

Concept

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Maintenance

Implementation

Только у заказчика

он не всегда есть

19/37

Page 20: Responsibilities in software development tsepkov analyst days 2015

Заказчик

Product Owner

Concept

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Maintenance

Implementation

Заказчик часто не готов

к такой области ответственности

РазработчикиКомпания

Ответственность компании надо расширять,

частью ее становится Product Owner, он же менеджер

Об этом будет

подробнее

20/37

Page 21: Responsibilities in software development tsepkov analyst days 2015

Ответственность

в компании-разработчике

21/37

Page 22: Responsibilities in software development tsepkov analyst days 2015

Заказчик

Product Owner

Concept

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Maintenance

Implementation

Разработчики

Компания

Аналитики тоже устраняют разрыв

Аналитики

Вопрос: Насколько аналитики заняты в тестировании и сдаче системы?

Вариант 1: Сдают разработчики

Вариант 2: Аналитики тестируют и сдают (модель внутреннего заказчика)

22/37

Page 23: Responsibilities in software development tsepkov analyst days 2015

Заказчик

Concept

Product Owner

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Maintenance

Implementation Разработчики

Компания

Аналитики

Менеджер, Product Owner, аналитик

Аналитик:

преобразование требований

в модель системы

Роли,

а не должности

Менеджер

Менеджер, или Teamlead, или Scrum Master:

организация процесса работ и управление им

Product Owner: управление

целостностью и порядком

разработки системы

23/37

Page 24: Responsibilities in software development tsepkov analyst days 2015

Тестировщик: младший аналитик

или отдельная позиция?

Заказчик

Product Owner

Concept Maintenance

Implementation

РазработчикиКомпания

Аналитики

Тестировщики

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Зависит от проекта:

каков характер

и объем тестирования

24/37

Page 25: Responsibilities in software development tsepkov analyst days 2015

А можно и без аналитиков

Заказчик

Product Owner

Concept

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Maintenance

Implementation

РазработчикиКомпания

Тестировщики

Часто именно эта

картина складывается

исторически

25/37

Page 26: Responsibilities in software development tsepkov analyst days 2015

Артефакты на проекте

Заказчик

Concept

System

Verification

Maintenance

Implementation

Разработчики

Компания

ТестировщикиАналитики

Requirements

and Architecture

Detailed

Design

ПО

Требования

Модель системыТест-кейсы

Версия

на тестирование

Версия

заказчику

Product Owner

Backlog

Integration

and Test

26/37

Page 27: Responsibilities in software development tsepkov analyst days 2015

Архитектор, он же Techlead

Заказчик

Concept

Integration

and Test

System

Verification

Maintenance

Implementation

РазработчикиКомпания

Тестировщики

Аналитики

Архитектор

29/41

Requirements

and ArchitectureProduct

Owner

Detailed

Design

Кто главный:

аналитик

или архитектор?

1. Построение начальной архитектуры

2. Проектирование типовых решений

Это – разные задачи и позиции

27/37

Page 28: Responsibilities in software development tsepkov analyst days 2015

Еще есть внедрение и поддержка

Заказчик

Concept

Integration

and Test

System

Verification

Maintenance

Implementation

РазработчикиКомпания

Тестировщики

АналитикиRequirements

and Architecture

Detailed

Design

Product

Owner

Архитектор

Внедрение

и поддержка

Разделение работ с заказчиком может быть различным

и часто – неявным

28/37

Page 29: Responsibilities in software development tsepkov analyst days 2015

Простое управление:

за все отвечает менеджер

Менеджер

Concept

Integration

and Test

System

Verification

Maintenance

Implementation

Компания

Requirements

and Architecture

Detailed

Design

Менеджер перед компанией может отвечать за весь процесс работ

на проекте, включая область ответственности заказчика

29/37

Page 30: Responsibilities in software development tsepkov analyst days 2015

Разделение управления:

менеджер и Product Owner

Менеджер

Concept

Integration

and Test

System

Verification

Maintenance

Implementation

Компания

Requirements

and Architecture

Detailed

Design

Product

Owner

Product Owner: управление целостностью

и порядком разработки системы

Менеджер

или Teamlead:

управление

процессом работ

У Scrum Master’а

область та же,

отличается способ

управления

На V-модели

разделение

не видно –

меняем схему

30/37

Page 31: Responsibilities in software development tsepkov analyst days 2015

OMG Essence: объекты процесса

31/37

Page 32: Responsibilities in software development tsepkov analyst days 2015

Области управления

Менеджер

Product Owner

Разделение облегчило поиск

управленческого персонала и

обеспечило успех Agile

32/37

Page 33: Responsibilities in software development tsepkov analyst days 2015

Области технологизацииProduct Owner:

технологии

взаимодействия

с заказчиком

и работы

с требованиями

Архитектор:

технологии

разработки

Менеджер или Teamlead:

организация процесса

работ

33/37

Page 34: Responsibilities in software development tsepkov analyst days 2015

Размер команды – 7 ± 2

Concept

Requirements

and Architecture

Detailed

Design

Integration

and Test

System

Verification

Maintenance

Implementation

РазработчикиКомпания

Аналитики

Менеджер

Менеджер – один на несколько

команд или кто-то из команды

по совместительству

0.5

Product Owner

Product Owner – один

на несколько команд или аналитик

по совместительству

0.5

2

4

34/37

Page 35: Responsibilities in software development tsepkov analyst days 2015

А если проект большой?

7±2 мини-группы

одного ведущего и

1-2 подчиненных

Несколько команд,

общий Product Owner

и (или) менеджер

35/37

Page 36: Responsibilities in software development tsepkov analyst days 2015

Если проекты достаточно однородны,

можно передавать одной команде

без специализации

Можно делать мини-группы по каждому

проекту

Решение зависит от равномерности потока

работ по проектам

А если проекты маленькие?

36/37

Page 37: Responsibilities in software development tsepkov analyst days 2015

Разделение ответственности зависит

от взаимоотношений с заказчиком

От характера вашего проекта

И от традиций компании

Не существует общепринятого

или единственно правильного способа

Его надо проектировать!

Подводя итоги

Спасибо! Вопросы?

Максим Цепков mtsepkov.org

Спасибо, кэп!

37/37