Как реализовать процесс непрерывного улучшения саморедактуры?

 Публичный пост

Добрый вечер!

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

Ниже описаны некоторые мои находки.

Заранее благодарен

Дмитрий Писаренко

Цель

Есть первый черновик романа, first shitty draft, как говорят наши западные партнеры. Это очень сырой черновик. Он не просто так называется shitty.

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

  1. сухой язык,
  2. ненужные повторения,
  3. неуместный официоз, канцелярит, вычурно-цветастый язык ,
  4. анатомические невозможности,
  5. непреднамеренные логические нестыковки,
  6. кондовая экспозиция когда в первых нескольких главах нет никакого экшена, только описание биографии героя и места действия,
  7. описание того, что можно и нужно показать,
  8. длинноты,
  9. недостаточная эмоциональность,
  10. ненужные языковые сложности вроде деепричастных оборотов,
  11. недостаточно хорошо прописанные конфликты,
  12. грубые грамматические и стилистические ошибки,
  13. все то, что было лень делать во время написания первого черновика и
  14. все другие случаи, когда что текст плох.

Это такие ошибки, которые не исправят ни

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

Потому делегировать это нельзя.

Поэтому эти ошибки я исправляю сам, а мелочь вроде орфографии потом делегирую редактору.

Проблема

Все это идет очень медленно.

Первая попытка решения

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

Но не буду же я заводить на каждую мелочь тикет в Джире? А почему не буду?

Ответ: Потому, что это слишком долго. Открыть страницу, потом вбить текст (включая контекст -- глава и место, где эта проблема есть). После исправления опять нужно открыть Джиру, найти нужный тикет и там мышкой отметить задачу как сделанную.

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

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

Вот так:

4-го июля 1945 года отцы основатели, Джон Уилкс Бут и Джессе Вентура отмечали годовщину высадки на Луну. Царила дружеская атмосфера.

# TODO 1: Что-то не так со временем.

# TODO 2: "Царила атмосфера" попахивает канцеляритом.

# TODO 3: "Джессе Вентура" или "Джесси Вентура"?

Все строки с решеткой (#) в начале -- это комментарии, они не попадут в конечный текст.

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

Это можно решить, если сделать небольшую программу, которая будет давать каждой проблеме уникальный идентфикатор. Назовем эту программу тудуп (TODO Processor).

На входе тудуп получает вот такой файл:

4-го июля 1945 года отцы основатели, Джон Уилкс Бут и Джессе Вентура отмечали годовщину высадки на Луну. Царила дружеская атмосфера.

# TODO: Что-то не так со временем.

# TODO: "Царила атмосфера" попахивает канцеляритом.

# TODO: "Джессе Вентура" или "Джесси Вентура"?

После работы тудупа файл превращается в вот такой:

4-го июля 1945 года отцы основатели, Джон Уилкс Бут и Джессе Вентура отмечали годовщину высадки на Луну. Царила дружеская атмосфера.

# TODO, ВЕСЕЛЫЙ-КАРЛСОН-25: Что-то не так со временем.

# TODO, ХИППУЮЩИЙ-ДОСТОЕВСКИЙ-35: "Царила атмосфера" попахивает канцеляритом.

# TODO, ЛИКУЮЩИЙ-ГОГОЛЬ-81: "Джессе Вентура" или "Джесси Вентура"?

ВЕСЕЛЫЙ-КАРЛСОН-25, ХИППУЮЩИЙ-ДОСТОЕВСКИЙ-35 и ЛИКУЮЩИЙ-ГОГОЛЬ-81 -- это идентификаторы каждой проблемы. Тудуп следит за тем, чтобы эти идентификаторы не повторялись.

Никто не мешает тудупу записать время добавления и время удаления той или иной проблемы. Здесь уже можно считать статистику -- интенсивность саморедактуры по времени (сумма всех добавлений и всех удалений проблем в ту или иную неделю).

Можно посчитать средную интенсивность саморедактуры по дням недели.

Это все замечательно, но все еще не дает ответа на вопрос -- а как мне все-таки стать более эффективным?

Категории

Здесь мне пришла идея добавить категории пунктов действий.

4-го июля 1945 года отцы основатели, Джон Уилкс Бут и Джессе Вентура отмечали годовщину высадки на Луну. Царила дружеская атмосфера.

# TODO, ВЕСЕЛЫЙ-КАРЛСОН-25: Что-то не так со временем. #time

# TODO, ХИППУЮЩИЙ-ДОСТОЕВСКИЙ-35: "Царила атмосфера" попахивает канцеляритом. #ex

# TODO, ЛИКУЮЩИЙ-ГОГОЛЬ-81: "Джессе Вентура" или "Джесси Вентура"? #g

В конце текста каждого пункта действия появились категории, которые отмечаются решеткой:

  1. #time: все, что связано со временем,
  2. #ex (expression): нужно подобрать лучшее выражение,
  3. #g(grammar): все, что связано с грамматикой, стилистикой, орфографией и т. п.

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

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

Мелкомасштабное отслеживание времени

Я добавил в редактор следующую функциональность: Если ввести в редакторе команду tt ses, то он пишет в особый файл, что сеанс саморедактуры открыт в такое-то время.

2023-09-12 12:01:08|/Users/my-novel/src/txt/ch006.org|SESSION START|# TODO, WONDERFUL-DUBINSKY-96: Describe ... #vcd

Когда я начинаю работать на тем или иным пунктом действия, то

  1. навожу курсор на соотв. строку (например, # TODO, ВЕСЕЛЫЙ-КАРЛСОН-25: Что-то не так со временем. #time) и
  2. ввожу в редакторе tt as.

В том файле появляется строчка:

2023-07-03 12:01:46|/Users/my-novel/src/txt/ch006.org|ACTION ITEM START|# TODO, ВЕСЕЛЫЙ-КАРЛСОН-25: Что-то не так со временем. #time

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

Теперь можно считать более подробную статистику. Самый простой вариант -- трудозатраты по пунктам действия.

Можно считать среднее время по категориям.

Эту информацию можно использовать, чтобы понимать, какие виды работ (какие навыки саморедактуры) нужно улучшать в первую очередь.

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

  1. после начала сеанса и до начала работы над первым пунктом действия,
  2. между двумя пунктами действия и
  3. после завершения крайнего пункта действия и до завершения сеанса.

Сортивовка перечня дел

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

4-го июля 1945 года отцы основатели, Джон Уилкс Бут и Джессе Вентура отмечали годовщину высадки на Луну. Царила дружеская атмосфера.

# TODO, ВЕСЕЛЫЙ-КАРЛСОН-25: Что-то не так со временем. #time

# TODO, ХИППУЮЩИЙ-ДОСТОЕВСКИЙ-35: "Царила атмосфера" попахивает канцеляритом. #ex

# TODO, ЛИКУЮЩИЙ-ГОГОЛЬ-81: "Джессе Вентура" или "Джесси Вентура"? #g

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

Все это можно записать в отдельный файл и скормить тудупу.

{:action-items-sort-order    [
  :first "ps"
  :then  "baustelle"
  :then  "full-rewrite"
  :then  "fp"
  :then  "cleanup"
  :then  "plan"
  :then  "ns"
  :then  "b"
  :then  "s-is"
  :then  "s-5c"

Это значит:

  1. Сначала надо делать пункты действий категории ps,
  2. потом -- категории baustelle,
  3. потом -- full-rewrite и т. д.

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

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

Выученные уроки

Но от измерения и составления перечня дел непрерывное улучшение не возьмется.

Если в рамках работы над пунктом действия той или иной категории я нашел что-то, что мне может пригодиться, то это надо где-то записать. Причем так, чтобы я вспомнил об этом "выученном уроке" (lesson learned), когда подобная ситуация (пункт действия той же категории) возникнет еще раз.

Для этого все материалы такого рода я фиксирую в файле вот так:

[:for-category "loc"
:add-this-hint [

"1. Determine the type of location."
""
"2. Determine the mood."
""
"3. Determine the time of day."
""
"4. Ask ChatGPT for ideas on how to describe that location."
""
...

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

В автоматическом перечне дел этот текст выводится перед всеми пунктами действия этой категории.

Неудачный опыт с process mining

Есть такое ПО, которое берет событийный след того или иного процесса и выдает блок-схему (BPMN), которая описывает этот процесс.

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

Выявление усталости

Еще была идея выявлять, когда я плохо работаю из-за усталости.

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

В итоге ограничился низкотехнологическим решением: В одном из файлов стал фиксировать зевки.

В итоге заметил, что они начинаются около 07:30. Отсюда закономерный вывод -- примерно в это время выпить кофе и таким образом компенсировать усталость.

Режимы управления психикой

Глядя на эти замеры пришла мысль о том, что есть три режима управления психикой:

  1. Линейный
  2. Нелинейный
  3. Неопределенный

Линейный режим -- это когда есть четкая последовательность шагов и нужно выполнить их максимально быстро и точно. Это понятные в целом дела.

Линейный этот режим потому, что чем больше времени и внимание уделяется этому делу, тем быстрее оно будет сделано (время, помноженное на мыслетопливо обратно пропорционально трудозатратам).

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

Пример линейного процесса из ИТ: Устранение тривиальных багов:

  1. Взять логи.
  2. Найти место с ошибкой (стек-трейс).
  3. Дальше несколько вариантов:

3.1. Сказать эксплуантам, что код правильный, а это у них руки кривые (неправильная конфигурация, или так попросили сделать).
3.2. Исправить ошибку.

Пример линейных процессов в саморедактуре:

  1. Спросить ChatGPT, нет ли ошибок с грамматикой (разбить весь текст главы, скормить ИИ и потом понаделать пунктов действий для ошибок).

  2. Сокращение текста (удаление слов из предложений, без которых и так все понятно).

Нелинейный режим управления психикой -- это когда на производительность нельзя повлиять напрямую.

Примеры таких процессов из других областей:

  1. Природа преобразует семена в колосья, но фермер не может напрямую управлять этим процессом. Может управлять только опосредованно -- через удобрения, полив, пропалывание сорняков и т. п.

  2. Также невозможно напрямую управлять беременностью.

Применительно к саморедактуре полезна метафора Выготского:

Облака мыслей, гонимые ветрами мотивов, проливаются дождём слов.

Ключевой момент: Вся эта погода происходит автоматически. Напрямую на этот процесс повлиять нельзя.

Но можно

  1. повлиять на облака мыслей (скормить психике материалы, могут ее побудить что-то сделать),
  2. усилить ветра мотивов (накрутить себя и вспомнить, ради чего стольким пожертвовано) и
  3. поставить ведерко, чтобы не потерять ни одной капли дождя слов (т. е. всегда иметь при себе блокнот и пользоваться редактором, в котором легко фиксировать эти дожди слов, в т. ч. по кусочкам).

В таком режиме психика работает, когда надо сделать что-то более-менее творческое, где нет однозначных ответов.

Примеры нелинейных процессов в саморедактуре:

  1. Создание образов. Заменить "Вошла очень красивая женщина" на нечто такое, где красота не будет упомянута, но читатель сам все поймет. Пример: Метод 25. Это когда нужно записать 25 вариантов решения той или иной задачи (например, 25 вариантов показать, что женщина очень красивая так, чтобы это было оригинально). Первые варианты будут штампами. Чем ближе к 25-му варианту, тем выше вероятность придумать что-то оригинальное.

  2. Преобразование скучных сцен в менее скучные. Было: "Герой выпил кофе." Стало: "Герой выпил кофе, черный как душа узкоконечника."

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

  4. Все ситуации, когда видно, что текст плох и нет явных идей, как его улучшить.

Когда психика ходит туда, не знаю куда в поисках того, не знаю, чего, могут помочь всякие "удобрения" вроде прогулок, рассматривания котиков и других непродуктивных вещей. В особо тяжелых случаях мне помогала пешая прогулка на 8-10 километров. Это двигает большинство задач с мертвой точки.

Трудозатраты на выполнение нелинейных задач не связаны напрямую с временем и мыслетопливом.

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

С другой стороны природный способ мышления, про который говорил Выготский, тоже нужно изучать. Облака и ветра -- это замечательно, но предполагаю, что в психике есть еще много разных элементов (огнедышащие драконы, штучки, связанные с сексуальностью), которые, наверное, можно использовать для повышения производительности.

5 комментариев 👇
Денис Белоцерковский Руководитель разработки 13 сентября 2023

Дмитрий, подскажите, пожалуйста, а как выглядит процесс получения "first shitty draft"? То есть у вас есть какой-то план сюжета или Вы просто пишите пока есть вдохновение?
В списке проблем, мне как человеку далекому от творчества соседства "непреднамеренные логические нестыковки" и "описание того, что можно и нужно показать" несколько смущает?
Возможно, если Вы будите редактировать не все произведение в конце, а работать по главам это ускорит Вас...

  Развернуть 1 комментарий

@dlbelotserkovsky, Перед написанием first shitty draft есть большой этап т. н. структурных работ. Его главный результат -- перечень сцен, на основе которых пишутся главы.

То есть у вас есть какой-то план сюжета или Вы просто пишите пока есть вдохновение?

План есть, см. выше.

В списке проблем, мне как человеку далекому от творчества соседства "непреднамеренные логические нестыковки" и "описание того, что можно и нужно показать" несколько смущает

Пример логической нестыковки: "Редкая птица долетит до середины Днепра."

Согласно Яндексу, максимальная ширина этой реки -- 5 км. Ряд птиц летают на расстояния в тысячи километров. Так что 5 километров одолеть должны.

Утки и лебеди вроде бы не такие уж редкие птицы.

Поэтому здесь логическая нестыковка. Если это произошло по недочету, то это ошибка. Если же классик специально это сказал, чтобы мы гадали, тогда это не баг, а фича.

В целом: Эти нестыковки появляются потому, что невозможно написать текст хорошо с первого раза. Writing is rewriting. Поэтому

  1. сначала выражаю мысль как могу,
  2. потом проверяю текст на наличие дефектов,
  3. исправляю их и
  4. повторяю шаги 2-3 до тех пор, пока текст не окажется достаточно хорошим.
  Развернуть 1 комментарий

@dpisarenko,
На ум почему-то приходит "Цель" Голдратт про мелкие партии и цености за ними.

Но Вы пробовали все проверки и вычетки делать не по оконачанию произведения, а позавершению глав?

То есть попробовать использовать один из подходов"гибкой методологии разработки". Ставить себе спринт для главы. И ритмично ее выполнять. Все что вы описали только цикл уменьшить.

И про реализм описания. А точно надо настолько много усилий тратить для этого? Возможно читательский опыт будет не сильно увеличен, а Вы потратите сил поменьше. Я про пресловутый "value" от "реализации фичи".

Не сочтите за грубость, пожалуйста.

  Развернуть 1 комментарий

@dlbelotserkovsky, "Цель" Голдратта я читал.

Но Вы пробовали все проверки и вычетки делать не по
оконачанию произведения, а позавершению глав?

Если я правильно понимаю, Вы имеете в виду вот это:

Во время написания первого черновика

  1. сначала писать текст главы и
  2. потом сразу его редактировать.

Я это еще не пробовал. Возможно, попробую в рамках следующего произведения.

За эту рекомендацию спасибо.

Один из доводов против этого заключается в частом переключении режимов:

  1. Когда пишется глава первого черновика надо быть максимально творческим (режим писателя).
  2. Во время редактуры нужно быть максимально придирчивым, в т. ч. к "мелочам" (режим критика).

Одновременно эти два режима работать не могут (это вроде бы две разных части мозга). Лично у меня бывают проблемы с переключением.

И про реализм описания. А точно надо настолько много усилий тратить для этого?

Точного ответа я не дам, потому что пока нет опытных данных.

Причины, по которым я считаю, что тщательная саморедактура оправдана:

  1. Это одно из ключевых конкурентных преимуществ. Редактура может сделать текст сильно более привлекательным. Поэтому обогнать других пишущих можно в т. ч. за счет тщательности редактуры.

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

Поэтому нужно использовать абсолютно все конкурентные преимущества, в т. ч. личные качества вроде въедливости и тщательности.

  1. Асимметричная награда за качество. Предположим, что разработчик какого-то корпоративного ПО улучшил его работу на 1%. Такое улучшение никто не заметит, потому что потребителей этого ПО относительно мало (сотни). Да и конкурентов мало и борются они друг с другом не качеством ПО.

А теперь представьте себе, что певец (футболист, комик), выступающий на Ютубе улучшил свои навыки на 1%.

Во втором случае есть шанс, что за 1% лучшего качества этот певец получит более 1% выгоды из-за того, что потенциальная аудитория большая.

Т. е. сначала его смотрели 100.000 человек, потом он улучшил навыки пения на 1% и после этого его стали смотреть 150.000 человек. А если этот 1% навыков был последней каплей, которая отделяла любителя от профессионала, то там выгода может быть еще выше.

Писатель ближе к певцу, чем к разработчику корпоративного ПО.

  1. Выработка навыков. Это первый роман, но не последний. Конечный результат -- это не только достаточно чистый текст, но и улучшенные навыки саморедактуры. Для "локальной" цели (доделать текст) это может быть и неоправдано. А для "глобальной" (научиться писать художественные тексты более-менее предсказуемо и жить на гонорары), по-моему, имеет смысл делать все тщательно.

Здесь уместна аналогия с разработкой ПО: Если человек не будет писать тесты (например) из-за лени, то сеньором станет позже. А если немного помучается, то так привыкнет, что будет делать это с легкостью.

Не сочтите за грубость, пожалуйста.

Все замечательно. Спасибо за идею по изменению процесса.

  Развернуть 1 комментарий
Антон Жулитов Разработка ПО, руководитель. 14 сентября 2023

Выявление усталости

Можно пользоваться Welltory

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб