Созвездие Луча
171 subscribers
3 photos
42 links
Проектирование в широком смысле + см. закреп : )
Download Telegram
#систематика /// Потребности, требования, ограничения

У надсистемы (по отношению в ЦС), а точнее у её, надсистемы, проектных ролей, есть какие-то потребности.
Эти потребности проявляются / преобразуются / выражаются как требования к ЦС.
И здесь важна их трассировка — связывание потребностей надистемы с требованиями к ЦС.

Когда формулируются требования, то они формулируются к ЦС без рассмотрения её, целевой системы, свойств и устройства. В таком случае ЦС рассматривается как чёрный ящик. Это предпочтительный вариант.

Требования обязательно должны быть увязаны с главной функцией системы.

Но если вместе с потребностями транслируются также требования к внутреннему устройству ЦС или принципам её работы, то тогда ЦС рассматривается как прозрачный ящик, и тогда требования, выдвигаемые к внутреннему устройству ЦС есть ограничения. Если такая ситуация случилась, то стоит торговаться насчёт ограничений, потому что это ограничения конструкторской свободы команды проекта, реализующей ЦС.

Все эти потребности, требования и ограничения являются описанием системы:
потрбености для над-системы и систем в окружении;
требования и ограничения для целевой системы.

Сначала рассматривают окружение и надсистему (главное действие) и лишь затем ЦС и цепочки обеспечения!

Потребности и требования обязательно трассируются, то есть сводятся "концы с концами".
Не должно оставаться потребностей, не переведенных в требования — потребности не будут удовлетворены, система не будет успешной.
Не должно быть требований, не относящихся к потребностям — это будет лишняя работа, которая может помешать другим требованиям и воплощению системы.

___
#потребности #требования #ограничения #чёрный_ящик #прозрачный_ящик #описание
#систематика /// Сервис и функция

Сервис — это поведение системы по отношению к её надсистеме. То, что делает система для изменения надсистемы.
Функция — это взгляд надсистемы на поведение системы. То, что нужно надсистеме от системы.
Таким образом, функция системы — предоставление сервиса в адрес её надсистемы.

При системном разбиении необходимо не только выделить надсистему, но также понимать как она устроена, чтобы выявить основную функцию нашей системы, чтобы реализовать её сервис, отдаваемый "наверх".

Функция — поведение системы для надсистемы или систем в окружении. Это поведение удовлетворяет потребности внешних ролей, то есть проектных ролей надсистемы.
Для реализации функции системы необходимо удовлетворить требования к рассматриваемой системе.

Функция системы = эмерджентность.

Сервис в виде его регулярных экземпляров, инстансов — работы, вот этот каждый экземпляр это работы по применению практик, эти работы выдают сервис в ходе своего выполнения.
___
#сервис #функция #подсистема #надсистема #потребности #требования #эмерджентность
#систематика /// Описание и требования к нему

К описанию бывают требования двух видов

- Требования к формату описания
- содержанию — запрос на описание части физического мира, ограниченного чем-то
- языку — как выделяются объекты из фона и какими словами обозначаются
- нотации

- Требования к цели — запрос на описание, чтобы агент А по описанию сделал действие N
в этом случае надо догадываться:
- сколько на самом деле нужно описаний, так как "чтобы агент А сделал действие N" может наступить только при участии других агентов, для которых тоже потребуется описание.
- на каком языке и нотации требуется описание
- что должно являться содержанием описания, то есть к какой части мира описание реферирует

Эти виды требований могут и комбинироваться, а также скорее всего каждый из нас тяготеет к одному из видов как более комфортным и понятным или привычным требованиям.

Важно уметь выявлять одно из другого — на основе запроса по формату надо уметь выявить или предположить цель применения этого описания, а на основе запрос по цели надо уметь выявить требования по формату: содержание-язык-нотация.

Часто требования к описанию на бытовом уровне выдвигаются только как требования к содержанию.
И тогда надо догадаться:
- на каком языке описывать? — язык уже где-то закреплен или его надо выявить / снять с речи и применить?
- насколько детально описывать — насколько мелкий самый мелкий наш объект внимания в этом описнаии? Это системные уровни в системном разбиении часть-целое — здесь речь про масштаб рассмотрения, позиция в спектер zoom in - zoom out рассмотрения.
- насколько конкретно описывать — вот тут надо предполагать, что получаетнль описания будет с описанием делать — выявлять общие законы или рассматривать конкретную описываемую часть мира; это про выбор предмета описания — класс или экземпляр.

Раз к описанию есть требования, то есть и потребности, из которых эти требования проистекают, а значит у описания обязательно должна быть цель — соответствующая цели того, кто запрашивает описание. Запрашиваемое описание — это про предпочтение в интересе той роли, которая запрашивает это описание.

___
#описание #часть_целое #системное_разбиение #требования #нотация #роли #интерес
#дизайн /// UX-марафон 26-2Проектирование сложных систем

Как сделать интерфейс атомной электростанции понятным для всех
Диана Ударцева, Никита Беллер, Тинькофф

(Рассказ про опыт проектирования внутренних бизнес-продуктов для профессиональных сотрудников — разработчики, аналитики, трейдеры, etc)
1. Какие задачи решают — берут данные и делают интерфейсы для работы с ними
2. Сложности со сложными системами
⁃ отсутствие референсов,
⁃ техническая сложность разработки,
⁃ проф-пользователи и их майндсет,
⁃ каждая задача — выход из зоны комфорта (кажется, имелось в виду, что каждая задача решается нетипичным образом; это имхо никак не связано с комфортом)
3. Порог входа VS эффективность интерфейса
⁃ “Продукт должен быть легким” — утопия для сложных интерфейсов;
⁃ человек с улицы НЕ должен сразу разобраться в сложном интерфейсе;
⁃ сразу закладывается обучаемость, etc
4. Пример: приложение для инвестиций — для всех, низкий порог входа, а терминал для трейдинга — для знающих трейдеров, высокий порог входа
5. Про мнимое упрощение — если бездумно упростить, то может получиться хуже, так как многие сложные/непонятные (массам) вещи являются якорями и ориентирами в сложных интерфейсах (показалось невнятно или не уловил мысль, изложил как понял )
6. Пример сложности с терминами, их не стоит упрощать, например, margin call, “ноут” — устоявшиеся термины; их упрощение — мнимое
7. Разрабатывайте на реальных данных — предполагаемые данные и их отображение могут не соответствовать реальности и моделирование нарушается
8. Учитывайте масштабируемость — заложите на будущее функционал + пример: шапка страницы под десяток пунктов, а их по факту на порядок больше
9. Определяйте ограничения заранее — выявляйте технический границы решений + пример, таблицы не получилось представить дашбордами, так как данные принимаются не в реальном времени, а раз в сутки
10. Прорабатывайте алгоритмы — работайте с (базовыми) сценариями, и только потом с интерфейсами
11. (Показан скрин диаграммы — гибрид bpmn и service blueprint)
12. Коммуницируйте с командой, особенно с аналитиками и разработчиками
13. Таймлайн жизни на проекте:
⁃ прогресс от полугода: 0-1 месяц это понимание “что вообще происходит” — потому что во внутренних системах проектировщик на является пользователем;
⁃ 2-4 месяц это стадия более уверенного решения задач, продолжаем постигать;
⁃ 5-8 месяц это стадия некоторой экспертизы, мышление базовыми и смежными сценариями, все равно продолжаем постигать;
⁃ примерно 1 год это стадия уверенной экспертизы, есть риск профдеформации и замыленности/зашоренности, продолжаем коммуницировать с коллегами, в тч из смежных направлений для размыливания.
14. Заключение: сложность — это прокачка софтовых и хордовых скиллов;

Хороший доклад, ориентированный на junior/middle-проектировщиков.
Системно:
Сформулирована “сложность” систем — отсутстивие или недоступность типовых решений, выделенная профессиональная аудитория (а она — один из основных стейкхолдеров),
Указано на назначение сложных систем — ими пользуются для выполнения профессиональных, рабочих задач (практик), а не повседневных и бытовых.
Сказано про язык коммуникации с пользователем — примеры с терминами и мнимым упрощением как раз про общение с аудиторией в его концептуальной сетке его языком.
- Моделирование на реальных данных — абсолютно согласен; важно моделировать на реальных данных, если есть возможность, это позволяет приблизить модель к отсечкам проверки и приемки.
- Сказано про работу с требованиями (правда другими словами) — масштабируемость и технические ограничения это именно работа с требованиями, их выявление, трассировка потребностей к требованиям, обозначение и снятие ограничений.
- Моделирование по сценариям — названо проработкой алгоритмов, но суть та же; все сценарные методы и фреймворки (JTBD, CJM, US map, Service Blueprint) действительно позволяют выявить теневые кейсы и учесть множество требований на ранних этапах.

———
#проектирование #UX #мероприятия #моделирование #коммуникация #требования
#дизайн /// Требования в UI-задачах

Эта заметка — выжимка из более крупной заметки про требования в UX/UI-задачах.
В плане версии это пре-альфа и предстоит еще несколько итераций до полноценной альфы и тем более беты. Поэтому буду очень рад комментариям и вопросам.


1) Что изменится в мире с помощью этого UI?
Интерфейс == система обеспечения, найдите целевую систему — действие или продукт в физическом мире. Путь пользователя к состоянию этого действия/продукта зависят от интерфейса. Важно проследить цепочку событий, ведущих от действия в UI к целевому действию в физическом мире. Цепочка может быть представлена в виде связанных user stories (job stories). Цельная, логичная цепочка "сторей" без противоречий у стейкхолдеров — хорошие требования.

2) Присутствуют ли в постановке задачи ограничения?
В мире UI очень часто передаются предполагаемые решения в виде требований; явный пример: указание на компонент вместо требуемой функции ("выбор чекбоксами" вместо "возможность множественного выбора"). Это — ограничение, их надо отслеживать и снимать: затребовать искомую функцию (в цепочке "сторей"), и уже к функции подобрать подходящий компонент.

3) Задачу какого уровня в данный момент надо решить?
Разложите задачи на спектре [общие решения - - - - конкретные решения]. Общие решения необходимо принять в первую очередь, их можно назвать архитектурными решениями, от них зависят более детальные требования и решения — на уровне / уровнях ниже. Регулярно сверяйтесь с уровнем, на котором сейчас работаете, важно в моменте решать задачу, соответствующу уровню.

4) Как я формально пойму, что решение удовлетворяет требованиям?
В итоге работы по первым трем пунктам у вас есть список задач
- в виде сфорулированных требований ("стори")
- со снятыми ограничениями
- декомпозированный по уровням и "сторям"

Формулируйте их так, чтобы из них легко было понять последовательность решения задач и критерии, по которым решение проверяется.

Далее, при наличии требований, разработайте решение и участвуйте в приемке; об этом в следующих заметках (и в полной версии заметки).

Четыре пункта выявления требований (аналитика) и два пункта разработки (синтетика) — итеративный процесс.

___
#целевая #требования #интерфейс #ограничения #проверка #системное_разбиение

[[+ Целевая, наша, над-, под- системы в окружении]] — работая с UI необходимо помнить, что это работа над системой обеспечения, и важно держать в голове фокус на целевую физическую систему: продукт или процесс.
[[+ Главное действие]] — все действия пользователя в UI есть часть цепочки действий, ведущих к главному действию в физическом мире; определение родительской системы/сценария есть важнейший шаг по построению этой цепочки.
[[+ Потребности, требования, ограничения]] — в работе над UI часто встречаются органичения; их важно снимать, выявляя вместо решений требования; это необходимо для построение цельной цепочки до целевого действия.
[[+ Часть-целое, разбиение, эмерджентность]] — при работе над UI сохраняется принцип системного разбиения, только чаще всего подсистемами/надсистемами являются физические процессы.