SlideShare a Scribd company logo
1 of 14
Принцип Inversion of Control в
применении к Agile-разработке
Владимир Лешкевич
Минск, Intetics Co.
План доклада
• Процесс познания
• Принцип Inversion of Control
• Agile практики
Процесс познания
Неосознанная некомпетентность
Осознанная некомпетентность
Осознанная компетентность
Неосознанная компетентность
• Переход к четвертой ступени познания
• Интернализация навыка
• Подмена формальными практиками
• Неустойчивость третьей ступени
• Ценность практического опыта (негативного)
• Дополнение теоретическим изучением
• Aha-эффект
Inversion of Control
• Управляющее воздействие осуществляется извне
• Принцип «шиворот-навыворот»
• Inversion of Control как инструмент aha-эффекта
Procedure 1 Procedure 2
Operation 1 Operation 2 Operation 3
Main
Procedure 1 Procedure 2
Operation 1 Operation 2 Operation 3
Main
Procedure 3
Примеры из окружающего мира
VS
Agile manifesto
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
Testability
• Не пытаться тестировать то, что есть
• Подбираем технологии по критерию
testability
• Выгоды
• Продуктивность
• Инновации
• Человеческий фактор
Test-Driven Development
• Runnable requirements over dead documentation
• Реализация, направляемая тестами
• Пишем требование, код подгоняем под требование
• Сложная задача заменяется на две более простых
• Обобщение граничных/вырожденных
случаев
Test-Driven Development, пример
Задача: факторизовать
натуральное число
• 1 => [1]
return [1]
• 2 => [2]
return [n]
• 4 => [2, 2]
if n == 4
return [2, 2]
return [n]
• 6 => [2, 3]
if n > 2 && n % 2 == 0
return [2, n / 2]
return [n]
• 8 => [2, 2, 2]
result = []
while n > 2 && n % 2 == 0
result.append(2)
n /= 2
result.append(n)
return result
• 9 => [3, 3]
result = []
foreach i in [2..sqrt(n)]
while n > i && n % i == 0
result.append(i)
n /= i
result.append(n)
return result
Архитектура/дизайн
Object-Oriented Design
SRP
OCP
LSP
ISP
DIP
…
Practices
Wrap primitive
types/collections
No getters/setters
VS
• Роль архитектора
• Эволюционный дизайн
• From smells to patterns, а не наоборот
Человеческий фактор
• Максимизируем удовлетворенность сотрудников
• Долгосрочный выигрыш
• Жизнеспособность?
• Раздаем все деньги
• Плохие сотрудники
• Нельзя уволить
• Нет негатива
• Реальные компании?
Обучение Agile
• Не начинать карьеру сотрудника с изучения Agile
• Негативный прошлый опыт
• Создавать его
Заключение
• «Почему» важнее, чем «что»
• Ловите aha-моменты
• Ищите скрытые мотивы
• Не надейтесь на «куриные мозги», ищите «холодные яйца»
• Проявляйте смелость
Q & A

More Related Content

Viewers also liked

Php архитектор - кто он?
Php архитектор - кто он?Php архитектор - кто он?
Php архитектор - кто он?phpdevby
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agilesef2009
 
Курс выживания молодого айтишника
Курс выживания молодого айтишникаКурс выживания молодого айтишника
Курс выживания молодого айтишникаitHouse
 
Виталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в AgileВиталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в AgileSQADays_2009_Piter
 
Intetics Inc as the Globalization Enabler: providing access to software devel...
Intetics Inc as the Globalization Enabler: providing access to software devel...Intetics Inc as the Globalization Enabler: providing access to software devel...
Intetics Inc as the Globalization Enabler: providing access to software devel...Intetics
 
Принцип Inversion Of Control в применении к Agile разработке
Принцип Inversion Of Control в применении к Agile разработкеПринцип Inversion Of Control в применении к Agile разработке
Принцип Inversion Of Control в применении к Agile разработкеUladzimir Liashkevich
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложенийZestranec
 
Ладутько - правила роста команды тестирования - Ladutko - Rules of growth in...
Ладутько -  правила роста команды тестирования - Ladutko - Rules of growth in...Ладутько -  правила роста команды тестирования - Ladutko - Rules of growth in...
Ладутько - правила роста команды тестирования - Ladutko - Rules of growth in...Andrey Ladutko
 
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"EPAM Systems
 
Kleshnin A. Creating an interactive web-maps using web-based mapping library ...
Kleshnin A. Creating an interactive web-maps using web-based mapping library ...Kleshnin A. Creating an interactive web-maps using web-based mapping library ...
Kleshnin A. Creating an interactive web-maps using web-based mapping library ...Anton Biatov
 
HR-branding pracicies 2014 report_hh.ua
HR-branding pracicies 2014 report_hh.uaHR-branding pracicies 2014 report_hh.ua
HR-branding pracicies 2014 report_hh.uaTetiana Riabokin
 
Геймификация: Level 2
Геймификация: Level 2Геймификация: Level 2
Геймификация: Level 2Vasily Bogdanov
 
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияИспользование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияSQALab
 
Обзор белорусской индустрии разработки программных решений, услуг и продуктов
Обзор белорусской индустрии разработки программных решений, услуг и продуктовОбзор белорусской индустрии разработки программных решений, услуг и продуктов
Обзор белорусской индустрии разработки программных решений, услуг и продуктовSQALab
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...SQALab
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестированииSQALab
 
Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий СтрелюкSQALab
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийSQALab
 

Viewers also liked (20)

Php архитектор - кто он?
Php архитектор - кто он?Php архитектор - кто он?
Php архитектор - кто он?
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
 
Курс выживания молодого айтишника
Курс выживания молодого айтишникаКурс выживания молодого айтишника
Курс выживания молодого айтишника
 
Виталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в AgileВиталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в Agile
 
Intetics Inc as the Globalization Enabler: providing access to software devel...
Intetics Inc as the Globalization Enabler: providing access to software devel...Intetics Inc as the Globalization Enabler: providing access to software devel...
Intetics Inc as the Globalization Enabler: providing access to software devel...
 
Принцип Inversion Of Control в применении к Agile разработке
Принцип Inversion Of Control в применении к Agile разработкеПринцип Inversion Of Control в применении к Agile разработке
Принцип Inversion Of Control в применении к Agile разработке
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 
Ладутько - правила роста команды тестирования - Ladutko - Rules of growth in...
Ладутько -  правила роста команды тестирования - Ladutko - Rules of growth in...Ладутько -  правила роста команды тестирования - Ladutko - Rules of growth in...
Ладутько - правила роста команды тестирования - Ladutko - Rules of growth in...
 
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"
 
Kleshnin A. Creating an interactive web-maps using web-based mapping library ...
Kleshnin A. Creating an interactive web-maps using web-based mapping library ...Kleshnin A. Creating an interactive web-maps using web-based mapping library ...
Kleshnin A. Creating an interactive web-maps using web-based mapping library ...
 
Makarov
MakarovMakarov
Makarov
 
HR-branding pracicies 2014 report_hh.ua
HR-branding pracicies 2014 report_hh.uaHR-branding pracicies 2014 report_hh.ua
HR-branding pracicies 2014 report_hh.ua
 
Геймификация: Level 2
Геймификация: Level 2Геймификация: Level 2
Геймификация: Level 2
 
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияИспользование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестирования
 
Обзор белорусской индустрии разработки программных решений, услуг и продуктов
Обзор белорусской индустрии разработки программных решений, услуг и продуктовОбзор белорусской индустрии разработки программных решений, услуг и продуктов
Обзор белорусской индустрии разработки программных решений, услуг и продуктов
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестировании
 
Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий Стрелюк
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 

Similar to Принцип Inversion Of Control в применении к Agile разработке

Автоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производстваАвтоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производстваSQALab
 
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Анастасия Виноградова
 
Управление и руководство в процессном подходе. Тренинг-семинар.
Управление и руководство в процессном подходе. Тренинг-семинар.Управление и руководство в процессном подходе. Тренинг-семинар.
Управление и руководство в процессном подходе. Тренинг-семинар.Ратнер Александр
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы AgileMagneta AI
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективыBoris Volfson
 
Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile" Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile" it-network
 
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...Ontico
 
Agile - гибкое управление проектами
Agile - гибкое управление проектамиAgile - гибкое управление проектами
Agile - гибкое управление проектамиSergey Atroschenkov
 
Модуль 3. Управление результатами. Школа мене…
Модуль 3. Управление результатами. Школа мене…Модуль 3. Управление результатами. Школа мене…
Модуль 3. Управление результатами. Школа мене…Oleg Afanasyev
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance managementCEE-SEC(R)
 
avtor-cleaner
avtor-cleaneravtor-cleaner
avtor-cleanerrusichbda
 
QA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадить
QA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадитьQA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадить
QA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадитьQAFest
 
Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...
Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...
Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...Nikita Nalyutin
 
Оценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика примененияОценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика примененияSQALab
 
IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...
IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...
IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...DataArt
 
It talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина ШалапановаIt talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина ШалапановаMarina Peregud
 
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияБез единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияEDS Systems
 
Практика внутреннего аудита СМИБ
Практика внутреннего аудита СМИБПрактика внутреннего аудита СМИБ
Практика внутреннего аудита СМИБAlexey Evmenkov
 

Similar to Принцип Inversion Of Control в применении к Agile разработке (20)

Автоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производстваАвтоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производства
 
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
 
Управление и руководство в процессном подходе. Тренинг-семинар.
Управление и руководство в процессном подходе. Тренинг-семинар.Управление и руководство в процессном подходе. Тренинг-семинар.
Управление и руководство в процессном подходе. Тренинг-семинар.
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы Agile
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективы
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile" Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile"
 
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
 
Agile - гибкое управление проектами
Agile - гибкое управление проектамиAgile - гибкое управление проектами
Agile - гибкое управление проектами
 
Модуль 3. Управление результатами. Школа мене…
Модуль 3. Управление результатами. Школа мене…Модуль 3. Управление результатами. Школа мене…
Модуль 3. Управление результатами. Школа мене…
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
avtor-cleaner
avtor-cleaneravtor-cleaner
avtor-cleaner
 
QA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадить
QA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадитьQA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадить
QA Fest 2015. Андрей Мясников. Процесс: как наладить, а не нагадить
 
Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...
Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...
Test Labs 2009. Налютин Никита. Тестирование, как средство противодействия вн...
 
Оценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика примененияОценка трудозатрат аналитика: практика применения
Оценка трудозатрат аналитика: практика применения
 
IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...
IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...
IT talk #25 (CПб). Спикер: Валерий Паринов. Тема: «Польза Lean в продуктовой ...
 
It talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина ШалапановаIt talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
 
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияБез единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
 
Практика внутреннего аудита СМИБ
Практика внутреннего аудита СМИБПрактика внутреннего аудита СМИБ
Практика внутреннего аудита СМИБ
 

More from Agileee

Robin Dymond: "Your Brain and Better Product Development"
Robin Dymond: "Your Brain and Better Product Development"Robin Dymond: "Your Brain and Better Product Development"
Robin Dymond: "Your Brain and Better Product Development"Agileee
 
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...Agileee
 
Piotr Burdylo: Managing developers is complex
Piotr Burdylo: Managing developers is complexPiotr Burdylo: Managing developers is complex
Piotr Burdylo: Managing developers is complexAgileee
 
Nick Oostvogels: 5 Arguments Against Kanban
Nick Oostvogels: 5 Arguments Against KanbanNick Oostvogels: 5 Arguments Against Kanban
Nick Oostvogels: 5 Arguments Against KanbanAgileee
 
Anthony Marchenko: Опыт внедрения Kanban
Anthony Marchenko: Опыт внедрения KanbanAnthony Marchenko: Опыт внедрения Kanban
Anthony Marchenko: Опыт внедрения KanbanAgileee
 
Nataliya Trenina: Office magic
Nataliya Trenina: Office magicNataliya Trenina: Office magic
Nataliya Trenina: Office magicAgileee
 
Henrik Kniberg: Agile at home
Henrik Kniberg: Agile at homeHenrik Kniberg: Agile at home
Henrik Kniberg: Agile at homeAgileee
 
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEHenrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEAgileee
 
Nathaniel Cadwell: The Art of Facilitation
Nathaniel Cadwell: The Art of Facilitation Nathaniel Cadwell: The Art of Facilitation
Nathaniel Cadwell: The Art of Facilitation Agileee
 
Scrum and kanban
Scrum and kanbanScrum and kanban
Scrum and kanbanAgileee
 
How To Change The World
How To Change The WorldHow To Change The World
How To Change The WorldAgileee
 
The Extreme Decade
The Extreme DecadeThe Extreme Decade
The Extreme DecadeAgileee
 
Agile Testing. Risks, Uncertainty and Why It All Works
Agile Testing. Risks, Uncertainty and Why It All WorksAgile Testing. Risks, Uncertainty and Why It All Works
Agile Testing. Risks, Uncertainty and Why It All WorksAgileee
 
Movivation 3.0
Movivation 3.0Movivation 3.0
Movivation 3.0Agileee
 
Effective Software Development in the 21st Century
Effective Software Development in the 21st CenturyEffective Software Development in the 21st Century
Effective Software Development in the 21st CenturyAgileee
 
Myths, Legends and Monsters of Enterprise Agility
Myths, Legends and Monsters of Enterprise AgilityMyths, Legends and Monsters of Enterprise Agility
Myths, Legends and Monsters of Enterprise AgilityAgileee
 
Lightening Talk: Software craftsmanship
Lightening Talk: Software craftsmanshipLightening Talk: Software craftsmanship
Lightening Talk: Software craftsmanshipAgileee
 
Lightening Talk: Lean start up
Lightening Talk: Lean start upLightening Talk: Lean start up
Lightening Talk: Lean start upAgileee
 
Lightening Talk: lama sutra of retrospective
Lightening Talk: lama sutra of retrospectiveLightening Talk: lama sutra of retrospective
Lightening Talk: lama sutra of retrospectiveAgileee
 
Lightening Talk: Just do it eng
Lightening Talk: Just do it engLightening Talk: Just do it eng
Lightening Talk: Just do it engAgileee
 

More from Agileee (20)

Robin Dymond: "Your Brain and Better Product Development"
Robin Dymond: "Your Brain and Better Product Development"Robin Dymond: "Your Brain and Better Product Development"
Robin Dymond: "Your Brain and Better Product Development"
 
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
Lyssa Adkins & Michael Spayd: The Essential Transformations: How Agile Calls ...
 
Piotr Burdylo: Managing developers is complex
Piotr Burdylo: Managing developers is complexPiotr Burdylo: Managing developers is complex
Piotr Burdylo: Managing developers is complex
 
Nick Oostvogels: 5 Arguments Against Kanban
Nick Oostvogels: 5 Arguments Against KanbanNick Oostvogels: 5 Arguments Against Kanban
Nick Oostvogels: 5 Arguments Against Kanban
 
Anthony Marchenko: Опыт внедрения Kanban
Anthony Marchenko: Опыт внедрения KanbanAnthony Marchenko: Опыт внедрения Kanban
Anthony Marchenko: Опыт внедрения Kanban
 
Nataliya Trenina: Office magic
Nataliya Trenina: Office magicNataliya Trenina: Office magic
Nataliya Trenina: Office magic
 
Henrik Kniberg: Agile at home
Henrik Kniberg: Agile at homeHenrik Kniberg: Agile at home
Henrik Kniberg: Agile at home
 
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEHenrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
 
Nathaniel Cadwell: The Art of Facilitation
Nathaniel Cadwell: The Art of Facilitation Nathaniel Cadwell: The Art of Facilitation
Nathaniel Cadwell: The Art of Facilitation
 
Scrum and kanban
Scrum and kanbanScrum and kanban
Scrum and kanban
 
How To Change The World
How To Change The WorldHow To Change The World
How To Change The World
 
The Extreme Decade
The Extreme DecadeThe Extreme Decade
The Extreme Decade
 
Agile Testing. Risks, Uncertainty and Why It All Works
Agile Testing. Risks, Uncertainty and Why It All WorksAgile Testing. Risks, Uncertainty and Why It All Works
Agile Testing. Risks, Uncertainty and Why It All Works
 
Movivation 3.0
Movivation 3.0Movivation 3.0
Movivation 3.0
 
Effective Software Development in the 21st Century
Effective Software Development in the 21st CenturyEffective Software Development in the 21st Century
Effective Software Development in the 21st Century
 
Myths, Legends and Monsters of Enterprise Agility
Myths, Legends and Monsters of Enterprise AgilityMyths, Legends and Monsters of Enterprise Agility
Myths, Legends and Monsters of Enterprise Agility
 
Lightening Talk: Software craftsmanship
Lightening Talk: Software craftsmanshipLightening Talk: Software craftsmanship
Lightening Talk: Software craftsmanship
 
Lightening Talk: Lean start up
Lightening Talk: Lean start upLightening Talk: Lean start up
Lightening Talk: Lean start up
 
Lightening Talk: lama sutra of retrospective
Lightening Talk: lama sutra of retrospectiveLightening Talk: lama sutra of retrospective
Lightening Talk: lama sutra of retrospective
 
Lightening Talk: Just do it eng
Lightening Talk: Just do it engLightening Talk: Just do it eng
Lightening Talk: Just do it eng
 

Принцип Inversion Of Control в применении к Agile разработке

  • 1. Принцип Inversion of Control в применении к Agile-разработке Владимир Лешкевич Минск, Intetics Co.
  • 2. План доклада • Процесс познания • Принцип Inversion of Control • Agile практики
  • 3. Процесс познания Неосознанная некомпетентность Осознанная некомпетентность Осознанная компетентность Неосознанная компетентность • Переход к четвертой ступени познания • Интернализация навыка • Подмена формальными практиками • Неустойчивость третьей ступени • Ценность практического опыта (негативного) • Дополнение теоретическим изучением • Aha-эффект
  • 4. Inversion of Control • Управляющее воздействие осуществляется извне • Принцип «шиворот-навыворот» • Inversion of Control как инструмент aha-эффекта Procedure 1 Procedure 2 Operation 1 Operation 2 Operation 3 Main Procedure 1 Procedure 2 Operation 1 Operation 2 Operation 3 Main Procedure 3
  • 6. Agile manifesto • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
  • 7. Testability • Не пытаться тестировать то, что есть • Подбираем технологии по критерию testability • Выгоды • Продуктивность • Инновации • Человеческий фактор
  • 8. Test-Driven Development • Runnable requirements over dead documentation • Реализация, направляемая тестами • Пишем требование, код подгоняем под требование • Сложная задача заменяется на две более простых • Обобщение граничных/вырожденных случаев
  • 9. Test-Driven Development, пример Задача: факторизовать натуральное число • 1 => [1] return [1] • 2 => [2] return [n] • 4 => [2, 2] if n == 4 return [2, 2] return [n] • 6 => [2, 3] if n > 2 && n % 2 == 0 return [2, n / 2] return [n] • 8 => [2, 2, 2] result = [] while n > 2 && n % 2 == 0 result.append(2) n /= 2 result.append(n) return result • 9 => [3, 3] result = [] foreach i in [2..sqrt(n)] while n > i && n % i == 0 result.append(i) n /= i result.append(n) return result
  • 10. Архитектура/дизайн Object-Oriented Design SRP OCP LSP ISP DIP … Practices Wrap primitive types/collections No getters/setters VS • Роль архитектора • Эволюционный дизайн • From smells to patterns, а не наоборот
  • 11. Человеческий фактор • Максимизируем удовлетворенность сотрудников • Долгосрочный выигрыш • Жизнеспособность? • Раздаем все деньги • Плохие сотрудники • Нельзя уволить • Нет негатива • Реальные компании?
  • 12. Обучение Agile • Не начинать карьеру сотрудника с изучения Agile • Негативный прошлый опыт • Создавать его
  • 13. Заключение • «Почему» важнее, чем «что» • Ловите aha-моменты • Ищите скрытые мотивы • Не надейтесь на «куриные мозги», ищите «холодные яйца» • Проявляйте смелость
  • 14. Q & A