Як керувати та оцінювати неструктуровані вимоги, отримані від клієнтів


21

Багато разів під час фактів участі в торгах я отримую вимоги до програмної системи від наших потенційних клієнтів у дуже неструктурованому форматі з різних джерел [електронна пошта, текстові документи, відмінні результати]. Зазвичай це купа хлопців із «замовлення продукту» з боку замовника, які придумують ці «запропоновані рішення» для бізнес-проблем, які у них є. Хоча вони є експертами в галузі бізнесу, багато разів вони не мають правильних рішень.

Це призводить до

  • кілька версій тієї ж вимоги
  • змішування двох вимог в одну
  • кілька версій вимоги пізніше вниз, вимоги, які були об'єднані разом, знову відокремлюються, кожен з яких бере з собою деякі нові доповнення

Як ви працюєте з такими вимогами, що надходять до них, і розбираєте їх у випадках правильного використання та до початку розвитку? Які інструменти ми можемо використати для відстеження історії конкретних вимог, починаючи з першого разу, коли вона задумана до моменту, коли вона викристалізується у відповідний випадок використання? Оцінювати роботу проти вимог, отриманих таким чином, - це кошмар, який закінчується помилками в правильному розумінні вимоги та правильній оцінці зусиль проти неї.

Як тільки ми виграємо проект, замовники ще більше подумали над їхніми вимогами та змогли сформулювати його належним чином. Що відбувається в цьому випадку, це те, що частина функцій падає, деякі вдосконалюються, а інші займають зовсім новий виток. Це в основному може звести нанівець деякі оцінки робочих позицій, які були зроблені до виграшу проекту. Мені було б цікаво дізнатись, чи існує якась система, за допомогою якої ми можемо побудувати дерево певної вимоги та як кожна гілка призвела до різної оцінки.

Якісь поради, інструменти, підказки, щоб зробити цю діяльність більш керованою? Я просто намагаюся отримати деяку інформацію від когось більш досвідченого, ніж я, щодо управління вимогами та оцінки зусиль.


1
Хтось із вашої команди працює з хлопцями з "розробки продуктів", щоб зробити аналіз вимог (наприклад, Business Analyst)?
Деко

Так, я роблю це у всіх випадках, коли ми не здійснюємо бюджет на бакалаврі.
користувач20358

Відповіді:


17

Вимоги будуть зростати і змінюватися. Я не думаю, що хтось може це аргументувати.

Як збирати та обробляти вхідні запити .

На мій досвід, це допомагає при зборі вимог, якщо є одна або дуже невелика група клієнтів, яка виступає фільтром для доставки нових або оновлених вимог до невеликої групи розробників планування. Будь-хто з їхньої сторони може запропонувати або написати їх, але доставка повинна бути лише дуже малою кількістю. Чим менше людей, які беруть участь в обміні від однієї сторони до іншої, тим краще.

Мета фільтрації через менший набір людей - не відкидати чи зменшувати зусилля та інформацію, яку вкладають інші, навіть якщо вони дублюються чи здаються невагомими на поверхні, а обмежити точки несправності: втрачену чи неправильну інформацію. Це випливає за принципом, подібним до призначення інкапсуляції та інтерфейсів: захист приватних даних та встановлення загального протоколу для обробки подібних запитів. Дозвольте ще раз зазначити: подання дублікатів нормально. Як планувальник, це важливе для мене те, про що вони говорять або пропонують. Збережіть або запишіть усе.

Як відстежувати та впорядковувати вимоги

За короткий термін переходьте на низькі технології

Очевидно, що є низькотехнологічні рішення, які можуть значною мірою бути ефективними в організації та відслідковуванні вхідних вимог: дошки, наклейки, плакати, що у вас є. Вони можуть бути чудовими для короткострокового планування. Вони добре помітні, приймають позначення у вільній формі та їх легко «переналаштувати».

У довгостроковій перспективі використовуйте програмний інструмент для пошуку, сортування, сполучення

Для більш тривалих зусиль, якесь програмне забезпечення було б цінним. Існують спеціалізовані засоби управління вимогами: Двері, Clearcase / Clearquest та багато інших. Ці вузькоспеціалізовані інструменти чудово підходять до того, що вони роблять, але часто є надмірними. Іноді навіть звичайна стара електронна таблиця є більш ніж достатньою. Я особисто вважаю загальні системи відстеження випусків досить корисними для цього, і саме зараз моїм улюбленим є рудмін, але інші, я впевнений, теж будуть добре.

За допомогою системи відстеження проблем кожен, кого ви вирішите дозволити, може створити "нову проблему" або вимогу та додати будь-яку деталь, яку вважає за потрібне включити. Вони можуть спостерігати за проблемою та давати відгуки про будь-які дії, які ви з цим вирішите. Ви можете перекласифікувати його, налаштувати пріоритет, переписати тіло, додати додаткову інформацію, пов’язати її з іншими «питаннями», просунути функцію вищого рівня або «використовувати випадок» або історію або будь-яку термінологію, яка відповідає вашій системі, ad nauseum. Іншими словами, ви можете зробити багато для створення простежуваного, відсортованого, визначеного пріоритету, відомості про історію, пов'язаного зі списком вимог за допомогою питань. Плюс бути досить настроюваним з коробки та з відкритим кодом, якщо інструмент не зовсім те, що мені потрібно чи я хочу в будь-який момент, я можу змінити його досить легко, щоб краще відповідати потребам мого процесу.

Заключна примітка про інструменти, з якими я спілкувався з деякими людьми, маючи успіх, використовуючи звичайні старі текстові файли в системі управління змінами та версіями. Вони, очевидно, отримують переваги історичних версій. Вони також використовують базову операційну систему та додаткові інструменти для пошуку, зв'язку та каталогізації вимог. Вони не в змозі додати стільки структурованої, пов'язаної метаінформації, але не відчувають, що вона потрібна, і їх зусилля не додають достатньої вартості. Для вас це може бути, а може і не бути. Перевага полягає в тому, що потенційно є кілька менших фрагментів програмного забезпечення на вашому стеку розробки для управління та обслуговування.

Вимоги, пов'язані з укладенням контракту / розробкою після завершення проекту

Остаточний аспект питання - як керувати вимогами після того, як докладено зусиль. Я думаю, що щодо цього є дві основні думки, і частина того, як ви поводитесь з ними, залежить від характеру ваших відносин із замовником: по-перше, якщо за контрактом зафіксовано фіксовану вартість, вимоги, що виникають після укладення контракту, можуть бути включені. Це означає, що вони можуть змінити обсяг зусиль, тому ставка або рахунок буде вище, коли ці додаткові товари будуть доставлені та прийняті; якщо з прийнятої пропозиції не буде знято еквівалентну кількість зусиль. Якщо відбудеться зміна обсягу, ви повинні переконатися, що замовник розуміє та приймає наслідки, інакше такі пізні подання повинні бути подані.

По-друге, для нових вимог, що виникають після укладення контракту, і контракт орієнтований більше на час та матеріальні зусилля (що б не було потрібно для завершення роботи), ви можете та маєте бути трохи більш гнучкими, якщо замовник наполягає на включенні його під час конкретного руху. Вам буде виплачено, включите ви його чи ні, до тих пір, поки все, що ви скажете, зробите.

Якщо ви не знайомі з ними, можливо, ви захочете подивитися на підхід Канбана та методи Agile. Ці методи можуть допомогти зосередити увагу на найближчих проблемах, не обов'язково втрачаючи з поля зору довгострокові цілі розвитку.

Представляйте варіанти як сценарії "що робити" та дайте клієнту вибір та рішення

В будь-якому випадку оцінка "що робити" - це хороша стратегія використання під час переговорів із замовником та вашою командою. Побудуйте побічне порівняння завдань, їх витрат та графіку, як заплановано, із стовпцем із тією ж інформацією для альтернативних підходів. Проект Microsoft, мабуть, є хорошим кандидатом для цього, оскільки ви можете побудувати різні оцінки на основі багато в чому схожого набору завдань.

Однак навіть основна електронна таблиця часто настільки ж ефективна для демонстрації того, як конкретні зміни чи включення вплинуть на вартість та графік. Список у цьому випадку, ймовірно, такий же ефективний, як і дерево, яке може демонструвати відмінності. Інструмент та метод, які ви вибрали для побудови цих сценаріїв, багато в чому залежать від розміру проекту та персоналу (але навіть потрійне. Програмне забезпечення типу MS Project має власні межі корисності та можливостей).

Розгляньте їх, що робити, якщо сценарії є внутрішніми робочими предметами та збережіть їх протягом тривалості проекту. Вони були критичними демонстраціями в процесі прийняття рішень та переговорів. Можливо, вам також доведеться переглянути їх або повторити для наступного раунду того, що є.

Готуючи, що робити, якщо сценарії, додаткове роз'яснення результатів і мінусів з технічної точки зору або з точки зору впровадження (спрощено) може бути корисним, щоб допомогти обґрунтувати, чому одна з альтернатив мала б такий значний вплив.


4

Я би розглядав це як ітераційний процес. Крок 1 - зібрати вимоги. Крок 2 - сортування їх. Крок 3 полягає в тому, щоб визначити їх пріоритетними. Крок 4 - це розбиття кожного вниз на досить маленькі шматочки, щоб оцінити зусилля. Крок 5 полягає в об'єднанні цих бітів у глобальну групу зусиль (скажімо, 84 людино-дні). Крок 6 - скласти карту зусиль на ресурси (84 людино-дні / 2 дев = 42 дні).

Тож зараз ви застрягли між кроком 1 та кроком 2. У вас є вимоги, але ви не маєте їх у потрібній вам формі.

Скажімо, у вас є кілька версій однієї і тієї ж вимоги. Вони по суті однакові? Якщо так, виберіть те, що видається найяснішим, і використовуйте його. Якщо вони різняться деталями, виберіть те, що здається найбільш логічним, і використовуйте це. Потім відправте повідомлення клієнту з проханням перевірити вимогу. Можливо, вам доведеться повертатися вперед-назад і кілька разів, щоб виправити вимогу. Не здавайся і не відчайдухайся. Багато проектів провалилися через погані вимоги.

Використовуйте проект Microsoft, щоб тримати роботу та графік синхронізовано зі зміною вимог. Якщо клієнт вимагає зміни, уточнити додаткову роботу, підключіть її до вашої моделі та повідомте їм про нову дату. Не засмоктуйтесь, вірячи, що ви можете просто виводити нові диски на випадкові проміжки часу, щоб забрати слабкість. Ваш графік повинен враховувати час нарощування кожного разу, коли додається новий ресурс. Ви зможете правильно моделювати це, лише якщо звернете увагу на кожен проект та навчитеся на ньому. Скажімо, ви привели Боба на борт проекту X після того, як він пробув 4 місяці. Наскільки продуктивним він був у 1-му місяці? 3-й?

Вам слід переглядати модель проекту щотижня, вносячи оновлення, де це потрібно. Зберігайте історичний запис про зміни. Це допоможе вам дати кращі оцінки в майбутньому.

дуг

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.