Upload
secon
View
130
Download
3
Embed Size (px)
Citation preview
Принцип YAGNI в управлении
проектами Анна Тарасенко7bits (Омск)
ОБО МНЕ
• Умею читать и писать с 1979 года• Программирую с 1989 года• Преподаю программирование с 1999 года• Занимаюсь заказной разработкой ПО с 2009
года• Планы на 2019 год в процессе• Организатор конференции HappyDev• Организатор ИТ-субботников – мини-
конференций в Омске раз в месяц
КЛАССИЧЕСКАЯ ПРОДАЖА ЧАСОВ
С увеличением числа разработчиков доход растет линейно
КЛАССИЧЕСКАЯ ПРОДАЖА ЧАСОВ
Расходы растут нелинейно из-за появления управленцев
ТИПИЧНЫЕ ПРОБЛЕМЫ
• Заказчик хочет точную оценку в часах, которую очень сложно дать
• Сложно поднимать стоимость часа с долгосрочным заказчиком
• Сложно обосновывать время на рефакторинг, автотесты и многое другое
Когда критерий – затраченное время, а не результат, основной вопрос: «Почему так
много?»
ЧЕГО ХОЧЕТ ЗАКАЗЧИК?
• Точный срок (fixed timing)• Точную сумму денег (fixed budget)• Точный и полный список требований
(fixed scope)• Быстрое составление ТЗ и оценку всего
вышеперечисленного
ЧЕГО ХОЧЕТ ЗАКАЗЧИК НА САМОМ ДЕЛЕ?
• Точный срок (fixed timing)• Точную сумму денег (fixed budget)• Постоянно менять и добавлять
требования• Сохранение первоначальных сроков и
бюджета при любых изменениях требований
КАК ЭТО ОБЫЧНО ВЫГЛЯДИТ
КАК ЭТО ОБЫЧНО ВЫГЛЯДИТ
ТИПИЧНЫЕ ПРОБЛЕМЫ
• Никто не знает все требования заранее (только в очень-очень редких случаях)
• Если требования не менять, то это иногда для проекта даже вредно
• Экспоненциальный рост трудозатрат на новый функционал от числа строк кода
ТИПОВОЕ РЕШЕНИЕ №1: ИТЕРАЦИИ
ТИПОВОЕ РЕШЕНИЕ №2: ИГРЫ С ОЦЕНКАМИ
• Умножение оценки на 3.14• Вероятностные оценки
сроков и рисков
ТИПОВОЕ РЕШЕНИЕ №3: SCRUM
SCRUM: ЛЕЧЕНИЕ СИМПТОМОВ
ЧТО МЫ ВЗЯЛИ ИЗ SCRUM
• Критерии приемки, составленные вместе с заказчиком
• Planning poker и ретроспектива
К ЧЕМУ ХОТЕЛИ ПРИЙТИ?
• Счастье пользователей – полезно, удобно, красиво
• Счастье команды – делать полезные продукты без постоянных авралов
• Счастье заказчика – все делается в срок и в бюджет
FFF – FIXED TIMING, FIXED BUDGET, FLEXIBLE SCOPE
• Выпускаем MVP – минимально ценный продукт.
• Зачем нужна эта фича?
• Что произойдет, если этой фичи не будет, либо будет позже?
LEAN CANVAS
ПЕРСОНЫ
• Делаем черновой вариант навигации и наброски страниц
• Оцениваем для персоны: контекст, ожидания, ощущения, мотивацию продолжать
IMPACT MAPPING
USER STORY MAPPING
CUSTOMER JOURNEY
• Делаем черновой вариант навигации и наброски страниц
• Оцениваем для персоны: контекст, ожидания, ощущения, мотивацию продолжать
ПРОТОТИПИРОВАНИЕ ИНТЕРФЕЙСОВ
• Метод прогрессивного JPEG
• Сначала все делается на бумаге, только потом, например, в Balsamiq
• Интерактивная игра для проверки гипотез
• Fail fast!
ОПТИМИЗАЦИЯ ПРОЦЕССА РАЗРАБОТКИ
• Приоритезируй это!
• KISS! YAGNI!
• Выявить зависимости задач, построить пути
• Применить теорию ограничений Голдратта
ГОТОВНОСТЬ К ИЗМЕНЕНИЯМ
• В SCRUM новые идеи идут в бэклог
• Если заказчик готов чем-то жертвовать – мы можем начать заниматься его идеей прямо сейчас
МЫ Ж ПРОГРАММИСТЫ!
Почему бы не сделать инструмент, чтобы не бояться изменений требований и уметь
точнее оценивать сроки?
РАЗРАБОТКА SMARTACTORS
• Совместный проект с компанией HWDTech
• Архитектура позволяет создавать простые независимые компоненты
• Срок разработки фичи зависит напрямую от числа компонентов
РАЗРАБОТКА SMARTACTORS
• Есть внедрение предыдущей версии на .NET
• В данный момент уже делаются проекты на этой платформе
• Первый релиз в Open Source в конце 2016 года
ЭТО ВСЕ ЗДОРОВО, НО…
Где брать команду?
ЛЕТНЯЯ СТАЖИРОВКА ДЛЯ СТУДЕНТОВ
• Реальные проекты, реальные заказчики• Реальный рабочий процесс (github,
Redmine, митинги)• Демонстрация проекта раз в неделю с
обратной связью заказчика
За 3-4 месяца студенты готовы к реальным проектам
ЧТО ПОЧИТАТЬ
• Э. Голдратт, «Цель»
• А. Бындю, «Impact mapping на практике»
• Б. Вольфсон «Гибкие методологии разработки»
• А. Тарасенко, Статья на Habrahabr по теме
СПАСИБО