Выдающиеся массовые приложения — это на самом деле просто причудливые структуры данных

19.08.2024

(в оригинале заголовок звучит как «The great horizontal killer applications…», но большинство людей просто не поняли бы фразу, поэтому немного его упростил :0)

Небольшая выдержка из эссе «How Trello is different» с моим комментарием в конце. Статья была написана Joel Spolsky, одним из основателей приложения (а также Stack Overflow и Glitch), в 2012 году, через пару месяцев после запуска Trello.

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


Преамбула в эссе

Всего несколько месяцев назад мы запустили Trello — супер простую веб-систему координации работы команды (team coordination system).

Самое большое отличие, которое вы заметите (по сравнению с нашими предыдущими продуктами, предназначенными исключительно для разработчиков программного обеспечения), заключается в том, что Trello — это полностью горизонтальный продукт (totally horizontal product).

Горизонтальный означает, что его могут использовать люди из всех слоев общества. Текстовые процессоры и веб-браузеры являются горизонтальными. Программное обеспечение, которое ваш стоматолог использует, чтобы мучить вас бормашинами, является вертикальным.

Создать крупный горизонтальный продукт, который был бы полезен в любой сфере жизни, практически невозможно. Вы не можете брать с клиентов слишком много, потому что вы конкурируете с другими горизонтальными продуктами, которые могут окупить свои затраты на разработку за счет огромного количества уже имеющихся пользователей. Это высокий риск и высокая награда: не подходит для молодого начинающего стартапа, но неплохая идея для второго или третьего продукта от зрелой и стабильной компании, такой как Fog Creek.


Автор рассказывает историю о времени, проведенном им в команде Microsoft Excel в 1991–1993 годах

Большой блок примерно на страницу. В начале 90-х команда разработчиков думала об Excel как о приложении для финансового моделирования: создание расчетных моделей с формулами и прочим.

В 1993 году пара человек из команды отправилась на массовые встречи с клиентами, чтобы посмотреть, как люди реально используют Excel. Результат их обескуражил. Большинство людей использовали Excel просто для составления списков:

«Внезапно мы поняли, почему Lotus Improv, эта футуристическая электронная таблица, которая должна была сделать Excel устаревшим, полностью провалилась: потому что она была хороша в вычислениях, но ужасна в создании таблиц, и все использовали Excel для таблиц, а не для вычислений».


The great horizontal killer applications are actually just fancy data structures

Электронные таблицы — это не просто инструменты для «what-if» анализа. Они предоставляют определенную структуру данных: таблицу. Большинство пользователей Excel никогда не вводят формулу. Они используют Excel, когда им нужна таблица. Линии сетки — это самая важная функция Excel, а не пересчет.

Текстовые процессоры — это не просто инструменты для написания книг, отчетов и писем. Они предоставляют определенную структуру данных: строки текста, которые автоматически переносятся и разбиваются на страницы.

PowerPoint — это не просто инструмент для проведения скучных совещаний. Он предоставляет определенную структуру данных: массив полноэкранных изображений.

Некоторые люди, увидев Trello, сказали: «О, это доски Kanban. Для разработки программного обеспечения agile-методом». Да, это так, но они также подходят для планирования свадьбы, для составления списка потенциальных мест отдыха, чтобы поделиться им с семьей, для отслеживания кандидатов на открытые вакансии и для миллиарда других вещей. На самом деле Trello подходит для всего, где вы хотите вести список списков с группой людей.

Существуют миллионы вещей, которым нужна такая структура данных, и до Trello не было ни одного хорошего приложения типа «список списков». (Были аутлайнеры, но, ИМХО, outlines — один из величайших тупиков в дизайне пользовательского интерфейса: они так привлекательны для программистов, но так бесполезны для обычных людей).

Как только вы освоите Trello, вы будете использовать его для всего.


Комментарии к эссе

➊ Мысль про «причудливые структуры данных», заложенная в Trello и описанная в эссе, через 10 лет нашла дальнейшее развитие в новом проекте Joel Spolsky — Hash.ai (в апреле 2024 написал про него отдельную развёрнутую заметку).

За последнее десятилетие мы наблюдали колоссальный рост популярности блоков и компонуемых интерфейсов на их основе в разных типах приложений:

  • Notion (2016), Coda (2017) и множество других приложений для работы с текстом, появившихся за последние 3–4 года,
  • Webflow (2013), WordPress Gutenberg (2018),
  • Retool (2017), Glide (2018).

По мнению команды Hash, блоки (blocks) — это новая метасреда для создания горизонтальных приложений. Это материал, который может выполнять всё, что нужно пользователю:

  • Они позволяют ему выбирать свои собственные «причудливые структуры данных» из широкого списка вариантов (а не из одной-двух «структур», как было ранее в приложениях).
  • И в свободной форме комбинировать их в любом документе или на бесконечном холсте (canvas).

Поэтому одним из ключевых элементов их проекта стал открытый стандарт Block Protocol:

  • Фреймворк, позволяющий разработчикам создавать и использовать универсальные front-end компоненты, своего рода «блоки структурированных знаний», которые будут работать в любом приложении, совместимом с фреймворком.
  • Непосредственно сервис Hash.ai должен выступить эталонным примером использования стандарта.

Общая задумка ➜ Подвигнуть разработчиков к тому, чтобы унифицировать популярные типы блоков в своих приложениях (и заодно сэкономить ресурсы, не разрабатывая их с нуля). Как следствие:

  • одинаковое привычное пользователю поведение «блока» (таблицы, kanban-доски и т.п.) в разных приложениях,
  • простая переносимость данных в этих блоках между приложениями,
  • и лёгкий побочный эффект в виде того, что мы массово получаем «структурированные знания» там, где их обычно нет.

Последний пункт на самом деле наиболее важный для команды Hash, учитывая специфику их приложения. Более развёрнуто про это можно почитать в докладе Maggie Appleton «The block-paved path to structured data» на «Structured Content Conference» в San Fransisco (май 2022). Но вместе с ним они решают и проблемы обычных пользователей.

➋ В самом начале своего эссе Joel Spolsky использовал интересный термин, описывая суть Trello: team coordination system.

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

Инструмент именно для координации, а не управления, планирования или аналитики. Он не предназначен для полноценного work или project management, поэтому по многим направлениям в системе лишь зачатки функционала (он излишен).

Как оказалось, горизонтальные продукты хорошо подходят для выполнения роли team coordination system. Первым показательным примером был Trello, позднее появился Notion. Когда-то в прошлом достаточно успешно в данной роли выступал Excel :0)

Вообще, я подобные приложения про себя называю «Сервис ➜ Карта». Они позволяет членам небольшой команды «быть в курсе текущей ситуации». В частности, основная роль Notion для таких команд ➜ Продвинутый дашборд.

➌ Ремарка автора по поводу аутлайнеров немного развеселила :0) Просто не стоит забывать, что эссе писалось в начале 2012 года. Workflowy всего год как вышел на рынок, и интерфейс в нём на тот момент был действительно крайне минималистичным. А других web-based аутлайнеров, по сути, и не было.

Вообще подозреваю, что, говоря про аутлайнеры, Joel Spolsky в первую очередь имел в виду Org-mode (который действительно был распространен в основном среди программистов).