Пріоритизація завдань. Вища математика або легка розминка перед сніданком?
- Це перша стаття з циклу про основи, методиках і помилки приоритизации. Зараз поговоримо про складнощі...
- Що ж таке пріоритизація?
- складнощі приоритизации
- комбінування вимірювань
- обговорення
- Як застосовується пріоритизація в проектах розробки програмного забезпечення?
- висновок
Це перша стаття з циклу про основи, методиках і помилки приоритизации. Зараз поговоримо про складнощі приоритизации. А в наступній статті розберемо, які помилки підкидає нам наш мозок, коли справа стосується складного вибору.
Ми створюємо ПО. Дуже часто наші ідеї сильно перевищують можливості команди і бюджету. Зовсім не складно зібратися «в колі друзів» і методом аналізу, опитування користувачів і зацікавлених осіб, мозкового штурму, стельового осяяння і інших методик отримати дуже довгий список вимог, побажань, рекомендацій і фич до вашого продукту.
Коли ми усвідомлюємо, що цей список ідей стає занадто довгим, і навіть оптимістичні оцінки реалізації всього списку впираються в заповітне «ніколи-небудь», доводиться вирішувати, що будемо робити в першу чергу. І ми переходимо до питання приоритизации.
Що ж таке пріоритизація?
Визначення, яке дає Wikipedia : «Пріоритизація - поняття, що показує важливість, першість. Наприклад, пріоритет дій визначає порядок їх виконання в часі ». Якщо піти ще далі в етимологію слова, побачимо слово "priority" ( «попередній»), ще далі - "prior" ( «передній», «минулий», «старший»).
З визначення стає зрозуміло, що основна мета приоритизации - зрозуміти, «що важливіше чого». Після того як ми якимось чином це зрозуміли, результати приоритизации потрібно якось закріпити або задокументувати: розставити в порядку пріоритету або наділити особливими властивостями (номер, вага, важливість, терміновість і т. Д.).
складнощі приоритизации
вибір вимірювання
Одна з основних труднощів проведення приоритизации - питання вибору шкали або вимірювання, щодо якого будуть розставлятися пріоритети.
Навіть на простому прикладі можна проілюструвати складність вибору вимірювання.
Ось уявіть: ви проводите семінар для групи учасників, і вас до початку занять просять провести ранжування (це синонім приоритизации) в групі. У вас дуже небагато параметрів, щоб зробити це якісно, і всі вони, так чи інакше, пов'язані із зовнішніми атрибутами: алфавітний порядок прізвищ, вік, зріст. За цими вимірами ми зможемо легко розставити пріоритет. І навіть повторення будуть не страшні, т. К. Їх не повинно бути багато.
А ось уже «стать» і «колір очей» будуть поганий шкалою приоритизации. Занадто багато повторень, і незрозуміло, що важливіше - сині або темно-сірі очі. Швидше, це параметри угруповання, а не приоритизации.
За зовнішніми ознаками легко провести ранжування. Але, коли вас попросять оцінити їх знання та потенціал в темі семінару, ваша попередня пріоритизація вже не має сенсу, і потрібно вибирати нові параметри і нові способи їх перевірити.
Щоб вимір добре підходило для приоритизации, воно повинно володіти декількома властивостями:
- Порівнянність. Отримавши два значення на шкалі ми повинні точно знати, що краще і що гірше. Прибуток в 20 у.о. краще прибутку в сім.
- Генеральний. Всі об'єкти порівняння повинні мати властивість цієї шкали. Роботу землекопа і програміста ми можемо оцінити тільки через шкали час, вартість і т. Д. Немає сенсу порівнювати їх продуктивність по «кількості операцій на годину».
На жаль, для багатьох процесів, дій або навіть предметів, порівняння через єдину шкалу - дуже малоцінних. Згадайте війну фанатів пристроїв від Apple і Google! Там в хід йдуть десятки і може навіть сотні вимірювань, які виходять за рамки фізичних і технічних характеристик.
комбінування вимірювань
Так, багато речей в нашому житті досить складні. Тому вибір за однією шкалою практично неможливий. І нам доводиться вибирати відразу кілька вимірів і робити досить складні операції, які в математиці називають «факторний аналіз».
Зізнатися, я теж не думав, що цей розділ математики мені колись знадобиться, а тут, виявляється, ми робимо це щодня!
Приклад. Як би ми вибирали автомобіль? Він досить складний продукт і, звичайно (крім випадку, коли «дуже хочеться червоненькі», вибирають по декількох шкалах:
- Потужність.
- Зовнішній вигляд.
- Зручність салону.
- Місткість.
- Комфорт водіння.
- Безпека.
- Ціна.
- І т.д.
Тут то і починається «пекло комбінаторики». По-перше, треба зрозуміти, яке вимір нам найважливіше ( «OMG, це ж пріоритизація для вимірювань! Це рекурсія якась»). По-друге, багато шкали дуже відносні. Як виміряти зручність салону або комфорт водіння? По-третє, не зрозуміле підхід до порівняння всіх показників: краще потужність з убогим зовнішнім виглядом і високою безпекою або хороша ціна при середніх параметрах?
Щоб пріоритизація за кількома вимірами була успішна, нам знову потрібні кілька умов:
- «Вага» або пріоритет кожної шкали в загальному списку вимірювань. Що важливіше: «ціна виробництва» або «інтеграція з новою системою»?
- «Вага» кожного значення всередині шкали. «Низька ціна» поб'є «поганий зовнішній вигляд» чи ні?
- Єдина «формула», яка дозволить зібрати ці параметри і відобразити в одновимірному просторі (знову привіт «факторному аналізу»). Так, саме в одновимірному, т. К. Пріоритет - відповідь на питання «це важливіше за це» за однією шкалою :).
От саме вибір єдиної «формули» - камінь спотикання у всіх підходах до приоритизации завдань, фич, ідей і т. Д. І не існує єдиної шкали або формули, які підходили б до будь-якої приоритизации.
Завдання будь-якої приоритизации - знайти «достатньо відповідні» виміру і інтегральну формулу, які підходять для швидкого вирішення більшості питань розставляння пріоритетів. Для тих завдань, які не були в «більшість», єдине рішення - жваве обговорення.
Нашим інженерним звичкам дуже складно змиритися з думкою, що не існує універсальної формули. Нам хочеться вірити, що є єдиний закон, який дасть нам відповідь. Але (по крайней мере, поки), цей підхід не знайдений, і пропонуються десятки методик і формул проведення приоритизации, про яких і піде мова нижче.
обговорення
Тепер найголовніша думка, яку хотілося б розкрити в статті. Всі методики приоритизации створені для спрощення обговорення пріоритетів з усіма зацікавленими особами. Зауважте: не замінити обговорення техніками або формулами, а спростити і наповнити змістовними аргументами!
Саме для цих обговорень, дискусій, суперечок, конструктивних конфронтацій і створені методи приоритизации. Наші методики і формули - всього лише база для обговорень. Саме від цієї бази ми будемо відштовхуватися, але вже точно не залишимося на ній до кінця обговорень.
Наша мета - не тільки розставити правильні коефіцієнти, а й переконатися, що така розстановка, як мінімум, прийнятна для інших учасників, а, як максимум, повністю підтримується ними.
Повернемося до прикладу з покупкою авто. Коли ви робите зважений аналіз по 10 параметрам, все може скластися цілком якісно, і ви підберете вага параметра «потужність двигуна» так, щоб точно перемогла машина з прийомистим движком. Але спробуйте підключити до обговорення друзів або сім'ю. Тут вага параметрів у кожного буде свій. І, якщо ви не вислухаєте побажання цих учасників, це може привести до конфліктів, незадоволення і навіть до поганого вибору. Батько може уточнити: «А як автомобіль буде вести себе взимку, особливо на бездоріжжі?» І виявиться, що температурний режим випав з ваших вимірювань. Дружина може запитати про кріпленнях для дитячих крісел і на ваше твердження «так у нас немає дітей», цілком можливо, почути: «Так, може, пора задуматися?» І раптово, за допомогою приоритизации і вибору одного продукту ви дізнаєтеся про багато іншого: ).
Щоб обговорення було ефективним, є декілька простих правил:
- Почути всіх. Кожен повинен висловити коментарі та зауваження з приводу пріоритетів. І метод мовчазної згоди тут скоріше заважає, ніж допомагає.
- Бути відкритим до змін. Шкали й пріоритети змінюються під дією багатьох факторів. І мета обговорення - зрозуміти, що пора вносити зміни.
- Мінімізувати негативні відчуття учасників групи: «мене ігнорують», «вони не розуміють, що це важливо», «думають тільки про себе» і т. Д. Це досягається неассертівним і неагресивним обговоренням проблем кожного учасника.
Жодна пріоритизація не може вважатися гарною, якщо вона не обговорена з декількома зацікавленими особами: команда, спонсори, користувачі, колеги і т. Д.
Ще раз скажемо, що є величезна спокуса замінити обговорення на чітку пріоритизації за допомогою формул і методів. На жаль, це прискорить прийняття рішення, але різко погіршить якість самого рішення.
Як застосовується пріоритизація в проектах розробки програмного забезпечення?
Переходячи від теорії до практики, в нашій індустрії є безліч технік проведення приоритизации.
є дуже хороша статися (Eng), яка дає короткий опис 20 технік приоритизации продукту. Гарне, але далеко не повне зібрання технік, які відкривають очі на різноманітність підходів. Автор статті йде ще далі і намагається систематизувати і класифікувати методи за двома вимірами, що сильно спрощує розуміння.
Виявляється (!), Наші потуги кожен раз придумати підхід до приоритизации можна максимально полегшити :)
Стаття не покриває всіх технік приоритизации. Вона дає швидке опис і посилання на докладні інструкції. Однозначну must read для ознайомлення! Заплануйте собі спокійні 30-40 хвилин на читання, в тому числі, і коментарів, які містять посилання на інші техніки.
В якості вправи, спробуйте в кожної з технік визначити вимірювання і інтегральну формулу, яку пропонують для кінцевої «одновимірної» приоритизации.
Вибирайте для своїх проектів будь-яку техніку або комбінацію технік. Збираючись в комбінації, вони можуть посилити один одного. Але не намагайтеся робити їх занадто багато, т. К. Основне завдання - обговорити складні завдання, а не підібрати правильну шкалу.
висновок
Пріоритизація - складне завдання. У наших проектах ми постійно (щодня, щотижня, щомісяця) вирішуємо непросте завдання багатофакторного аналізу та структуризації. І, поки живе і розвивається продукт, це завдання не закінчується.
Правильна пріоритизація побудована на усвідомленому підході до вибору вимірювань і «формул» для об'єднання цих вимірів. Не існує жодного універсального правила, і для кожного проекту вам доведеться вимірювання і формули підбирати заново.
Людство придумало вже багато технік для приоритизации робіт в проектах розробки ПЗ, тому не варто їх ігнорувати. Краще перевикористати і поліпшити.
Варто нагадати ще раз, що всі ці методики спрямовані на те, щоб структурувати ваші обговорення і сфокусуватися на головному. Спілкування з командою, користувачами і зацікавленими особами (вони ж stakeholders) - ключ до правильного розставлені пріоритетів, які ви ніколи не отримаєте, просто застосувавши будь-яку комбінацію описаних вище технік.
Спілкуйтеся, задавайте складні питання, добиратися до суті питання «Чому це важливо для вас зараз?» І тоді у вас буде чудово сформовані пріоритети.
Що ж таке пріоритизація?Що ж таке пріоритизація?
Як би ми вибирали автомобіль?
Як виміряти зручність салону або комфорт водіння?
По-третє, не зрозуміле підхід до порівняння всіх показників: краще потужність з убогим зовнішнім виглядом і високою безпекою або хороша ціна при середніх параметрах?
Що важливіше: «ціна виробництва» або «інтеграція з новою системою»?
«Низька ціна» поб'є «поганий зовнішній вигляд» чи ні?
Батько може уточнити: «А як автомобіль буде вести себе взимку, особливо на бездоріжжі?
Дружина може запитати про кріпленнях для дитячих крісел і на ваше твердження «так у нас немає дітей», цілком можливо, почути: «Так, може, пора задуматися?
Як застосовується пріоритизація в проектах розробки програмного забезпечення?