У динамічному світі розробки програмного забезпечення управління технічним боргом має вирішальне значення для підтримки якості продукту та ефективності команди. Бізнес-аналітик (BA) відіграє ключову роль у цьому процесі, гарантуючи, що технічна заборгованість виявлена, визначена пріоритетність і вирішена в рамках невиконаних задач. Згідно з опитуванням McKinsey, компанії, які ефективно керують технічним боргом, можуть отримати до 30% збільшення продуктивності розробки. BA сприяє чіткій комунікації між зацікавленими сторонами та командою розробників, забезпечуючи добре розуміння впливу технічної заборгованості та належне визначення пріоритетів для її вирішення. Включаючи найкращі практики та детальну документацію, BAs допомагають зменшити ймовірність обʼєм технічного боргу в майбутньому. Крім того, регулярний моніторинг і звітність про технічні показники боргу забезпечують постійну видимість і управління. Зрештою, роль BA є невід’ємною частиною балансу між потребою в нових функціях і необхідністю підтримки здорової, стійкої кодової бази.
Що таке технічний борг?
Технічний борг (technical debt) належить до практики впровадження швидких, тимчасових рішень для досягнення негайних цілей, часто ціною довгострокової ефективності. Ця концепція, представлена Уордом Каннінгемом, одним з авторів Agile Manifesto, ілюструє наслідки накопичення невирішених технічних проблем. Як випливає з цього терміну, нехтування архітектурою програмного забезпечення та якістю коду призводить до накопичення технічної заборгованості. Розвʼязання ігнорованих проблем у майбутньому можна порівняти зі сплатою відсотків за кредитом – це може бути дорого і складно.
Ідентифікація і документування елементів технічного боргу
Кожна команда, незалежно від рівня зрілості та тривалості роботи на проєкті, зіткнеться з технічним боргом. У минулому лише інженери були знайомі з елементами технічної заборгованості, а всій команді, особливо бізнес-аналітику та менеджеру з продукту, було відомо мало. Оскільки клієнт не бачив жодної цінності у вирішенні технічної заборгованості, ці питання розглядали лише в тому випадку, якщо код, що постраждав, змінювався в рамках проєкту або виникала проблема, яка була частково або виключно результатом технічної заборгованості. Як результат, можуть існувати елементи технічної заборгованості, які є (1) слабо задокументовані (наприклад, квитки Jira з описом в 1 рядок) у журналі продукту (product backlog), (2) створені більше, ніж рік тому, та (3) не мають логічного шляху для виправлення. Зіткнувшись з цими елементами технічної заборгованості, особливо через певний час, керівник продукту (Product Owner) не знатиме, чи слід їх вирішувати, чи ні.
Завдяки моделі безперервної інтеграції (Continuous Integration) та безперервного постачання (Continuous Delivery), яку сьогодні використовують більшість, виникає потреба ідентифікувати елементи технічної заборгованості, як тільки вони стають відомі, документуючи деталі елемента та співпрацюючи з менеджером із продуктів і командою, щоб забезпечити його вирішення якомога швидше. Саме тут бізнес-аналітик відіграє дуже важливу роль. Адже подібно до функціональних вимог та історій користувачів (user stories), елементи технічної заборгованості слід аналізувати та документувати з таким самим рівнем деталізації. Докладніше цю тему ми розглянемо на курсі Business Analysis Intensive.
Нижче наведено зразок шляху для забезпечення своєчасного документування елементів технічної заборгованості:
Задачі BA у вирішенні та профілактиці ТБ
Сподіваємось, завдяки використанню концепцій безперервної інтеграції, які підтримують постійне тестування нового коду, як бізнес-аналітику вам не доведеться стикатися з елементами технічної заборгованості на такому ж рівні, як це було 5 років тому. Технічна заборгованість стосується майбутніх витрат, понесених через вибір легкого, обмеженого чи швидкого рішення зараз замість використання кращого підходу, який зайняв би більше часу. З часом технічна заборгованість може уповільнити розробку, викликати більше помилок і збільшити витрати на обслуговування. Бізнес-аналітики (BA) відіграють важливу роль в управлінні та погашенні технічної заборгованості. Ось кілька способів, якими вони можуть зробити свій внесок:
1. Виявлення технічної заборгованості
- Документуйте елементи заборгованості: BA повинні документувати випадки технічної заборгованості під час збору вимог, написання історій користувача та усунення невиконаних завдань.
- Реєстр технічної заборгованості: Ведіть реєстр або журнал, який відстежує всі ідентифіковані елементи технічної заборгованості, включаючи їхнє походження, вплив і приблизні зусилля для вирішення. Використовуйте категоризацію, лейбування, чи будь-який інший спосіб, щоб вчасно ідентифікувати всі елементи технічного боргу і вчасно його вирішувати. Ці та інші інструменти управління реєстром продукту обговоримо на курсі Business Analysis Intensive.
2. Пріоритезація технічної заборгованості
- Аналіз впливу: працюйте з командою розробників, щоб оцінити вплив кожного технічного боргу на поточні та майбутні віхи проєкту (milestone).
- Спілкування із зацікавленими сторонами: повідомляйте зацікавленим сторонам про наслідки технічної заборгованості, щоб переконатися, що вони їх розуміють.
- Інкорпорація в Backlog: Переконайтеся, що елементи технічної заборгованості включені в резерв продукту та мають відповідний пріоритет, збалансувавши їх новими функціями та виправленнями помилок.
3. Сприяння чітким вимогам
- Докладні вимоги: надайте детальні та чіткі вимоги у всіх поточних завданнях, щоб зменшити неоднозначність, яка часто може призвести до технічної заборгованості.
- Критерії прийняття (Acceptance criteria): визначте комплексні критерії прийняття, щоб гарантувати, що виконана робота відповідає стандартам якості та не сприяє технічному боргу.
4. Заохочення найкращих практик
- Перегляд і тестування коду: заохочуйте такі практики, як перевірка коду, автоматичне тестування та постійна інтеграція, щоб завчасно виявити потенційну заборгованість.
- Час на рефакторинг: відстоюйте регулярний час на рефакторинг під час планування спринту для поступового усунення технічної заборгованості.
5. Моніторинг і звітність
- Регулярний моніторинг: проводите регулярні перевірки реєстру технічної заборгованості з командою розробників, щоб забезпечити прозорість.
- Показники та звітність: відстежуйте показники, пов’язані з технічною заборгованістю, наприклад, кількість елементів заборгованості, приблизні зусилля для вирішення та вплив на продуктивність. Вчасно повідомляйте ці показники зацікавленим сторонам.
6. Сприяння культурі скорочення боргів
- Навчання та обізнаність: сприяйте обізнаності та тренінгам про важливість управління технічним боргом серед членів команди.
- Система винагороди: заохочуйте культуру, яка визнає та винагороджує зусилля зі зменшення технічної заборгованості.
7. Балансування боргу та особливостей
- Планування спринту: під час планування спринту забезпечте збалансований підхід до усунення технічного боргу та надання нових функцій.
- Спринт технічного боргу: час від часу присвячуйте цілі спринти виправленню накопиченого технічного боргу, особливо якщо він досяг критичного рівня.
Висновок
Технічний борг – це не просто завдання з «прибирання», а фундаментальна проблема, яка працює як якір, сповільнюючи ініціативи, пов’язані з технологіями та чистотою коду. Компанії, які приділяють час для уважного і ретельного вирішення технічної заборгованості, найкраще здатні використовувати технології для підвищення доходів та масштабування інновацій.
Управління та погашення технічної заборгованості – це постійний процес, який вимагає співпраці між BA, розробниками та зацікавленими сторонами. Визначаючи пріоритети та систематично вирішуючи технічну заборгованість, BA можуть допомогти гарантувати, що продукт залишається придатним для обслуговування та масштабованим з часом. Пропонуємо перевірити свої знання та зануритись глибше у роль бізнес-аналітика на нашому курсі Business Analysis Intensive.
Автор статті: Олена Карліна