You are on page 1of 26

Development practices and culture

by Matusevych Iryna
improve yourself CONTINUOUSLY
В ході теми будуть розглянуті наступні питання

1. Класифікація XP практик та переваги застосування


2. Переваги та механізми впровадження TDD, pair programing, code review etc.
3. Планування рефакторінгу та механізми впровадження як обов’язкової
складової розробки.
4. Мотивація та розвиток команди

improve yourself CONTINUOUSLY


Part 1. XP practices
Загальні поняття
improve yourself CONTINUOUSLY
ХР practices. Загальні поняття

Набір практик що дозволяє


підвищити якість розробки
в умовах змін

improve yourself CONTINUOUSLY


ХР practices. Загальні поняття
1. Планування
 планування орієнтовного обсягу робіт та термінів з подальшим
уточненням

2. Проектування
 простота рішень, з врахуванням їх постійного допрацювання.

3. Управління
 колективна відповідальність за якість коду
 відсутність owertime
 тісна взаємодія з замовником

improve yourself CONTINUOUSLY


ХР practices. Загальні поняття
4. Розробка
 Code review
 Cтандарти кодування
 Refactoring
 Pair programing
 Невеликі релізи
 Сontinius delivery

5. Тестування
 Unit tests
 Automation functional tests

improve yourself CONTINUOUSLY


Part 1. XP practices
Впровадження
improve yourself CONTINUOUSLY
ХР practices. Практики планування
Основною метою планування є формування приблизного плану робіт
та термінів з можливістью подальшого уточнення.

Поділяється:

• Планування об'єму робіт та


орієнтовних термінів виконання

• Детальне планування на старті


інтерації

improve yourself CONTINUOUSLY


ХР practices. Практики планування

Переваги використання:

 Економія часу на формування детального


плану робіт в умовах неясності

 Інвестиція в рефакторінг, як необхідну


складову розробки

 Швидкий старт

improve yourself CONTINUOUSLY


ХР practices. Практики проектування

Передбачає використання простих і


зрозумілих архітектурних рішень на
момент реалізації функціональності.

 Умова подальшох змін є обов’язковою

improve yourself CONTINUOUSLY


ХР practices. Практики проектування

Переваги використання:

 Мінімізація ризиків невірно прийнятого


архітектурного рішення на старті проекту

 Економія часу

 Інвестиція в ідею рефакторінгу та


допрацювання архітектури як необхідних
процесів

improve yourself CONTINUOUSLY


ХР practices. Практики управління

Основною метою управління є


дотримання виконання практик та
аргументація їх необхідності клієнту та
команді розробки

improve yourself CONTINUOUSLY


ХР practices. Практики управління
1. Колективна відповідальність за якість коду
 досягається шляхом впроваждення code review з подальшим
виправленням мабутніх помилок ревьвером

2. Відсутність owertime
 ефективна оцінка задач та якість збору вимог до функціональності
 розподіл робіт у відповідності до компетенцій виконавців

3. Тісна взаємодія з замовником


 в умовах змін та відсутності детального початкового планування є
абсолютно необхідним залучення product owner до процесу розробки

improve yourself CONTINUOUSLY


ХР practices. Практики управління

Переваги використання:

 Підвищення рівня відповідальності в команді

 Запобігання вигорання спеціалістів

 Відповідність очікувань клієнта та отриманих


результатів розробки

improve yourself CONTINUOUSLY


ХР practices. Практики розробки
Набір практик розробки що покращують внутрішню якість продукту

 Code review
 Cтандарти кодування
 Refactoring
 Невеликі релізи
 Continuous delivery
 Pair programing

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: code review
Перегляд технічної реалізації функіональності учасниками команди

Впровадження

1. Попереднє узгодження архітектурного


рішення
2. Definition of done - code review
3. Процес code review проводиться більш
компетентим учасником

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: code review

Переваги використання:

 Колективна відповідальність

 Ознайомлення з новою
функціональністью учасників команди

 Підвищення кваліфікації учасників


команди

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: pair programing

Алгоритм впровадження:

1. Обирається задача складністью 2 sp і більше


2. Формується 1-на пара розробників на ітерацію - компетентний +
менш компетентний
3. Пара разом працює над задачою в режимі 1 робоче місі
4. Пара узгоджує архітектурне рішення. 1-н з учасників працює над
реалізацією, інший - тести

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: pair programing

Переваги використання:

 Обмін досвідом між учасниками


команди

 Переднє узгодження дизайну

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: refactoring
Перепроектування програмного коду, що не зачіпає зовнішньої
функіональності програми з метою збільшення швидкості розробки та
підвищення якості продукту

Типи рефакторінгу:

1. На старті впровадження ХР практик


в legacy проектах
2. В ході виконання поточної
функціональності
3. Як постійний процес

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: refactoring
Рефакторінг на старті проекту алгоритм впровадження:

1. Документуються основні ідеї рефаторінгу


2. Виділяється необхідний мінімум для старту
функціональності.
3. Оцінка часу та пріоритети задач на рефакторінг
4. Поетапне виконання рефакторінгу
• в ході виконання поточної задачі - 20-30% часу
• в ході технічного часу. Під час regression testing

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: refactoring
Рефакторінг в ході поточної задачі,
алгоритм впровадження:

1. Узгодження архітектурного рішення,


початковий рефакторінг
2. Виконання задачі
3. Code review
4. В разі невеликого об'єму рефакторінг
виконується в ході закриття задачі
5. В разі глобальних змін ідеї пріорітезуються та
додаються в список на рефакторінг

improve yourself CONTINUOUSLY


ХР practices. Практики розробки: refactoring

Переваги використання:

 Зменшення часу розробки


 Внутрішня якість продукту
 Рефакторінг є необхідною платою за гнучкість
рішень

improve yourself CONTINUOUSLY


ХР practices. Практики тестування: TDD

TDD алгоритм в ході реалізації функціональності:

• Написання "каркасу" інтерфейсів


• Написання тестів
• Запуск тестів з очікуванням негативних
результатів
• Реалізація функціональності
• Запуск тестів з очікуванням позитивних
результатів

improve yourself CONTINUOUSLY


ХР practices. Практики тестування: TDD

Впровадження:

1. В ході парного програмування з учасниками які


володіють технікою
2. Definition of done - unit test

Переваги використання:

1. Якість архітектурних рішень


2. Формування навички попереднього планування
дизайну
3. Внутрішня якість програмного продукту
improve yourself CONTINUOUSLY
Дякую за увагу!

info@e-5.com.ua

w w w.e-5.com.ua

E5Trainings

E5

E5Trainings

You might also like