ТЗ високої чіткості

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

Написати ідеальне ТЗ простіше простого:
1. Домовився про мінімальний етапі (2-4 тижні).
2. Описав юзер-сторі по кроках.
3. Склав список екранів майбутньої системи.
4. Прописав назви методів API і формати даних.
5. Запросив тестовий контент і склав таблиці з тестовими даними.
6. Сформулював з усього цього цілі і завдання.
7. Узгодив план робіт і виставив завдання таск-менеджер.

Але не тут-то було! Давайте я розповім, як все відбувається в реальному житті, а також поділюся своїми лайфхаками, як я з цим справляюся.



Скан серветки (Що це ми намалювали на зустрічній?)
Той момент, коли у замовника в кафе скінчився словниковий запас, і він прешел до образотворчого мистецтва. Так з'являються карти наступальних операцій по захопленню світу прямо на серветках. Не завжди щастить бути присутнім при цьому особисто, тоді в вотсапе звалюється фоточка серветки в ізометричної проекції в рубрику «без коментарів».

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

Збочена логіка
Відкриваємо ТЗ і бачимо, що б ви думали? Портал з віртуальним кладовищем:
* підняти поховання в топ 100;
* поділитися похованням з одним;
* відправити поховання на головну;
* додати у некрополь;
* додати поховання у чорний список;
* активувати карту віп-користувача;
* встановити антивірус;
* кастинг;
* групові склепи зі знаменитостями.

Лайфхак: «чи Правильно я вас зрозумів?»
Іноді замовник настільки захоплений своїми геніальними ідеями, що не в силах визнати порушення в логіці. Якщо ви прямо вкажіть на логічні протиріччя, то клієнт скаже, що ніяких логічних суперечностей немає, а ви просто не слухаєте про що вам говорять, і будемо робити саме так. Вирішено!
А всього-то, йому потрібно почути свої думки трохи іншими словами:
— Чи Правильно я розумію, що ви хочете зробити кастинг поховань?
— Чи Правильно я розумію, що користувачі будуть виводити склепи в ТОП-100?
— Я правильно вас почув, що користувачі будуть запрошувати друзів у братські могили?
— Чи Правильно я розумію, що користувачі будуть додавати могилки в «чорний список»?
— Чи Правильно я розумію, що знаменитості мріють вписати в групові склепи?
Тобто ви не критикуєте, не чините опір, не сперечаєтесь, просто уточнюєте.

Все і так зрозуміло (прочитайте мої думки)
— Зареєструйся в нашій системі і стань відомим і успішним.
— А що потрібно робити далі?
— Ну ось ти зареєструвався перший крок уже зроблено!
— ОК, а який другий крок?
— Ну активуй карту і підніми свою анкету в топ-100.
Дів? Дуже хочеться почути рецепт до кінця!

Лайфхак: «А що якщо?»
Ха! Все було б ідеально, якби замовник осудна відповідав на поставлені запитання. Не сперечаюся, багато відповідають, але є й ті, чиї відповіді нічорта не прояснюють. З ними потрібно трохи по-іншому. Їм потрібно намалювати сценарій у вигляді питання:
— А що, якщо користувач зареєструвався, активував карту, підняв анкету, але не став відомим та успішним?

Опис математики малюнком
Грошик йде звідси ось сюди, тут маленька стрілочка, а тут процентики, сюди ці бали, а туди ці бали. Прямо залізничний вокзал на листку паперу!

Лайфхак: «А давайте порахуємо це в XLS»
Коли я бачу щось схоже на математику, але без контрольного прикладу, мені відразу стає страшно, адже я добре собі уявляю, що мені скажуть розробники до і в процесі розробки.
При цьому просто попросити контрольний приклад не виходить. Якби замовник міг зробити контрольний приклад, він би його зробив і не займався образотворчим мистецтвом. Тому контрольний приклад доведеться робити вам як мінімум в «Ексель». Не завжди вистачає «Екселю» — можливо, буде потрібно MathLab або ж повноцінний дослідницький етап, якщо у вас раптом намалювався DSP, або 3D розрахунки, або ж розпізнавання образів з блек-джеком і нейромереж.
Результатом цієї роботи має бути набір тестів, який дає однозначні з точки зору математики результати.

Не втомлюй мене деталями
— Хочемо стримить порно через додаток в AppStore.
— Але нас же заблокують!
— Не втомлюй мене деталями!

— Хочемо стримить по wi-fi аквалангістів з коралового рифу
— А wi-fi працює під водою?
— Не втомлюй мене деталями!

— Хочемо роздавати 4G wi-fi з автономного роутера, але тільки тим, хто зареєструвався в нашій базі.
— Тобто доведеться колгоспів прошивку для роутера і їхати в Китай?
— Не втомлюй мене деталями!

— Хочемо підключитися до бази громадського транспорту Москви
— А ви вже домовилися з DIT?
— Не втомлюй мене деталями!

Лайфхак: «Був тут один випадок!»
Перед нами стратег, у якого свій vision, і ніщо не здатне зупинити його рух до успіху! Якісь дрібні деталі (закони фізики, сучасні технології, політики платформ) їх не хвилюють — це все тільки для технічних фахівців.
Однак спосіб достукатися до «негрузидетальных» замовників є — це наратив. Вони цілком зможуть почути історію, про те як:
* На AppStore нещодавно забанили вашого дружбана за порнушку.
* Мужик на YouTube намагався зайнятися зимовою риболовлею з wi-fi екшн камерою, щоб подивитися як риба реагує на наживку (чорт, я не жартую!).
* Як інший ваш дружбан колхозил прошивку для роутера, а в Гуанчжоу його швиргонув гід.
* Як ви вже півтора року чекаєте відповіді від DIT Москви.
Здавалося б, що це ж приватні випадки, і «у нас все буде по-іншому!» Але, як не дивно, замовник-стратег вірить байкам, особливо тим, які труять їх друзі. Звідси випливає інша проблема.

Д — Дичина! (так ніхто не робить)
— Давайте спарсим видачу «Яндекса»!
— ЧТОА? Еее… Мммм… Як? Заачееем?
— Щоб заощадити на пошуковому рушії!

— Давайте для iPhone напишемо три програми які будуть всередині iPhone один з іншому взаємодіяти!
— Заааааачеееееем???
— Для підвищеної безпеки: одне буде шифрувати трафік, інше буде стежити за оновленнями, а третє буде чатом.

Лайфхак: «Без нас»
Коли вас змушують робити дичину, треба відмовлятися. Я так за всю практику нічого і не придумала, що з цим робити. Вила в будь-якому випадку. Так, якщо ви відмовляєтеся робити Дичину, то іноді доводиться звільнятися, або відмовлятися від доходу. Але якщо ви погоджуєтесь робити Дичину, то дозволяєте перетворити свою роботу в пекло.
Звичайно, є третій шлях: можна умовити замовника піти стандартним шляхом і зробити все правильно. Іноді мені це вдається.
У цілому, метод такий:
* Задати питання.
* Визначити цінності і потреби.
* Запропонувати кілька альтернативних варіантів замовнику, про які він не знав або не думав.
Дичину буває різного ступеня упоротости. Якщо Дичина не надто жорстка, то замовник знаходить собі якусь недосвідчену жертву, яка погоджується. Якщо Дичина занадто, і всі поголовно від неї відмовляються, то замовник прозріває, розбудовується і йде бухати або, в найбільш важких випадках, пробує сам вчитися програмування, щоб всім щось довести.

З — Схема! (як хотілося б, але не працює)
Сейлз вицепіл клієнток з Tinder'а
— Тут у нас будуть відеотрансляції з дівчатами, тут у нас буде чат, тут ми будемо стягувати гроші за голосові дзвінки дівчатам. У всіх чатах, і відео, і в голосовому, у нас будуть фільтри, щоб чоловіки не обмінялися з дівчатами телефонами безпосередньо. А то ж всі такі хитрі!
— Відмінно! А ви впевнені, що такий фільтр існує?

Лайфхак: «А все інше ідеально?»
Зазвичай, коли розробники бачать таке, то вони чіпляються за це мозком і сперечаються з замовником. А потрібно задати собі питання: «ОК, тут затики, а все інше в цьому проекті — ідеально?»
Звичайно ж ні! Адже примхи не ходять поодинці. З'ясовується, наприклад, що: між соучередительницами не улагоджені юридичні питання, вони знаходяться в різних країнах і ненавидять один одного, якась нещасна команда вже починала це пиляти, тепер проект спочиває на компакт-диску, який не читається, і потрібно зайнятися поліруванням подряпин…
І тут ви розслабляєтеся, перестанете сперечатися і пропонуєте замовнику повернутися до обговорення після залагодження всіх інших питань.

Колективна творчість (правка у правці в режимі правки, «Ворд» — в клапті)
Уявіть собі милу міжнародну компанію-гігантика. В ній ТЗ потрібно узгодити з усіма департаментами. Нами запропоновано три варіанти реалізації. Ну, знаєте, як у великих компаніях говорять з підрядниками? А ось так: «Запропонуйте нам вариааанты!» (обов'язково з відтяжкою і «н» так в носик). Так от, одним відділам сподобався один варіант, другим — другий, третім — третій. І все так чатятся в режимі редагування. Чи зможу я дізнатися ТЗ, яке отримаю на виході після правок?

Лайфхак: «Жерем слона по частинах»
Чим більше проект, тим більше варіантів реалізації, більше правок, більше технічних ризиків, логічних несрастух і недомовленості. Тому я завжди намагаюся вмовити замовника на мінімальний етап з мінімальним функціоналом. Але не завжди так можна. Звичайно ж, всі хочуть будувати космоліт — це ж набагато престижніше! І починати будувати космоліт з капітанської рубки — це показник професіоналізму, правда ж!
У мене в пошті є 18-а, а є навіть і 23-я версія ТЗ з 6-ти сторінок. Всі вже настільки задолбались, що ніхто вже не хоче зводити це все разом… Нестерпно хочеться у виробництво!

Висновок
Який шлях до ідеального зрозумілому ТЗ? Він дуже простий: ніколи не починайте працювати, поки не отримаєте хоча б мінімально інформацію і матеріали за всіма пунктами для ідеального ТЗ, які я описав на початку. Але є проблема: так ви ніколи не почнете працювати. Тому в реальності доводиться вивертатися по-всякому, застосовувати лайфхаки, слухати загрози клієнтів, скарги менеджерів і невдоволення розробників. І Agile від цього всього не рятує, ой не рятує...

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.