мне 1. Владелец компании ByndyuSoft http://www.byndyusoft.com 2. Консультант по вопросам разработки приложений и организации работы IT компаний 3. Внештатный сотрудник Академии АйТи 4. Технический блог http://blog.byndyu.ru 5. Преподаю в ЮУрГУ 6. Тренер на AgileCamp 7. Организую конференции .NET-разработчиков http://www.dotnetconf.ru 8. Веду группу по проблемам разработки приложений https://groups.google.com/forum/?hl=ru&fromgroups#!forum/dotnetconf
должна принять: • Бизнес (потребности) заказчиков (клиентов) быстро растет и меняется • Между запросом пользователей и поставкой новой версии должно пройти минимум времени • Даже в сложных системах должно быть минимум ошибок • Если проект ждет провал, то узнать об этом нужно как можно раньше
Lean software development • Adam Smith (1732) • Eli Whitney (1765) • Frederick Taylor (1856) • Henry Ford (1863) • Kiichiro Toyoda (1894) • Taiichi Ohno (1912)
Lean software development Adam Smith (1732) 1. Свободная торговля/Капитализм 2. Принцип невмешательства 3. Разделение труда Для увеличения производительности сложную задачу можно разбить на небольшие этапы, на каждом этапе поставить людей, которые будут отлично делать именно этот участок работы.
Lean software development Eli Whitney (1762) 1. Cotton Gin 2. Разделение труда 3. Принцип взаимозаменяемости деталей при сборке 4. Американская производственная система Франция 1785, Honore Blanc – Thomas Jefferson – Eli Whitney – Идем к снижению квалификации работников
Lean software development Frederick Taylor (1856) 1. Принципы научного управления 2. Партнерство предпринимателя и работника 3. Взаимозаменяемые люди 4. One best way Любой труд может быть проанализирован, систематизирован и передан в процессе обучения любому человеку. Им были недовольны и профсоюзы, и владельцы предприятий.
Lean software development Henry Ford (1863) 1. Промышленный конвейер 2. Стандартные запчасти 3. Массовое производство …время, необходимое для выпуска модели Т сократилось с 12 часов до 2 часов
Lean software development Kiichiro Toyoda (1863) 1. Текстильная индустрия 2. Автоматических ткацких станков 3. Toyota Motors 4. Догнать Америку, но не моделью массового производства Один высококвалифицированный рабочий наблюдает за десятком машин. Машины могут работать круглосуточно.
Lean software development Taiichi Ohno (1912) 1. Создатель Toyota Production System 2. Рентабельность при широком ассортименте 3. Отсутствие потерь 4. Just In Time 5. Jidoka (умная автоматизация) «…смотрим на время от момента получения заказа, до момента получения денег. Мы уменьшаем это время, путем удаления потерь…»
принципов Lean • Ликвидировать потери • Выстраивать качество • Создание знания • Откладывать необходимые решения • Доставлять быстро • Уважать людей • Оптимизировать Целое
потери принципы Lean Проблемы: • Изменение требований и технический долг • Отложенная интеграция • Отложенное тестирование • Избыточные возможности (борьба за простоту, легкая архитектура) • Подробные ТЗ Миф: Созданная заранее спецификация сокращает потери
потери принципы Lean Инструмент: Карта потока создания ценности Уточнение деталей Создание ценности Потери Заявка на разработку Реализация Создание Т З Сбор команды Принятие заказчиком Ввод в эксплуатацию 7 дней 10 минут 14 дней 14 дней 7 дней 21 день 7 день 42 дня 28 дней Эффективность 60%
качество принципы Lean Миф: Цель тестирования выявление дефектов Проблемы: • Позднее выявление дефектов • Очереди дефектов на исправление • Полностью ручное тестирование • Ручной выпуск новых версий
знания принципы Lean Миф: прогнозы обеспечивают предсказуемость Проблемы: • Полное ТЗ до создания прототипа • Big Design Up Front • Поздние релизы, плохая обратная связь • Негибкая команда • Следование плану
необходимые решения принципы Lean Миф: план – это обязательство Проблемы: • Откладывание важные решения до полной ясности • Принимаем решение слишком рано
быстро принципы Lean Миф: спешка ведет к браку Проблемы: • Низкая скорость разработки • Боязнь релиза • Планы, стандарты и спецификации для разработчиков
людей принципы Lean Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения Проблемы: • Восприятие разработчиков, как взаимозаменяемые инструменты • Забираем ответственность у тех, кто выполняет реальную работу • Микроменеджмент Миф: существует наилучший метод
7 основных потерь • Недоделанная работа • Лишняя функциональность • Повторное изучение • Передача работы (глухой телефон) • Переключение между задачами • Задержки • Дефекты
между задачами основные потери Неделя 1 Неделя 2 Неделя 3 Неделя 4 Задача А Задача Б Задача В Задача Г Неделя 1 Неделя 2 Неделя 3 Неделя 4 А Б В Г А Б В Г А Б В Г А Б В Г А Б Переключения