2. Про мене
Анатолій Охотніков, начальник відділу розробки в
компанії Softjourn Inc.
маю більше 18 років досвіду роботи у ІТ
більше 10 років досвіду управління, як team lead,
project manager, керівник відділу у банках та
сервісних компаніях
Працював в Україні та в США
3. Про що буде йти мова
Lean. Чому? Що? Як?
Agile проти традиційного підходу. Agile Manifesto. Процес та філософія
Kanban & Scrum
4. Чому Lean? Agile не взявся з повітря
"the application development crisis" або
"application delivery lag" 3-20 років
Френсис Бейкон та науковий метод у 1620
Волтер Шухарт та PDSA цикл у Bell Labs
Едвардс Демінг та TPS
Вибух Lean - 80/90 роки
“organizational anarchists”, 2001
XP, ASD, FDD, DSDM
5. Ми програємо естафету
“Підхід ‘естафета’ до розробки продукту…
може протирічити цілям максимальної
швидкості та гнучкості. Замість цього,
цілісний або ‘регбі’-підхід, де команда
намагається пройти дистанцію як єдине
ціле, передаючи м’яч назад та вперед -
може краще служити сьогоденним
конкурентним потребам.”
Хіротака Такеучи та Ікуджиро Нонака,
“The New New Product Development Game”,
Harvard Business Review, Січень 1986.
6. Що таке Lean?
«Усе, що ми робимо – це дивимося
на час від моменту отримання
замовлення, до моменту отримання
грошей з клієнта. І ми зменшуємо
цей час, шляхом видалення втрат,
що не додають кінцевої вартості
(сігото, しごと )»
Таїті Оно 大野 耐
7. 7 принципів Lean
Зменшення втрат
Вбудована якість
Створення знання
Відкласти фіксування рішення
Швидка доставка
Повага до людей
Покращення системи (в цілому)
8. 7 втрат Lean
Розробка ПЗ:
Частково зроблена робота
Затримки
Передачі
Повторне навчання
Додаткові фічі
Переключення задач
Дефекти
Оригінальні:
Перевиробництво
Очікування
Непотрібне
транспортування
Зайві етапи обробки
Зайві запаси
Непотрібні переміщення
Дефектна продукція
10. Waterfall
Водоспадна (каскадна) модель життєвого циклу
Плюси методу
Ніяких переробок
Гарна специфікація перетікає в гарну
документацію
Зрозуміла модель
Кодери можуть мати низьку кваліфікацію
Мінуси
Необхідний перфекціонізм на кожному етапі
Важко вносити зміни (якщо взагалі можливо)
Надлишкове проектування
Поділ розробників на "perfect" та "code monkeys"
12. Підхід Agile
Клієнт дізнається чого він бажає
Розробники знаходять як це зробити
Багато речей змінюються упродовж роботи
13. Що таке Agile?
Це філософія, культура, спосіб мислення або набір цінностей.
Agile розробка - цє інший спосіб управління ІТ-командами та
проектами. Також це альтернатива традиційній послідовній
розробці або водоспаду.
Основи Agile
Маніфест (Цінності): 4 цінності що є основою філософії.
Принципи: 12 принципів що втілюють цінності та дають більш конкретні приклади
що є Agile на нижньому рівні
Методології: Методи що підтримують цінності та принципи (Scrum, XP, і т.д.).
14. Agile Маніфест
Люди та співпраця важливіші за процеси та інструменти
Працюючий продукт важливіший за вичерпну документацію
Співпраця із замовником важливіша за обговорення умов
контракту
Готовність до змін важливіша за дотримання плану
Майстерність понад виконання
Тобто, хоча, цінності, що не виділені важливі,
ми все ж цінуємо більше те, що стоїть спочатку.
18. Принципи
Безперевна доставка
Зміни вимог
Швидка доставка
Працювати разом
Люди та середовище
Розмовляйте обличчям до обличчя
Робоче ПЗ - міра прогресу
Постійний темп та сталий розвиток
Технічна досконалість та маневриність
Простота
Самоорганізація
Регулярна саморефлексія
21. Дуже коротко про Kanban
"Кан" візуальний
(видимий), і "бан" –
картка або дошка
● Фізична картка, використовується у TPS для
децетралізованого "витягуючого" контролю виробництва
● У виробництвах по цілому світу, як інструмент Lean
Manufacturing (Бережливого Виробництва)
22. Дуже коротко про Kanban
Візуалізуйте потік робіт
Розбийте роботу на частини, занотуйте кожен з
пунктів на карку та приклейте її на стіну.
Підпишіть стовбчики, щоб бачити на якій стадії
знаходиться кожне завдання.
Обмежуйте НЗР (WIP)
Вимірюйте lead time та cycle time
Витягуйте цінність (не штовхайте)
24. Дошка
Обличчям до обличчя, біля дошки – найкращій спосіб
спілкування/обговорення
Дошка показує що відбувається, хто що робить і чому
Що ми вже зробили і що будемо робити далі
Стимулює роботу в потоці, покращує роботу в команді,
дозволяє виявляти проблеми
Підходить практично для будь-яких процесів
34. Що таке Scrum?
Скрам – це один з Agile процесів, що дозволяє фокусуватися на поставці
найважливіших, з точки зору бізнеса, цінностей у найстислі строки
Він дозволяє нам швидко та регулярно оглядати реально працююче
програмне забезпечення (від двох тижднів до місяця).
Бізнес розставляє пріоритети. Команди самоорганізуються та визначають
кращій спосіб, щоб випустити функції з високим пріорітетом.
З регулярністю від двох тижднів до місяця усі можуть бачити реально
працюючий програмний продукт, та вирішити випускати його як він є або
продовжити покращення в наступному спринті.
35. Популярність Scrum
Intuit
Nielsen Media
First American Real Estate
BMC Software
Ipswitch
John Deere
Lexis Nexis
Sabre
Salesforce.com
Time Warner
Turner Broadcasting
Microsoft
Yahoo
Google
Electronic Arts
Lockheed Martin
Philips
Siemens
Nokia
IBM
Capital One
BBC
https://docs.google.com/spreadsheets/d/1fm15YSM7yzHl6IKtWZOMJ5vHW96teHtCwTE_ZY7dP7w/
36. Застосування Scrum
Розробка відеоігор
Життєво важливі системи,
затверджені Управлінням з
контролю за продуктами та
ліками (США)
ПЗ контроля за супутниками
Мобільні телефони
Деякі найбільші додатки що широко
використовуються
Комерційне ПЗ
Розробка на замовлення
Проекти з фіксованою вартістю
ISO 9001-сертифіковані додатки
Вбудовані системи
24x7 системи з вимогами 99.999%
Створення «Уніфікованого
винищувача-бомбардувальника»
37. Основні характеристики
Самоорганізовані команди
Продукт розробляється “спринтами”, один не більше місяця
Усі вимоги записуються у вигляді одного списку “беклога
продукту”
Інженерні практики не є частиною Scrum
Використовує прості правила для створення гнучкого
середовища розробки проектів
Один з “Agile процесів”
41. Кожен відповідає на три питання
Це НЕ статусний звіт Scrum-майстру!
Це обов’язки перед колегами
42. Беклог продукту
Вимоги
Список бажаного функціоналу
В ідеалі написаний так, щоб кожен
елемент мав значення для
кінцевого користувача
Пріоритети виставляються
Власником продукту
Пріоритеты оновлюються на початку
спринта
43. Приклад беклогу продукту
Беклог Оцінка
Як гість, я хочу резервувати номер 3
Як гість, я хочу відмінити резервацію 5
Як гість, я хочу змінити дату резервації 3
Як співробітник готелю, я хочу проглядати звіти 8
Покращити обробку виключень 8
... 30
... 50
44. Приклад беклога спринта
Активності Пн Вт Ср Чт Пт
Зробити інтерфейс користувача 8 4 8
Зробити логіку 16 12 10 4
Протестувати логіку 8 16 16 11 8
Написати документацію
користувача
12
Винести утілити в загальний клас 8 8 8 8 8
Додати журнал помилок 8 4