Всем привет, меня зовут Александр Мачулин и я сооснователь Gramax. Когда рассказываем про Gramax и Docs as Code, то иногда сталкиваемся с непониманием, как работать над текстами асинхронно. Вот примеры тезисов:

Зачем нам всё это, если существенно лучше онлайн-редактирование как в Google Docs, Notion, Confluence. В них прекрасно видно, где и кто работает, какие пункты исправляет.

Кто-то из редакторов

Асинхронная работа приведет только к двойной работе, т. к. не видно, кто какой пункт или абзац правит, или уже поправил.

Кто-то из аналитиков

Считается, что синхронное редактирование — лучшая практика и золотой стандарт, когда люди совместно решают одну задачу. Например, проверяют статью или договор. А асинхронное редактирование через Git — лучшая практика, если совместно решаются разные задачи. Как, например, в программировании.

Что за синхронное и асинхронное

Я долго размышлял об этом с точки зрения процесса совместной работы и в этой статье опишу свои умозаключения.

Про совместную работу

Как задумывалось в Google Docs: люди зашли в один файл, «навалились» и решили задачу. Давайте посмотрим как на практике.

Представим, что у нас есть таблица или текстовый файл, в котором работает сразу много человек — например, 100. Как правило, каждый человек работает с отдельной секцией в виде набора строк или абзаца, где он решает логически изолированную от других задачу и никому не мешает. Представить ситуацию, когда два (или 100) человека могут одновременно редактировать одно и то же предложение в тексте — невозможно. То же самое с ячейками и в таблицах. Если люди редактируют одну и ту же строчку, но разные столбцы, то они редактируют столбцы независимо друг от друга и скорее всего в разное время.

Другими словами: каждый человек работает независимо друг от друга — асинхронно, но в онлайн документе.

Представьте, что вы бы сейчас видели, как я пишу вот это самое предложение. Стали бы его одновременно со мной переписывать? Думаю, нет.

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

Вы мне можете возразить и сказать:

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

Вы

Представляю. Но реальных юзкейсов, кроме аналогий, не вижу. Если юристам прислали файл договора на почту и сказали «проверьте-вычитайте», то не получится как в мастерской видеть, кто над каким куском текста работает. Потому что в тексте мы видим только курсор, а не логическое деление по задачам. Им придется сначала договориться, кто что проверяет, а только потом приступать к работе.

Мне доводилось делать CRM систему в Google Sheets, когда не подошли коробочные AmoCRM, Bitrix24 и другие. В подготовленную форму в Sheets 10+ человек одновременно вносили информацию о новых клиентах. Но даже совместное онлайн-редактирование не спасало от дублирования информации и других конфликтов, когда кто-то случайно затёр чужие строки. Приходилось откатывать весь документ на более ранние версии.

Не делайте CRM в Sheets :)

Когда синхронное редактирование лучше

Часто сталкивался с ситуацией: смотрю, как другой человек пишет, а он пишет как-то нескладно и с ошибками. Мне так и хочется сказать: «Что-то ты криво пишешь, дай я перепишу». И сразу же начать переделывать.

В асинхронном режиме работы такой возможности нет. Переделать удастся либо через предоставление доступа к ноутбуку (если мы сидим рядом), либо через предоставление доступа к экрану (если мы на звонке).

Других преимуществ у синхронного редактирования перед асинхронным я не нашел. Если вы знаете — обязательно расскажите!

Когда асинхронное редактирование лучше

Когда мне необходимо работать без доступа к интернету, то я могу на своём ноутбуке или смартфоне работать с документами, а позже синхронизировать их с центральным хранилищем. Если вдруг произойдёт конфликт (я изменю ту же строчку, которую уже кто-то изменил, пока я был офлайн), то Gramax предложит мне просмотреть чужое изменение и решить, что с ним сделать: принять, отклонить или изменить. Так же как это работает в Git.

Выводы

Асинхронное редактирование не имеет существенных недостатков перед синхронным. Так и наоборот.

На мой взгляд, написание текстов такая же комплексная, целостная и креативная работа как и разработка кода. И в ней должно преобладать асинхронное редактирование. Лично мне намного удобнее и приятнее работать асинхронно, потому что я ни у кого не стою над душой во время работы и это взаимно. Моя продуктивность сильно падает, когда я вижу курсоры коллег в моём документе.