Чему разработчики могут научиться у писателей

«Идеи просты, реализация - трудна». Звучит знакомо?

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

Так много разработчиков побочных проектов попадают в кодовый эквивалент блока писателя. У нас есть идея, мы знаем, как писать код, но, похоже, мы не можем развивать наше приложение. Несопоставимые фрагменты кода и документы Word, заполненные списками функций, томятся в папках, называемых «Идеи» или «Проекты». Они сидят здесь как постоянное напоминание о нашей неспособности видеть вещи насквозь, постоянно сигнализируя нам, что мы не один из этих людей; мы не Марк Цукерберг, Джек Дорси или Стюарт Баттерфилд.

Американская писательница Энн Ламотт написала замечательную книгу под названием Птица за птицей. Подзаголовок Некоторые инструкции по написанию и жизни предлагает жемчужины мудрости, которые подходят как индивидуальному разработчику, создающему приложение, так и писателю, начинающему работу над романом. Вот два ее самых полезных совета: короткие задания и дерьмовые черновики.

Короткие задания

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

Когда вы начинаете, есть множество вещей, о которых вы не знаете, проблемы, которые необходимо решить, но вы даже не начали их исследовать. Вам нужно будет работать с технологиями, с которыми вы не знакомы, создавать слои поверх слоев в своем коде, взаимодействовать со сторонними службами, которые, как вы знаете, будут содержать ошибки или трудны для понимания. У вас будет список функций размером с вашу руку, видение в голове отточенного пользовательского интерфейса и страх выпустить что-то нестандартное, из-за чего вас будут высмеивать в Hacker News.

Энн Ламотт советует писателям, оказавшимся в подобной ситуации, сосредоточиться на чем-то маленьком, когда они садятся за клавиатуру. Абзац, где один персонаж встречается с другим, обстановка, представляющая небольшой город. Больше не надо. Забудьте о романе, грандиозных темах, огромном объеме того, чего вы хотите достичь. Сегодня работа писателя - написать этот абзац.

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

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

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

Дерьмовые первые черновики

Известный и опубликованный автор представляет миру изображение, почти напоминающее открытку. Часто это образ великого писателя, который пишет поэтическую или плавную прозу, очаровательных персонажей и увлекательные романы. Но это редко начинается так. Не для Хемингуэя, не для Джона Гришема, не для Дж. К. Роулинг. Сначала был дерьмовый черновик. Затем второй черновик, который был лучше, но еще не совсем готов, и так далее, пока на полках местного книжного магазина не появится законченный роман.

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

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

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

Facebook, Twitter и Slack не были созданы в одночасье. Как бы безупречно они ни выглядели в расцвете сил, первый черновик был дерьмовый. Если ваши ранние версии беспорядочные, ничего страшного. Вы можете навести порядок позже. И кто знает, внутри беспорядка вы можете обнаружить душу своего приложения, то особенное, что делает его по-настоящему уникальным и вашим.