Почему я (всё ещё) пишу код?

Рассказывает Ка Вай Чёнг, разработчик DoneDone и автор The Developer’s Code


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

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

Со временем кодить я стал лучше. Отладку я делал уже не наобум, а по чётким алгоритмам. Любые неполадки устранялись с нескольких попыток, и никакого волшебства в простой работающей программе я уже не чувствовал.

С этих пор я стал писать код главным образом во имя его красоты. Я проводил часы перед экраном, переписывая работающий код правильным образом. После написания кода я читал статьи, из которых узнавал о новых паттернах и практиках, что заставляло сразу же жалеть меня о том, как я написал свой код. И я садился писать новый, с использованием всех тех практик, о которых я вычитал. Так повторялось снова и снова.

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

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

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

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

Но то, что заставляет меня программировать сейчас, есть нечто совершенно иное.

Сейчас я уже не пишу много нового кода. Фактически, я уже несколько лет не начинал новых проектов. Я работаю в основном над DoneDone, приложением, история которого начинается в далёком 2008. Последний раз оно серьёзно переписывалось в 2011, так что большей части кода уже не один год в любом случае.

DoneDone работает, и, как мне кажется, работает хорошо. Есть ли в нём красиво написанные места? Безусловно. Но я продолжаю работать над DoneDone для того, чтобы помочь людям. Для того, чтобы работа людей была чуточку эффективнее, а сами люди — чуточку радостнее. Для того, чтобы люди выполняли свои задачи быстрее с помощью программ, а сэкономленное время могли потратить на что-то другое.

Главная моя мотивация теперь — помощь другим людям. Это значит, что теперь я чётче представляю, что делать дальше. Я выбираю для себя те задачи, которые быстрее других могут оказать помощь людям, и большую помощь. Небольшая задача, которая принесёт пользу всем пользователям для меня приоритетнее большой, но необходимой лишь для немногих. Что интереснее, пользователи и инвесторы вкладываются в такие проекты активнее, ваше желание помочь им заметно.

Это не значит, что красота кода для меня больше ничего не значит. Конечно, она важна. Но дело теперь в другом. Раньше я писал «красивый код», чтобы удовлетворить лишь свои желания. Теперь он необходим, чтобы другие люди, которые прочитают этот код (мои коллеги, будущие наследники, или я сам через пару лет) не испытывали неудобств от того, как я его написал.

Заботиться о своём коде — одно дело. Заботиться о коде целой команды — несколько другое. Члены команды помогают друг другу, и исправляют ошибки друг друга. — Роберт «Uncle Bob» Мартин

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

В моей карьере программиста был период, когда искусство программирования для меня было важнее цели программирования. Я рад, что в моей жизни был такой период, потому что он помог мне стать более профессиональным в своём деле. Но мои приоритеты изменились. Сегодня я пишу код в первую очередь и главным образом для того, чтобы помогать людям.

Источник: getdonedone.com