Способы создания качественного программного продукта
Transcript of Способы создания качественного программного продукта
Алексей Филимонов, Партнер, Директор департамента технологического консалтинга и экспертизы
Разработка продукта: делаем и не боимсяЖизненный цикл продукта в стартапеLean startup и разработкаMinimum Viable ProductScrumСоздание и развитие командыProduct roadmap
Жизненный цикл продуктаКлассическая модель
Требования\ТЗ\СпецификацииРазработкаРазвитие и поддержка
Модель разработки в стартапеСтартап не знает какой продукт будет в итоге!
Цели и задачи стартапа1. Как можно быстрее ответить на вопрос – а можно ли вокруг этой идеи создать бизнес?
Lean startup2. Построить процесс, помогающий ответить на п.13. Создать внутри организации компетенцию по созданию и развитию продукта
Если на этом базируются конкурентные преимущества4. Принять правильные технологические решения, влияющие на развитие продукта в будущем
И на капитализацию!5. Минимизировать затраты до получения инвестиций
Но сделать достаточно для привлечения инвестора!
Lean startupУправлению стартапами можно научить!Build-Learn-MeasureInnovation accounting
Измеряйте прогрессСтавьте приоритетыСтавьте промежуточные цели
Validated learningТестируйте и проверяйте все как можно раньше
Жизненный цикл в Lean startupDo
Develop\Update MVPTest MVPКорректировка product vision
Until MVP = CORRECTРазвитие продукта
Итеративно!
Создание и развитие продукта в lean startup невозможно без применения гибких (agile) методологий разработки
Примеры lean стартапов
Что такое MVP?Минимальная фунциональность удовлетворяющая
базовую потребность предполагаемого клиентаFeature listСпеки/экраны системыСайт с описанием преимуществПрототипБета-версию системыv1.0 системы
Что такое MVP?Должен ли быть продукт?Что то что может помочь получить обратную связь от
ближнего круга (sounding board)Очевидно, это не обязательно даже прототип!Постоянно развивающийся «протопродукт»?
10
Agile ManifestoЛюди и их взаимодействие важнее,
чем процессы и инструменты
Работоспособное ПО важнее, чем обширная и детальная документация
Сотрудничество с заказчиком важнее,чем жесткие контракты
Реагировать на изменения важнее, чем следовать плану
11
ScrumГибкая методология УП
Набор ролей, методов и процессовУправленческий фреймворк с жесткими ограничения
по времени и четкой структурой процессовНе описываются инженерные практики
Как программировать?Как анализировать требования?… зато легко внедрить за день
12
Высокая турбулентность среды
Водопадные
Итеративные
А А
В В
C C
13
Ценность SCRUM для стартапаИтеративность процесса
Частый выпуск версии продукта (2-4 недели)«Градиентный» метод развития продукта через более частое
получение обратной связи с рынка или от sounding boardВозможность работы с неформализованными требованиями
(user stories)Возможность быстрого переноса бизнес-требований в код
Внимание к техническому качеству и архитектуре на протяжении всего проектаСтабильное качество каждой версии
Самоорганизующаяся и кроссфункциональная командаНезависимость от единичных носителей компетенций
14
Компании, использующие ScrumMicrosoftYahooGoogleElectronic ArtsLockheed MartinPhilipsSiemensNokiaBBCIntuit
Nielsen MediaSalesForce.comOracleIntelTime WarnerTurner BroadcastingToyotaRamblerKaspersky Labs
15
Scrum: ролиScrum Master – Скрам-мастер
Руководитель проекта?Устранение проблем и улучшение процессов
Product Owner - Владелец продуктаЗаказчик/Клиент?Поставщик требований и приоритетов
КомандаИсполнители/Программисты?Каждый спринт делает готовый продукт
16
Scrum: управление требованиями
Задача
Юзер-стори
Беклог спринта
Беклог продукта
17
Юзер-сториТребование с точки зрения пользователя«Роль/Персонаж», «Действие», «Цель»
Зарегистрированный пользователь оплачивает товар, чтобы его приобрести
«Таня Бухгалтерша» и «Василий ИТшник» – разные персонажи
Полное описание «хранится» в виде знаний командыЕсли команда распределенная используется вики
18
Scrum: процессы
19
Scrum: иерархия процессов
Ежедневный скрам
Спринт
Релиз
20
Покер-планирование
У каждого участника колода карт с оценками
Оценки даются в идеальных
человеко-часах или в стори-
поинтах
Рассматривается и обсуждается одна
юзер-стори
Каждый участник одновременно делает оценку
Если оценки различаются, то обсуждаем еще и повторяем оценку
21
Планирование-спринтаАктуализируются приоритеты у задач владельцем
продуктаНа спринт выбираются самые важные задачи
Сумма оценки всех набранных задач не должна превышать скорость команды
Если задача не помешается целиком, ее необходимо разбить на две, а не брать более маленькую задачу с меньшим приоритетом
22
Ежедневный скрамОграниченный по времени
стендапВ одно и то же времяДолжна быть вся команда…
… и владелец продуктаКаждый отвечает на три
вопроса:Что сделано вчера?Какие были проблемы?Что будешь делать сегодня?
23
Доска задач
24
Burndown спринта: следим за прогрессом
Создание и развитие командыЦель: формирование компетенции по разработке
внутри стартапа с минимальными затратамиСочетание разных подходов
НаемОбучение«Взращивание»Точечный аутсорсинг
Кейс «Планшетная разработка»
Кейс «Планшетная разработка»Рост группы до 30 человек «с нуля» за годПолное отсутствие компетенции разработки под iOS
на стартеПрактическое полное отсутствие компетенции на
рынке трудаРезультат: костяк команды через 3 месяца,
масштабирование в течение 6 месяцевПроекты для топменеджмента РЖД, Русгидро, НЛМК,
Сбербанка, госструктурПродукт «Планшет руководителя»
Аутcорсинг, за и против
Может быть быстроМожет быть качественнееМожет быть гарантированнееПрототипирование в целях привлечения инвестиций?
Может быть медленноДорогоНизкая итеративность и адаптивностьВысокая удельная цена (высокие дальнейшие затраты на развитие продукта)Потенциальные проблемы с IP
Что отличает стартап и аутсорсера?Инженерная культура!!!
ПроцессыОпытКомандная работаГлубокие специфичные знания в определенных областях
При всем при этом – создание продукта с помощью аутсорсеров занимает на 30% времени больше (данные StartupGenom)
Как создать инженерную культуру?Учитесь сами, ищите правильных кофаундеров и менторов, привлекайте консультантов
Ускорение процесса разработкиПроцесс (Scrum)Технологии и инструменты (архитектура,
масштабирование, тренды, скорость разработки)Правильный выбор «делать самим – купить готовое»Ценность: Уменьшение T2M\T2P!
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
Зачем нужен roadmap?Не противоречит ли наличие roadmap идеологии
lean?Фиксирует важные вехи «Наводит порядок в голове»Повышает инвестиционную привлекательность
Наличие неправильной стратегии лучше чем ее отсутствие! Стоимость cloud–компаний (по результатам реальных сделок)
– в 2 раза больше аналогичных ISV, не позиционирующих себя как «облачные»
Полезные ссылкиwww.theleanstartup.comwww.scrumalliance.orgwww.openviewlabs.comwww.sprintometer.com
Особая благодарность: Борис Вольфсон, независимый Agile coach
Немного о себеДиректор департамента программных решений Digital
DesignСоздание нового направления планшетной разработки с 0
до 30 человек за 1 годДиректор по стратегическим проектам DocsVision
Глобализация и взаимоотношения с инвесторамиРуководитель ERP-направления, StarSoft Labs (Exigen
Services)Локализация и вывод на российский рынок ERP-системы
Jeeves EnterpriseСо-основатель 3 стартапов