34
Алексей Филимонов, Партнер, Директор департамента технологического консалтинга и экспертизы

Способы создания качественного программного продукта

  • Upload
    -

  • View
    899

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Способы создания качественного программного продукта

Алексей Филимонов, Партнер, Директор департамента технологического консалтинга и экспертизы

Page 2: Способы создания качественного программного продукта

Разработка продукта: делаем и не боимсяЖизненный цикл продукта в стартапеLean startup и разработкаMinimum Viable ProductScrumСоздание и развитие командыProduct roadmap

Page 3: Способы создания качественного программного продукта

Жизненный цикл продуктаКлассическая модель

Требования\ТЗ\СпецификацииРазработкаРазвитие и поддержка

Модель разработки в стартапеСтартап не знает какой продукт будет в итоге!

Page 4: Способы создания качественного программного продукта

Цели и задачи стартапа1. Как можно быстрее ответить на вопрос – а можно ли вокруг этой идеи создать бизнес?

Lean startup2. Построить процесс, помогающий ответить на п.13. Создать внутри организации компетенцию по созданию и развитию продукта

Если на этом базируются конкурентные преимущества4. Принять правильные технологические решения, влияющие на развитие продукта в будущем

И на капитализацию!5. Минимизировать затраты до получения инвестиций

Но сделать достаточно для привлечения инвестора!

Page 5: Способы создания качественного программного продукта

Lean startupУправлению стартапами можно научить!Build-Learn-MeasureInnovation accounting

Измеряйте прогрессСтавьте приоритетыСтавьте промежуточные цели

Validated learningТестируйте и проверяйте все как можно раньше

Page 6: Способы создания качественного программного продукта

Жизненный цикл в Lean startupDo

Develop\Update MVPTest MVPКорректировка product vision

Until MVP = CORRECTРазвитие продукта

Итеративно!

Создание и развитие продукта в lean startup невозможно без применения гибких (agile) методологий разработки

Page 7: Способы создания качественного программного продукта

Примеры lean стартапов

Page 8: Способы создания качественного программного продукта

Что такое MVP?Минимальная фунциональность удовлетворяющая

базовую потребность предполагаемого клиентаFeature listСпеки/экраны системыСайт с описанием преимуществПрототипБета-версию системыv1.0 системы

Page 9: Способы создания качественного программного продукта

Что такое MVP?Должен ли быть продукт?Что то что может помочь получить обратную связь от

ближнего круга (sounding board)Очевидно, это не обязательно даже прототип!Постоянно развивающийся «протопродукт»?

Page 10: Способы создания качественного программного продукта

10

Agile ManifestoЛюди и их взаимодействие важнее,

чем процессы и инструменты

Работоспособное ПО важнее, чем обширная и детальная документация

Сотрудничество с заказчиком важнее,чем жесткие контракты

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

Page 11: Способы создания качественного программного продукта

11

ScrumГибкая методология УП

Набор ролей, методов и процессовУправленческий фреймворк с жесткими ограничения

по времени и четкой структурой процессовНе описываются инженерные практики

Как программировать?Как анализировать требования?… зато легко внедрить за день

Page 12: Способы создания качественного программного продукта

12

Высокая турбулентность среды

Водопадные

Итеративные

А А

В В

C C

Page 13: Способы создания качественного программного продукта

13

Ценность SCRUM для стартапаИтеративность процесса

Частый выпуск версии продукта (2-4 недели)«Градиентный» метод развития продукта через более частое

получение обратной связи с рынка или от sounding boardВозможность работы с неформализованными требованиями

(user stories)Возможность быстрого переноса бизнес-требований в код

Внимание к техническому качеству и архитектуре на протяжении всего проектаСтабильное качество каждой версии

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

Page 14: Способы создания качественного программного продукта

14

Компании, использующие ScrumMicrosoftYahooGoogleElectronic ArtsLockheed MartinPhilipsSiemensNokiaBBCIntuit

Nielsen MediaSalesForce.comOracleIntelTime WarnerTurner BroadcastingToyotaRamblerKaspersky Labs

Page 15: Способы создания качественного программного продукта

15

Scrum: ролиScrum Master – Скрам-мастер

Руководитель проекта?Устранение проблем и улучшение процессов

Product Owner - Владелец продуктаЗаказчик/Клиент?Поставщик требований и приоритетов

КомандаИсполнители/Программисты?Каждый спринт делает готовый продукт

Page 16: Способы создания качественного программного продукта

16

Scrum: управление требованиями

Задача

Юзер-стори

Беклог спринта

Беклог продукта

Page 17: Способы создания качественного программного продукта

17

Юзер-сториТребование с точки зрения пользователя«Роль/Персонаж», «Действие», «Цель»

Зарегистрированный пользователь оплачивает товар, чтобы его приобрести

«Таня Бухгалтерша» и «Василий ИТшник» – разные персонажи

Полное описание «хранится» в виде знаний командыЕсли команда распределенная используется вики

Page 18: Способы создания качественного программного продукта

18

Scrum: процессы

Page 19: Способы создания качественного программного продукта

19

Scrum: иерархия процессов

Ежедневный скрам

Спринт

Релиз

Page 20: Способы создания качественного программного продукта

20

Покер-планирование

У каждого участника колода карт с оценками

Оценки даются в идеальных

человеко-часах или в стори-

поинтах

Рассматривается и обсуждается одна

юзер-стори

Каждый участник одновременно делает оценку

Если оценки различаются, то обсуждаем еще и повторяем оценку

Page 21: Способы создания качественного программного продукта

21

Планирование-спринтаАктуализируются приоритеты у задач владельцем

продуктаНа спринт выбираются самые важные задачи

Сумма оценки всех набранных задач не должна превышать скорость команды

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

Page 22: Способы создания качественного программного продукта

22

Ежедневный скрамОграниченный по времени

стендапВ одно и то же времяДолжна быть вся команда…

… и владелец продуктаКаждый отвечает на три

вопроса:Что сделано вчера?Какие были проблемы?Что будешь делать сегодня?

Page 23: Способы создания качественного программного продукта

23

Доска задач

Page 24: Способы создания качественного программного продукта

24

Burndown спринта: следим за прогрессом

Page 25: Способы создания качественного программного продукта

Создание и развитие командыЦель: формирование компетенции по разработке

внутри стартапа с минимальными затратамиСочетание разных подходов

НаемОбучение«Взращивание»Точечный аутсорсинг

Кейс «Планшетная разработка»

Page 26: Способы создания качественного программного продукта

Кейс «Планшетная разработка»Рост группы до 30 человек «с нуля» за годПолное отсутствие компетенции разработки под iOS

на стартеПрактическое полное отсутствие компетенции на

рынке трудаРезультат: костяк команды через 3 месяца,

масштабирование в течение 6 месяцевПроекты для топменеджмента РЖД, Русгидро, НЛМК,

Сбербанка, госструктурПродукт «Планшет руководителя»

Page 27: Способы создания качественного программного продукта

Аутcорсинг, за и против

Может быть быстроМожет быть качественнееМожет быть гарантированнееПрототипирование в целях привлечения инвестиций?

Может быть медленноДорогоНизкая итеративность и адаптивностьВысокая удельная цена (высокие дальнейшие затраты на развитие продукта)Потенциальные проблемы с IP

Page 28: Способы создания качественного программного продукта

Что отличает стартап и аутсорсера?Инженерная культура!!!

ПроцессыОпытКомандная работаГлубокие специфичные знания в определенных областях

При всем при этом – создание продукта с помощью аутсорсеров занимает на 30% времени больше (данные StartupGenom)

Как создать инженерную культуру?Учитесь сами, ищите правильных кофаундеров и менторов, привлекайте консультантов

Page 29: Способы создания качественного программного продукта

Ускорение процесса разработкиПроцесс (Scrum)Технологии и инструменты (архитектура,

масштабирование, тренды, скорость разработки)Правильный выбор «делать самим – купить готовое»Ценность: Уменьшение T2M\T2P!

Page 30: Способы создания качественного программного продукта

Product Roadmap

2012 20142013

Conf

eren

ce

enab

lem

ent

5 Re

leas

e

Shar

ePoi

nt

Inte

grat

ion

Cloud

5 Li

ve(P

aaS

Prot

otyp

e)Ta

blet

wid

get

SaaS

Bus

ines

s So

lutio

ns

5.1

Rele

ase

SaaS

Edi

tion

Capt

urin

g

Arch

ive

Hel

pDes

k

ECM

fron

t end

Cros

s-br

anch

auto

mat

ion

Mai

lroom

Revi

ew &

App

rova

lou

t-of-t

he-b

oxOut

look

& O

ffice

Tabl

et W

idge

t 2

Tabl

et W

idge

t 3

HTM

L Co

nstr

ucto

rs

BPM

RMS

CMS

SaaS

2, S

ocia

l net

wor

ks

Java

Ser

ver

HTM

L So

lutio

n M

aste

r

Non

MS

DB

Supp

ort

Plat

form

As

A Se

rvic

e

6 Ja

va S

erve

r6

Serv

ice

Mod

ules

6 Se

rvic

e M

odul

es

Easy to use Easy to customize Easy to deploy & maintain Easy to buy

Corporate

Page 31: Способы создания качественного программного продукта

Зачем нужен roadmap?Не противоречит ли наличие roadmap идеологии

lean?Фиксирует важные вехи «Наводит порядок в голове»Повышает инвестиционную привлекательность

Наличие неправильной стратегии лучше чем ее отсутствие! Стоимость cloud–компаний (по результатам реальных сделок)

– в 2 раза больше аналогичных ISV, не позиционирующих себя как «облачные»

Page 32: Способы создания качественного программного продукта

Полезные ссылкиwww.theleanstartup.comwww.scrumalliance.orgwww.openviewlabs.comwww.sprintometer.com

Особая благодарность: Борис Вольфсон, независимый Agile coach

Page 33: Способы создания качественного программного продукта

Немного о себеДиректор департамента программных решений Digital

DesignСоздание нового направления планшетной разработки с 0

до 30 человек за 1 годДиректор по стратегическим проектам DocsVision

Глобализация и взаимоотношения с инвесторамиРуководитель ERP-направления, StarSoft Labs (Exigen

Services)Локализация и вывод на российский рынок ERP-системы

Jeeves EnterpriseСо-основатель 3 стартапов

Page 34: Способы создания качественного программного продукта

Вопросы?

[email protected]+79153862525+74957410537