Работа программиста — это борьба со сложностью. Один из популярных вопросов про облачную телефонию — «А зачем ее использовать, если можно самим взять Asterisk, вжух, и все сделать?». Любопытная деталь из практики: много тех, кто приходит к нам после Asterisk. То есть сперва они приходят к нам, смотрят, что платформа стоит денег, говорят «да сами все сделаем» и уходят. Через полгода возвращаются со словами «Мы поняли, что хотим заниматься своим бизнесом, а не Asterisk». Как программисты, мы очень любим бороться со сложностью: заменять Asterisk на тулбокс с JavaScript полуфабрикатами, использовать облачные сервисы для работы с кодом и задачами, делить все на небольшие части и экспериментировать с версиями. Как оказалось, не только мы это любим. В новогодние праздники я совершенно случайно прочитала о том, что у Толкиена тоже был свой Git. Под катом — адаптированный для Хабра перевод.
Случилось ли у вас так, что при чтении книги вы не могли понять, как живой человек, вообще, может написать что-то настолько гениальное? Для меня такой книгой был «Властелин Колец». Когда я читал её, то понимал, что даже за сотню жизней не смогу написать книгу настолько богатую деталями, настолько глубокую и прекрасную. С тех пор я узнал немного о создании «Властелина», и эти знания позволили мне пересмотреть первое впечатление. Но самое удивительное, как эти знания пересеклись с тем, что я много лет назад узнал о написании компьютерных программ.
Меня всегда поражало, как разработка программы может начаться с одного файла, и, после многих лет работы, превратиться в настолько огромную систему, что один человек не будет в состоянии даже приблизиться к её пониманию. Если попробовать повторить конечный результат «с чистого листа», то у вас, скорее всего, это не получится. Оно так устроено. Софт зависит от того пути, по которому проходила разработка.
Много раз я лично участвовал в этой эволюции одноклеточного софта до «Кембрийского взрыва». Видел это своими глазами. Но что я не видел — что это насколько похоже на написание книг!
Создание хорошего софта – это эволюция через итерации с целью выживания. И точно так же создаются хорошие истории. Их объединяет то, что они создаются нашим разумом.
Разуму нужен объект для сосредоточения. Каждое промежуточное состояние проекта является таким объектом. Соединение таких состояний вдохновляет наш разум создать что-нибудь действительно выдающееся. Что-нибудь, что будет нести в себе едва заметный след того, что было в самом начале.
Давайте я расскажу, как так получилось, что «Властелин Колец» является хорошим примером такого процесса…
Изначально «Властелин Колец» задумывался как продолжение «Хоббита». Издатель хотел заработать еще больше денег на популярности книги с помощью сиквела. А «Сильмариллион» таким сиквелом не являлся. Так что Профессор сел за работу с целью написать продолжение. И это было ужасно.
Первая версия названия была не «Властелин колец», а «Возвращение тени». Это все еще была книга для детей. Фродо звали Бинго. Странник был хоббитом по имени Троттер. Бильбо собирался жениться. А кольцо все еще было просто кольцом. У истории не было явно выраженного мотива и вектора развития. «Что еще могут делать хоббиты?» спрашивал себя Толкиен. Идея хоббитов себя исчерпала. Тот «Властелин колец», которого мы все любим, был еще очень и очень далеко.
Черновик за черновиком Толкиен пробовал и искал направление для развития истории. Все завертелось, когда он создал сцену с Черным Всадником. Вначале Черный Всадник был Белым Всадником. Это был Гендальф, прибывший поговорить с Бинго. Но вдруг случилось озарение. Вибрирующая группа нейронов сговорилась, и цвет лошади поменялся с белого на черный, а Гендальф трансформировался в незнакомца, закутанного в огромный черный плащ и капюшон. Новый каркас истории (английское framework) начал создавать сам себя.
Откуда мы все это знаем? Благодаря удачному стечению обстоятельств и Кристоферу Толкиену у нас есть история изменений, которые его отец последовательно применял к «Властелину Колец». Есть великолепное видео с Др. Кори Олсен, где он за руку ведет нас по тому, что, по сути, является Git логом «Властелина Колец». Это магия от настоящего знатока творчества Толкиена и талантливого аналитика.
Мы видим, как одна за другой в тексте формулируются идеи книги. Это был постоянный процесс рефакторинга и разработки новых фичей. Какие-то из этих идей сохранились с самой первой версии и до финального релиза. Многие были убраны. Многие изменились. Большинство диалогов было сохранено, но передано другим персонажам, которые говорили их совсем в других обстоятельствах.
Читая этот лог, я испытывал то же чувство, которое испытываю при создании программ. Только разница была в том, что в результате мы получили не работающую программу, а одну из самых сильных историй всех времен.
Я вынес для себя подтверждение старой идеи: любая успешная большая система начинается с успешной маленькой системы.
Это относится и к писателям, и к программистам. Ваша история или программа не обязана быть потрясающей с самого начала. Эволюция и развитие сделает её такой.
В 2017 году этот тот урок, который мне дал «Властелин Колец».
Случилось ли у вас так, что при чтении книги вы не могли понять, как живой человек, вообще, может написать что-то настолько гениальное? Для меня такой книгой был «Властелин Колец». Когда я читал её, то понимал, что даже за сотню жизней не смогу написать книгу настолько богатую деталями, настолько глубокую и прекрасную. С тех пор я узнал немного о создании «Властелина», и эти знания позволили мне пересмотреть первое впечатление. Но самое удивительное, как эти знания пересеклись с тем, что я много лет назад узнал о написании компьютерных программ.
Меня всегда поражало, как разработка программы может начаться с одного файла, и, после многих лет работы, превратиться в настолько огромную систему, что один человек не будет в состоянии даже приблизиться к её пониманию. Если попробовать повторить конечный результат «с чистого листа», то у вас, скорее всего, это не получится. Оно так устроено. Софт зависит от того пути, по которому проходила разработка.
Много раз я лично участвовал в этой эволюции одноклеточного софта до «Кембрийского взрыва». Видел это своими глазами. Но что я не видел — что это насколько похоже на написание книг!
Создание хорошего софта – это эволюция через итерации с целью выживания. И точно так же создаются хорошие истории. Их объединяет то, что они создаются нашим разумом.
Разуму нужен объект для сосредоточения. Каждое промежуточное состояние проекта является таким объектом. Соединение таких состояний вдохновляет наш разум создать что-нибудь действительно выдающееся. Что-нибудь, что будет нести в себе едва заметный след того, что было в самом начале.
Давайте я расскажу, как так получилось, что «Властелин Колец» является хорошим примером такого процесса…
Изначально «Властелин Колец» задумывался как продолжение «Хоббита». Издатель хотел заработать еще больше денег на популярности книги с помощью сиквела. А «Сильмариллион» таким сиквелом не являлся. Так что Профессор сел за работу с целью написать продолжение. И это было ужасно.
Первая версия названия была не «Властелин колец», а «Возвращение тени». Это все еще была книга для детей. Фродо звали Бинго. Странник был хоббитом по имени Троттер. Бильбо собирался жениться. А кольцо все еще было просто кольцом. У истории не было явно выраженного мотива и вектора развития. «Что еще могут делать хоббиты?» спрашивал себя Толкиен. Идея хоббитов себя исчерпала. Тот «Властелин колец», которого мы все любим, был еще очень и очень далеко.
Черновик за черновиком Толкиен пробовал и искал направление для развития истории. Все завертелось, когда он создал сцену с Черным Всадником. Вначале Черный Всадник был Белым Всадником. Это был Гендальф, прибывший поговорить с Бинго. Но вдруг случилось озарение. Вибрирующая группа нейронов сговорилась, и цвет лошади поменялся с белого на черный, а Гендальф трансформировался в незнакомца, закутанного в огромный черный плащ и капюшон. Новый каркас истории (английское framework) начал создавать сам себя.
Откуда мы все это знаем? Благодаря удачному стечению обстоятельств и Кристоферу Толкиену у нас есть история изменений, которые его отец последовательно применял к «Властелину Колец». Есть великолепное видео с Др. Кори Олсен, где он за руку ведет нас по тому, что, по сути, является Git логом «Властелина Колец». Это магия от настоящего знатока творчества Толкиена и талантливого аналитика.
Мы видим, как одна за другой в тексте формулируются идеи книги. Это был постоянный процесс рефакторинга и разработки новых фичей. Какие-то из этих идей сохранились с самой первой версии и до финального релиза. Многие были убраны. Многие изменились. Большинство диалогов было сохранено, но передано другим персонажам, которые говорили их совсем в других обстоятельствах.
Читая этот лог, я испытывал то же чувство, которое испытываю при создании программ. Только разница была в том, что в результате мы получили не работающую программу, а одну из самых сильных историй всех времен.
Я вынес для себя подтверждение старой идеи: любая успешная большая система начинается с успешной маленькой системы.
Это относится и к писателям, и к программистам. Ваша история или программа не обязана быть потрясающей с самого начала. Эволюция и развитие сделает её такой.
В 2017 году этот тот урок, который мне дал «Властелин Колец».