(сегодня про Use Case диаграмму)
и, скорее всего, делаешь вот такое лицо
Что это вообще такое?..какие-то человечки, кружочки, стрелочки...
И что, это вот все должно мне что-то объяснить, так, что ли?
чтобы было что приложить к бумагам, так, для отчетности, и ничего больше.
Думаешь, мол: у нас есть требования, есть API, есть логика,
зачем тут еще эти человечки вокруг кружочков бегают, ну совсем же непонятно.
её задача в другом
➖ Сделать восстановление пароля➖
вначале она выглядит до смешного простой:😔 пользователь кликнул кнопку😔 вбил свою почту😔 получил письмо😔 поменял пароль
пользователь/сервис, который отправляет письма/сервис капчи/система авторизации
И вовсе не обязательно, чтобы это был человек.
Это может быть и: пользователь, и администратор, и внешний сервис, а то и вовсе другая система
Например: войти в систему/восстановить пароль/создать заявку
Но, конечно, самое интересное только начинается)
Стоит тебе только начать рисовать Use Case Diagram, как вдруг сами по себе начинают всплывать вопросы:
➖ а кто у нас письмо отправит?
➖ а капчу мы точно хотим сделать обязательной?
➖ а если администратор, он тоже сможет это действие выполнить?
➖ а внешний сервис тут вообще нужен нам, или как?
очень многие сначала стараются запихнуть в Use Case Diagram буквально вообще всю логику системы:
и статусы, и условия, и алгоритмы, да и добрую половину требований туда же
При этом сама Use Case Diagram создана для ответа лишь на один, но очень важный вопрос:
кто вообще взаимодействует с нашей системой и чего он от нее хочет добиться.
а просто потому, что она очень помогает тебе самому не запутаться в какой-то конкретной задаче.
Особенно это заметно на всяких интеграциях))
когда участников становится так много, что их уже больше, чем тех, кто присутствует на созвоне
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥1🔥1
"ну что ж, начинается игра в угадайку"
Ведь где-то он занимается сбором требований,
в другом месте проектирует API,
а то и вовсе погружается в архитектуру, подбирает методы интеграции.
что аналитик, проектировщик, да и архитектор
картинка вырисовывается примерно такая:
нам надо организовать вход на платформу через Госуслуги.
Пользователь нажимает кнопку
А вот дальше уже начинается движ
🔴 сперва разбирается, кто вообще может пользоваться входом через Госуслуги
🔴 потом выясняет, что же делать, если у пользователя уже есть аккаунт
🔴 думает, как правильно связать профили
🔴 выявляет, какие ошибки могут возникнуть
🔴 решает, что конкретно показывать человеку
🔴 и, конечно, учитывает все ограничения, которые есть со стороны бизнеса.
То есть аналитик отвечает на вопрос:
что именно у нас тут должно функционировать?
🔴 прикидывает, какие именно методы здесь пригодятся🔴 определяет, что конкретно нужно передавать в запросах🔴 рисует, как станет выглядеть структура ответа🔴 продумывает, как системы между собой станут общаться🔴 и вообще, где у нас будет располагаться та или иная логика
То есть:
как это будет устроено?
и начинает задавать уже другие вопросы:
🔴 сможет ли наше решение выдержать ожидаемую нагрузку
🔴 не сломает ли оно вдруг существующую авторизацию
🔴 понадобится ли нам какая-то отдельная очередь
🔴 как именно обеспечить должный уровень безопасности
🔴 и, главное, не наваливаем ли мы себе сейчас технический долг
То есть:
а всё ли мы делаем правильно, строя это?
ведь на настоящих проектах все эти роли нередко переплетаются:
"У нас аналитики этим не занимаются"
или
"Это работа архитектора"
то сразу хочется уточнить:
а кто у вас, собственно, скрывается под этим словом?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥3
то нужно запомнить истину:
Если ТЗ для дизайнера изначально было не очень,
то даже самый красивый макет вряд ли вытянет ситуацию.
"Нужно сделать страницу регистрации. Чтобы было современно, удобно и красиво".
🔵 Красиво это как? Современно это как?🔵 Кто вообще пользователь? Что он делает?🔵 Какие ограничения есть?🔵 Это новая страница или переделка существующей?🔵 Что обязательно должно остаться?🔵 Есть ли ошибки? Есть ли роли? Есть ли состояния?
И проходит пара-тройка дней, а результат....ну, вы знаете этот сценарий
Хотя на самом деле корень всех бед лежит куда глубже,
и проявился он намного раньше.
Когда мы даём задание дизайнеру, ему ведь не просто красивые пиксели нужны
и не пожелания в стиле "хочу как у Тинькофф", ему нужен контекст.
📌 Что делаем:
Не "новый экран".
А: страница регистрации для новых поставщиков📌 Зачем делаем
Не "так захотел бизнес".
А: "сейчас пользователи не понимают, какой вариант регистрации выбирать, из-за чего растёт количество ошибок".📌 Кто пользователь
Новичок? Опытный пользователь?📌 Какой сценарий проходит человек
Нажал кнопку → открыл страницу → ввёл данные → получил результат📌 Все состояния
Загрузка, Ошибки, Пустые данные, Успех, Ограничения📌 Что нельзя менять
Вот этот пункт почему-то регулярно забывают🙂
А потом оказывается:
"Ой, этот блок нельзя трогать, он приходит из другого сервиса"
или
"Ой, здесь юридический текст обязателен"
или
"Ой, эта кнопка завязана на старую логику"
если правильно поставить задачу дизайнеру, это сэкономит время не только ему,
выигрывают от этого абсолютно все)
разработчик не будет забрасывать уточняющими вопросами,
а тестировщик точно поймёт, что же мы имели в виду под загадочным "удобно".
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Если собрать в одной комнате десять аналитиков и спросить
какой фреймворк самый важный, через пять минут начнётся драка.
а кто-то вообще заявит, что главное это SQL и больше ничего в жизни не нужно.
Складывается впечатление, что нужно срочно выучить все существующие схемы и нотации.
и начинаешь подозревать, что идти в аналитику было ошибкой...
они помогают ответить на конкретный вопрос, разберём:
💭 Он нужен, когда предстоит разобраться в запутанном процессе:
Кто и что делает, в какой момент времени, какое действие запускает следующий шаг.✅ Если вы работаете с согласованиями, сложными закупками или документооборотом,
то этот инструмент здорово упростит вам жизнь.
💭 Диаграмма последовательности UML работает иначе.
Она нужна для понимания того, как системы общаются между собой:
кто кого вызывает, какие методы при этом дергаются и что возвращается в ответ.✅ Это спасает при интеграциях, когда в цепочке участвуют хотя бы пять сервисов,
обсуждать их на словах трудно, люди просто не могут удержать всю эту архитектуру в голове.
💭 ER диаграмма помогает разобраться с данными.
Вы смотрите на нее и понимаете, какие сущности есть в системе, как они связаны и где лежат.✅ Это очень выручает, когда вы раскапываете новую для себя систему или проектируете изменения в базе данных.
💭 USM позволяет разложить крупную задачу на понятные пользовательские сценарии.✅ С ней гораздо проще договориться, что реально нужно для первой версии продукта,
а что можно спокойно отложить на потом.
💭 А вот CJM смещает фокус на самого человека.
Эта карта показывает систему глазами пользователя:
где он путается, на каком шаге начинает злиться и где вообще бросает процесс на середине.✅ Это нужно, чтобы понять поведение людей, а не техническую сторону проекта.
Компании не нанимают аналитика только за умение красиво рисовать схемы,
а нанимают за способность разобраться в процессе и найти решение.
Просто иногда нарисовать BPMN оказывается самым быстрым способом объяснить этот процесс команде,
то же самое касается UML, ER и любых других инструментов.
попробуйте начать не с заучивания значков)
Выучить обозначения можно за пару вечеров,
но гораздо важнее понять, когда их действительно стоит применять на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤4👍4
Вот сидишь на груминге, всё выглядит максимально безобидно:
👉 взять данные из соседней системы👉 другая команда даст апишку👉 мы вызовем метод👉 и нужные данные отобразятся
Звучит как задача на пару дней)
За несколько лет работы мы заметили, что большинство проблем возникает вокруг одних и тех же вещей
Никто не договорился, кто за что отвечает
одна команда считает, что поле должно заполнять другая команда,
вторая команда считает ровно наоборот.
Итог? Поле пустое, сроки уже горят,
а на созвоне человек десять судорожно пытается понять, чья же это, в конце концов, головная боль.
Поэтому на этапе проектирования полезно задавать скучные вопросы:👉 кто владелец данных?👉 кто отвечает за их хранение?👉 а за актуальность кто?👉 кто исправляет ошибки?
Чем раньше мы расставим все точки над "и", тем меньше потом будет сюрпризов.
Интеграцию проектируют по счастливому сценарию
запрос отправился
👉 что если сервис вдруг недоступен?
👉 или ответ придёт не сразу, а через полминуты?
👉 а если вдруг статус вернётся совсем не тот, что мы ждали?
👉 что, если пришла пустая структура, хотя должна быть?
👉 или данные вроде есть, но заполнены как-то не полностью?
Именно поэтому один из самых полезных вопросов на обсуждении интеграции:
"а что будет, если всё пойдёт не по плану?"
Документация не совпадает с реальностью
видел поле string, а потом получал в него целый массив объектов...
Все считают, что данные всегда будут идеальными
👉 ИНН без ИНН
👉 дата без даты
👉 пустые строки вместо значений
👉 лишние пробелы
👉 неожиданные спецсимволы
👉 дубликаты
Если данные приходят из внешней системы, рано или поздно кто-нибудь обязательно пришлёт что-нибудь интересное.
Вопрос лишь в том, когда это случится)
Забыли про версионирование
Но пройдёт год, появится новая версия метода, а потом ещё одна.
Кто-то решит изменить структуру ответа.
"Ээ, а какой контракт сейчас используется в проде?"
иначе однажды можно узнать о новой версии метода прямо из упавших логов,
которые внезапно покраснели.
Они появляются на этапе, когда команды что-то не договорили, не уточнили или решили проверить потом.
а с кучи, порой неудобных, вопросов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3🔥2❤1
"разберись, как он работает" - тут-то и начинается совсем другая игра.
Ведь пользователи редко говорят все как есть.
А бывает, что и вовсе рассказывают не то, чем занимаются на самом деле.
а в ответ: "почти каждый день!"
Откроешь потом статистику, а там последний раз человек заходил три месяца назад...
и такие штуки происходят постоянно.
Это, по сути, попытка вытянуть наружу, как человек реально себя ведет, что делает.
✖️ Плохой вопрос: "Вам удобно работать с системой?"👌 Хороший вопрос: "Покажите, как вы выполняли эту задачу в последний раз."
В первом случае человек начнет рассуждать, давать оценку.
Во втором – покажет, что происходит на практике.
А практика, как правило, намного интереснее, чем любые рассуждения..
⭐ Пример диалога:
- Вам было сложно найти эту кнопку?
- Наверное, да.
- А если бы мы перенесли её наверх, стало бы удобнее?
- Наверное, да.
Через пять минут такое интервью превращается в игру, где надо угадать правильный ответ, который ждет аналитик.
Чем меньше подсказок в вопросе, тем лучше.👀
Парадоксально, но иногда аналитик занимает процентов восемьдесят времени интервью.
Объясняет, уточняет, рассказывает про будущие доработки, делится идеями.
А потом встреча заканчивается, и оказывается, что про пользователя почти ничего нового не узнали.👊
😋 Это вообще любимая ловушка.
Аналитик уже придумал решение и теперь задает вопросы так, чтобы услышать именно нужный ему ответ.
После такого интервью можно получить подтверждение буквально любой идеи,
вот только толку от этого немного...
Самые полезные фразы на интервью:
"Покажите, пожалуйста"/"А можете продемонстрировать?"/"Как это выглядит в системе?"😔 Потому что между словами пользователя и его реальными действиями иногда лежит целая пропасть.
Любой аналитик хотя бы раз слышал фразу "да тут всё просто".
После чего открывался экран с двадцатью вкладками, тремя Excel-файлами и инструкцией на сорок страниц.
Они нужны, чтобы понять, как человек работает на самом деле,
а это далеко не всегда одно и то же.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1❤🔥1💯1
Кажется, что весь айти мир
и слышит от коллег:
Значит так, раз в пятнадцать минут мы забираем XML-ку с того FTP-сервера, а после обработки кладем ответ в папку рядом.
И тут наступает легкий шок...
в банках, крупных корпорациях и госсекторах.
Эта схема настолько элементарна, что может стабильно работать десятилетиями.
Одной стороне нужно просто создать файл, другой его забрать и прочитать.
Не нужно поддерживать постоянное соединение, не нужно переживать, доступна ли вторая система прямо в эту секунду.
так как за ней скрывается серьезная техническая логика.
🪵 как система должна реагировать на дубликаты файлов?🪵 можно ли обработать документ, если из нескольких тысяч записей в нем некорректна только одна?🪵 каким образом подтверждать успешное получение данных или сообщать об ошибках?
Если в REST можно открыть Swagger, быстро дернуть запрос и посмотреть ответ, то здесь весь контракт зашит в структуру файла.
Лишний атрибут, не тот формат даты или какой-то странный символ в строке - и процесс встанет.
В нем нет хайпа или сложной событийной архитектуры, но есть стабильность.
Пока мы рассуждаем о технологиях будущего,
какой-нибудь старый добрый XML-файл прямо сейчас спокойно делает свою работу, даже не зная, что его уже десять лет пытаются отправить на пенсию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2💯2
Расследование любой проблемы в интеграциях обычно начинается одинаково:
кто-то пишет: "не работает" и всё...
Нет подробностей, ошибок, нет картинок с экрана. Просто не работает.
Через полчаса обсуждения уже виноваты все системы в компании, кроме той, где и началась ошибка.
Вначале все думают, что всё можно решить разговорами, письмами или вопросами.
чем больше людей говорит, тем больше идей, но меньше понятно, что случилось на самом деле.
Хорошо запоминаются случаи, когда уже нашли, кто, кажется, виноват.
и в голове готово объяснение, почему проблема у соседей.
Становится неловко, но зато время сэкономлено.
Для аналитика - это один из самых быстрых путей найти, что случилось:
когда пришёл запрос, что было внутри, куда всё ушло, что вернулось назад
и где именно всё пошло не так.
когда перестаёт говорить: "кажется, интеграция сломалась",
а начинает: "дайте пять минут, я посмотрю логи".
И это, что удивительно, почти всегда помогает быстрее, чем любое обсуждение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2
я просто хотел понять, почему система не даёт выполнить действие, которое по требованиям вообще-то должна давать выполнить.
Потом открывается метод..в методе вызывается другой метод, в другом методе ещё один..
какой-то
Helper, потом AbstractManager, потом ProviderFactory, потом ManagerProviderFactoryExecutor.Уже начинает казаться, что разработчики соревнуются между собой, кто придумает название класса страшнее.
теперь нужно срочно учить Java, писать микросервисы и спорить в комментариях про архитектуру.
Никто не ждёт, что ты будешь переписывать бэк по вечерам вместо просмотра сериала))
Но вот понимать, что происходит внутри системы, иногда бывает очень полезно.
Потому что:
А код тем временем:
Самая интересная штука часто вообще не код.
Самая интересная штука это юнит-тесты.
вроде полезно, но добровольно не полезу))
Иногда один тест рассказывает о системе больше,
чем документ, который последний раз обновляли во времена,
когда Internet Explorer ещё считался браузером.
Более того,
именно в тестах часто находишь всякие приколы, например:
И документации про него ни слова, и на демо его никто не показал.
Зато в тесте гордо лежит проверка на этот кейс.
И ты сидишь такой:
- ах вот где ты прятался, маленький засранец))
Поэтому мой хот-тейк такой:
аналитику не обязательно уметь писать код.
Но умение открыть метод, не испугаться, немного покопаться и посмотреть тесты - это натуральный чит-код к профессии.
Потому что ты перестаёшь гадать, как работает система и начинаешь это знать.
А это, между прочим, две очень разные лиги
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3👍3
Например, ситуация
Все мысленно уже вышли из звонка.
🤔 А что будет, если пользователь откроет сразу две вкладки?
Братик, ну зачем..мы же почти закончили..
в этот момент его хочется прибить, но он не унимается.
Там, где все видят просто новую фичу, аналитик видит потенциальное место катастрофы.
Пока команда радуется, как все круто получилось,
этот хомяк в голове аналитика носится в колесе и паникует:
😱 А ЕСЛИ ПОЛЬЗОВАТЕЛЬ СДЕЛАЕТ КАКУЮ-ТО ДИЧЬ???
И ведь пользователь эту дичь обязательно сделает)) причем в первый же день после релиза.
где они договариваются проверять самые дебильные сценарии, которые нормальному человеку в голову не придут.
Именно это часто спасает команду от очень неприятных разборок, потому что
баг на тестовом стенде
баг на проде
🚨🚨 КОЛЛЕГИ, У КОГО ЕСТЬ ИНФОРМАЦИЯ? 🚨🚨
Ну и по итогу, тот самый раздражающий вопрос про две вкладки был очень даже уместным))
Возможно, прямо сейчас он предотвращает ваш будущий созвон в 8 утра с темой:
"Разбираем последствия вчерашнего релиза"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3😁3🔥2
когда утром открываешь ноутбук с полной уверенностью,
что сегодня точно получится спокойно сесть за требования?
И вот ты уже полдня честно работаешь,
но документ, который открыл утром, всё ещё грустно смотрит на тебя с первой строчки.
Ну не может же человек четыре часа работать и за это время написать...примерно ничего.
Чаще это не тишина и глубокая концентрация, а наоборот...
постоянные попытки собрать мысли в кучу, пока тебя дёргают с "есть 5 минуток?".
И ведь никто ведь не врёт, у всех реально "на пять минут",
просто существует закон айти, по которому пять минут автоматически конвертируются в сорок))
в котором открыто вкладок...ну штук сто.
где-то играет музыка, где-то висит запрос к базе,
где-то черновик требований,
а на какой-то вкладке ты уже минут двадцать пытаешься вспомнить, зачем вообще ее открыл.
перестал отвечать на каждое сообщение сразу.
Да, да)) дал себе правило сначала закончить текущую фразу или мысль, а уже потом лезть в чаты.
но знаете, что на самом деле произошло? Да ничего))
Никто не уволился, процессы не встали, разработчики не начали писать код на салфетках в ожидании моего ответа.
потому что меня дёрнули ровно в тот момент, когда я наконец-то понял, как его сформулировать.
выгорание часто берется не от самого объема работы, а от этого бесконечного переключения между контекстами.
Поэтому иногда самая полезная задача на день - это... дать себе спокойно закончить хотя бы одну мысль.
Звучит как читерство, но работает.
Please open Telegram to view this post
VIEW IN TELEGRAM
👌3❤2👍2
интервью, воркшопы, анкетирование, наблюдение.
но на первой же реальной задаче все эти знания часто рассыпаются.
и ты стоишь с этим набором инструментов, не понимая, какой из них сейчас достать.
Первая реакция
Но бывает, что самый важный разговор уже случился, просто про него забыли.
Порой проект знает о себе больше, чем люди, которые над ним работают,
стоит сначала поискать ответы внутри системы, а не бежать сразу к людям.
И вуаля, через пять минут наблюдения понимаешь больше, чем за час интервью.
Спустя время оказывается, что общего понимания нет ни у кого.
В таких дискуссиях требования выкристаллизовываются гораздо быстрее, чем в серии одиночных бесед за неделю.
Никто же не режет хлеб отвёрткой. Хотя...наверняка кто-то и так делает.
он понимает, когда стоит открыть документацию,
а когда лучше поговорить с пользователем,
а когда собрать всех на один воркшоп,
а когда вообще ничего не спрашивать, а просто пять минут молча понаблюдать.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2💯1
почему фраза "Как пользователь, я хочу..." ещё ничего не значит
Когда впервые слышишь про User Story, думаешь, что это элементарная штука:
Как <роль>, я хочу <действие>, чтобы <ценность>
Кажется, что работа сделана.
Но потом приходит разработчик, читает это предложение и спрашивает: "а делать-то что конкретно?"
Проблема здесь в том, что User Story порой путают с техническими требованиями.
На самом деле она их не заменяет, её задача
Как пользователь, я хочу скачать отчёт, чтобы работать с ним офлайн.
Класс, но...
Какой формат? Кто может скачать? Есть ограничения по размеру? Что делать, если отчёт ещё не сформировался?
вы понимаете, о чем пойдет речь, но самого сюжета еще не видели.
Именно они превращают красивую хотелку в понятную задачу.
Как пользователь, я хочу восстановить пароль, чтобы снова попасть в аккаунт.
то разработчик понимает логику, а тестировщик знает, что именно проверять.
Это избавляет от споров о том, кто и как что-то "не так понял".
Вообще есть очень простой способ проверить свою User Story.
⬇️ ⬇️ ⬇️ ➡️ Закройте всё, кроме одного предложения, и задайте себе вопрос:
"Если убрать все остальные требования, разработчик сможет реализовать фичу?"✅ Если ответ "да" - скорее всего, вы случайно написали не User Story, а полноценное ТЗ))✅ Если ответ "нет" - всё нормально, значит, User Story выполняет свою работу)
потому что User Story перестаёт быть формальностью ради Скрама
и становится нормальной отправной точкой для обсуждения фичи.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3❤🔥1
либо пишут вообще на всё подряд
Аналитики могут проходить через стадию, когда Use Case кажется универсальным инструментом.
Стоит только разобраться, как он работает, и рука сама тянется описывать через него всё подряд:.
и вообще на всё, что шевелится.
Чаще всего путаница возникает потому, что Use Case путают с обычными требованиями.
Именно зарегистрироваться
А дальше сценарий:
💙 открыл страницу регистрации💙 заполнил поля💙 нажал кнопку💙 получил письмо💙 подтвердил почту💙 вошёл в систему
Вот и всё. Никаких требований вроде "поле должно быть обязательным", "длина пароля от 8 символов" и "ошибка 400" здесь быть не должно,
потому что это уже требования, а не Use Case.
Задайте себе вопрос:
пользователь идёт к цели или просто нажимает кнопку?
добавить чекбокс/переименовать поле/поменять цвет кнопки,
То писать ради этого Use Case примерно так же логично, как вызывать пожарных, чтобы зажечь свечку))
Основной сценарий, куча альтернативных веток и исключений
превращают документ в бесконечный сериал, как будто пишешь сценарий к новому сезону Игры престолов))
На самом деле вполне достаточно описать главный путь и пару важных нюансов.
В ней есть герой, есть его цель и чёткая последовательность действий.
Если после прочтения и разработчик, и тестировщик, и заказчик понимают,
что будет происходить в системе, значит, документ сделали как надо.
Если же у каждого своё представление, то стоит готовиться к долгим и бесплодным созвонам)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2
📊 CRUD-матрица:
табличка, которая задаёт вопросы лучше некоторых аналитиков
Есть очень простой способ понять, нужна ли проекту CRUD-матрица:
😔 если на вопрос "кто может удалить договор?"
в комнате прозвучало хотя бы два разных ответа..поздравляю, она вам уже нужна🌟
Вообще CRUD выглядит максимально скучно. Обычная табличка:
сверху роли, слева сущности, а внутри четыре буквы:
C, R, U, D.
⬇️ Может показаться, что это очередной рутинный инструмент, чтобы аналитикам было чем заняться в пятницу вечером))
⬇️ Но стоит заполнять её на практике и всё меняется:
😔 И вот одна буква U превращается в целый список условий, в этом и весь прикол ⭐️ CRUD-матрицы⭐️
💥 Если будете составлять её впервые,
не пытайтесь сразу нарисовать огромную таблицу на сто ролей и пятьдесят сущностей.
💥 Начните с простого:
🔖 Ещё совет:
Если в вашей CRUD-матрице почти везде стоят одинаковые буквы➡️ не спешите радоваться)
Скорее всего, вы просто ещё недостаточно глубоко покопались,
потому что реальные системы очень любят фразы вроде:
"можно, но.."➡️ эти самые "но" потом становятся требованиями, тест-кейсами и багами.
🔖 По сути, CRUD - это инструмент,
который помогает вытащить на свет скрытые ограничения и разобраться, где система прячет свои нюансы.
табличка, которая задаёт вопросы лучше некоторых аналитиков
Есть очень простой способ понять, нужна ли проекту CRUD-матрица:
в комнате прозвучало хотя бы два разных ответа..поздравляю, она вам уже нужна
Вообще CRUD выглядит максимально скучно. Обычная табличка:
сверху роли, слева сущности, а внутри четыре буквы:
C, R, U, D.
Берёшь, например, сущность "Заявка" и видишь, что оператор может делать Update.
Тут думаешь: "а он случайно не может править любую заявку?".
Оказывается нет, может только свою, да и то если она в статусе "Черновик" и ещё на согласовании не была.
Она нужна не для того, чтобы аккуратно заполнить таблицу эксель, а для того, чтобы заставить всех задуматься над деталями.
не пытайтесь сразу нарисовать огромную таблицу на сто ролей и пятьдесят сущностей.
1️⃣ Выпишите основные сущности.
именно те, с которыми работает система: заявки/договоры/пользователи/документы,
а не экраны или кнопки2️⃣ Затем добавьте роли, только реальные.
Очень хочется написать "Администратор", "Пользователь", "Менеджер" и закончить,
но лучше потратить две минуты и проверить, не забыли ли вы ещё какого-нибудь оператора или модератора.3️⃣ И главное - не ставьте CRUD-операции на автомате как шаблон.
Каждую букву лучше мысленно заменить вопросом.😔 Не просто "Update", а "когда именно он может изменить?"😔 Не просто "Delete", а "точно удалить, а не архивировать?"😔 и не "Read", а "просмотр всех записей или только своих?"
Вот на этих вопросах обычно и всплывают ограничения, про которые никто не вспомнил на обсуждении.
Если в вашей CRUD-матрице почти везде стоят одинаковые буквы
Скорее всего, вы просто ещё недостаточно глубоко покопались,
потому что реальные системы очень любят фразы вроде:
"можно, но.."
который помогает вытащить на свет скрытые ограничения и разобраться, где система прячет свои нюансы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1💯1
который отвечает на вопрос: "а что мы вообще строим?"
Но представьте ситуацию: команда начинает новый проект.
Кажется, что рановато думать о документации,
но именно сейчас Vision Document приносит больше всего пользы.
По сути, это документ, который описывает проект с высоты птичьего полёта,
никаких деталей, бизнес-правил или технических моментов.
Он нужен, чтобы любой человек, открыв документ, за пять минут понял:
и недооценивают именно последнее
Набор разделов может отличаться от компании к компании, но чаще всего встречаются:
📌 цель проекта📌 описание проблемы📌 целевая аудитория📌 бизнес-цели📌 ключевые возможности продукта📌 ограничения📌 границы проекта (Scope/Out of Scope)📌 критерии успеха
Например,
в Vision может быть написано, что пользователь должен быстро восстановить доступ к аккаунту,
а в требованиях уже опишут, что ссылка для восстановления действует 24 часа, её нельзя использовать повторно и после смены пароля токен становится недействительным.
Разница очевидна.
тем ценнее становится единое понимание того, что вообще строится.
Потому что плохие проекты редко разваливаются из-за неправильно написанного требования
и гораздо чаще проблема начинается раньше - когда команда с самого начала представляла конечный результат по-разному.
И вот здесь Vision Document становится не просто документом, а отправной точкой для всех дальнейших решений.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2❤🔥1🔥1