Останні 3 місяці я провів у вичерпній та виснажливій фазі збору вимог великого проекту і, перш за все, зрозумів, що не існує рішення, яке відповідає всім розмірам . Немає жодного процесу, жодного секрету, який би спрацював у кожному випадку. Аналіз вимог - це справжня майстерність, і коли ти думаєш, що ти остаточно все зрозумів, ти потрапляєш у зовсім іншу групу людей і мусиш викидати все, що знаєш, у вікно.
Різні зацікавлені сторони думають на різних рівнях абстракції.
Легко сказати «говорити на бізнес - рівні, не технічний», але це не обов'язково , що легко зробити . Система, яку ви проектуєте, - слон, і ваші зацікавлені сторони - сліпі люди, які її вивчають . Деякі люди настільки глибоко занурені в процес і розпорядок, що навіть не розуміють, що є бізнес. Інші можуть працювати на бажаному вами рівні абстракції, але схильні висловлювати перебільшені або навіть помилкові твердження або вступати в бажане мислення.
На жаль, вам просто потрібно познайомитися з усіма людьми як особистостями та зрозуміти, як вони думають, навчитися тлумачити те, що вони говорять, і навіть вирішити, що ігнорувати.
Розділяй і володарюй
Якщо ви не хочете, щоб щось було зроблено, надішліть це комітету.
Не зустрічайтеся з комітетами. Зберігайте ці зустрічі якомога менше. YMMV, але, на мій досвід, ідеальний розмір - 3-4 людини (включаючи себе) для відкритих сесій і 2-3 людини для закритих сесій (тобто коли вам потрібно відповісти на конкретне питання).
Я намагаюся зустрітися з людьми, які мають подібні функції в бізнесі. Виграти насправді дуже мало і дуже багато чого втратити від того, щоб кидати маркетингових людей у кімнату за допомогою лічильників квасолі. Знайдіть людей, які є експертами з одного предмета, і змусьте їх поговорити з цього питання.
Зустріч без підготовки - це зустріч без мети.
Кілька інших відповідей / коментарів посилаються на техніку солом’яної людини, яка є відмінною для тих клопітких людей, на які ви просто не можете отримати відповіді. Але занадто не покладайтеся на солом’яних людей , інакше люди почнуть відчувати, що ви їх переправляєте. Ви повинні обережно підштовхувати людей у правильному напрямку і нехай вони самі придумують специфіку, щоб вони відчували, як вони їм володіють (і в певному сенсі, вони ними володіють).
Те, що вам потрібно мати, - це якась ментальна модель того, як ви думаєте, як працює бізнес і як має працювати система . Вам потрібно стати експертом з домену , навіть якщо ви не є експертом у конкретній компанії. Проведіть якнайбільше досліджень вашого бізнесу, їх конкурентів, існуючих систем на ринку та будь-чого іншого, що може бути навіть пов’язане з віддаленою віддачею.
Одного разу в цей момент я виявив, що найефективніше працювати з конструкціями високого рівня, такими як "Використовувати випадки", які, як правило, є приємними для всіх, але все одно важливо задавати конкретні питання. Якщо ви почнете з "Як ви виставляєте рахунки своїм клієнтам?" , ви дуже довгу зустріч. Задавайте питання, які передбачають процес, а не знімати процес під час руху: Що таке позиції? Як вони обчислюються? Як часто вони змінюються? Скільки існує різних видів продажів чи контрактів? Де їх друкують? Ви отримуєте ідею.
Якщо ви пропустите крок, зазвичай хтось вам скаже. Якщо ніхто не скаржиться, то погладьте себе по спині, адже ви просто неявно підтвердили процес.
Відкладіть дискусії поза темою .
Як аналітик вимог, ви також граєте роль фасилітатора, і якщо вам справді не подобається проводити весь час на зустрічах, вам потрібно знайти спосіб відстежувати справи. Як не дивно, це питання стає найбільш згубним , коли ви , нарешті , дійсно змусити людей говорити. Якщо ви не обережні, це може зірвати поїзд, на який ви витратили стільки часу, прокладаючи колії.
Однак - і я це навчився важко давно - ви не можете просто сказати людям, що проблема не має значення . Це, очевидно, має відношення до них , інакше вони б про це не говорили. Ваша робота - змусити людей говорити "так" якомога більше і встановлювати такий бар'єр, який просто забиває вас на "ні" територію.
Це делікатний баланс, який багато людей вміють підтримувати за допомогою "пунктів дій" - це загальна черга дискусій, яку ви пообіцяли повернути колись , як правило, позначена іменами тих зацікавлених сторін, які вважали це справді важливим. Це не лише заради дипломатії - це також цінний інструмент, який допоможе вам згадати, що було під час зустрічей, і з ким поговорити, якщо згодом вам потрібно роз'яснення.
Різні аналітики вирішують це по-різному; дехто любить саму публічну дошку або журнал фліп-чартів, інші мовчки торкаються її до своїх ноутбуків і обережно заглиблюються в інші теми. Що б ти не відчував себе комфортно.
Вам потрібен порядок денний
Це, мабуть, справедливо для майже будь- якого засідання, але це вдвічі справедливо для вимог зустрічей. По мірі того, як дискусії тривають, розум людей починає блукати, і вони починають цікавитись, коли ви збираєтеся дістатись до речей, які вони насправді хвилюють. Наявність порядку денного містить певну структуру, а також допомагає визначити, як було сказано вище, коли потрібно відкладати дискусію, яка стає поза темою.
Не ходіть туди без чіткого уявлення про те, що саме ви хочете прикрити і коли . Без цього у вас немає можливості оцінити свій власний прогрес, і користувачі будуть ненавидіти вас за те, що ви завжди працюєте довго (припускаючи, що вони з інших причин вже не ненавиджу вас).
Знущайтеся з цього
Якщо ви використовуєте PowerPoint або Visio як макетний інструмент, ви будете страждати від проблеми, яка виглядає занадто відшліфованою . Це майже незвична долина користувальницьких інтерфейсів; люди відчуватимуть себе комфортно з малюнками серветки (або створеними на комп'ютері малюнками, схожими на малюнки серветки, використовуючи такий інструмент, як Balsamiq або Sketchflow ), оскільки вони знають, що це не справжня річ - з тієї ж причини, коли люди можуть дивитися героїв мультфільмів. Але чим більше це буде схоже на справжній інтерфейс, тим більше людей захочуть його вибрати і лапати, і тим більше часу вони витратять на сперечання про деталі, які в кінцевому рахунку незначні.
Тож неодмінно робіть макети, щоб перевірити своє розуміння вимог ( після початкових етапів аналізу) - вони прекрасний спосіб отримати дуже швидкий і детальний зворотний зв'язок - але тримайте їх на ло-фі і не поспішайте знущатися, поки ви не ' Ви впевнені, що бачите очей із очима у своїх користувачів.
Майте на увазі, що макет не є результатом , це інструмент, який допомагає зрозуміти. Так само, як ви не очікували, що вас затримають знущаються над дизайном інтерфейсу, ви не можете припустити, що дизайн добре, просто тому, що вони дали ваші макети пальцями вгору. Я бачив глузування, які використовуються як милиця, або, що ще гірше, привід для повного обходу вимог; переконайтеся, що ви цього не робите. Поверніться та перетворіть цей макет у справжній набір вимог.
Будьте терплячі.
Для багатьох програмістів важко повірити, але для більшості нетривіальних проектів ви не можете просто за один раз сісти і вибити повну функціональну специфікацію. Я не просто кажу про терпіння під час однієї зустрічі; Аналіз вимог є ітеративним так само, як і код. Група А щось говорить, а потім Група Б каже щось, що повністю суперечить тому, що ви чули від групи А. Потім група А пояснює невідповідність, і виявляється, це те, що група C забула згадати. Повторіть 500 разів, і у вас щось приблизно нагадує істину .
Якщо ви не розробляєте крихітний додаток CRUD (у такому випадку чому взагалі не турбуєтесь?), То не сподівайтесь отримати все необхідне за одну зустріч, або дві, або п'ять. Ви будете багато слухати, багато говорити і багато чого повторювати. Що не страшне, пам’ятайте; це шанс створити деякий зв'язок з людьми, які неминуче збираються підписуватись на вашу доставку.
Не бійтеся змінити техніку чи імпровізувати.
Різні аспекти проекту можуть насправді вимагати різних методів аналізу. У деяких випадках класичний UML (Use Case / Activity diagram) чудово працює. В інших випадках, ви можете почати з бізнес-KSI, або мозковий штурм з картою розуму, або зануритися прямо в макети, незважаючи на попереднє попередження.
Суть полягає в тому, що вам потрібно зрозуміти домен самостійно і зробити домашнє завдання, перш ніж витрачати чужий час. Якщо ви знаєте, що певний відділ або компонент має лише один випадок використання, але це шалено складний, тоді пропустіть аналіз випадку використання і почніть говорити про робочі процеси або потоки даних. Якщо ви не використовували б один і той же інструмент для кожної частини програми, то чому б ви використовували той самий інструмент для кожної частини вимог?
Тримайте вухо до землі.
З усіх підказок і порад, які я прочитав для аналізу вимог, це, мабуть, той, який найчастіше ігнорують. Я чесно думаю, що дізнався більше про підслуховування та час від часу збоїв у розмовах з водоохолоджувачем, ніж у мене на запланованих зустрічах.
Якщо ви звикли працювати в ізоляції, спробуйте знайти місце, де відбувається дія, щоб ви могли почути балаканину. Якщо ви не можете, то просто проводите часті обходи, на кухню, у ванну кімнату чи куди завгодно. Ви дізнаєтесь про всі цікаві речі про те, як бізнес насправді працює, слухаючи, на що люди вихваляються чи скаржаться під час перерв на каву та дим.
Нарешті, прочитайте між рядків .
Однією з моїх найбільших помилок в минулому було настільки зосередженість на кінцевому результаті, що я не витрачав часу, щоб насправді почути, що люди говорять . Іноді - дуже багато часу - це може здатися, що люди б’ються про нічого, або намагаються про якусь процедуру, яка для вас звучить абсолютно безглуздо, але якщо ви дійсно зосередитесь на тому, що вони говорять, ви зрозумієте, що насправді є вимога, закопана там - або кілька.
Настільки банально і нечутно, як це звучить, Five Whys - це справді корисна техніка. Щоразу, коли у вас є така "відверта" реакція на коліна (не те, щоб ви коли-небудь це говорили вголос), зупиніть себе і перетворіть це на питання: Чому? Чому ця інформація повторно вводиться чотири рази, потім її надруковують, фотокопіюють, сканують, друкують знову, прикріплюють на дошці, знімають цифровою камерою та нарешті надсилають електронній пошті менеджеру з продажу? Там є причина , і вони можуть не знати , що це таке, але це ваша робота , щоб з'ясувати. Удачі в цьому. ;)