lonely
«Как компания позиционирует себя?»

Путь разработчика. Часть 0х3. Думай где ошибки проектирования

Аутсорс в России
28 июня, 2015
4 минут(ы) чтения

Если контент не отображается, включите VPN.

Мы пишем для людей которые привыкли прощать ошибки. Наши ошибки становится фичами, а неправильно спроектированная система начинает решать совсем другие задачи. Лишь когда все улетело к ху*м, приходит осознание проделанной ошибки. Теперь я знаю, прежде чем прыгать выше своей головы, нужно сперва проверить высоту потолка… Но об этом позже. Пока я ломал глаза читая киндл, искривлял позвонки сидя за ноутом, разрушал психику в жёстком одиночестве суток, я всё больше сливался с проектом, строка за строкой рос вместе с ним, становился, таким образом, проектом самого себя, но, как говорил мой шеф, делал это как «Художник, который забивает гвозди». Я продолжал записывать кровавые биты в память, вслух матерясь, когда что-то идёт не так, и всё меньше и меньше спал… Постоянный рефакторинг с ловлей багов и внедрением фич во всё усложняющую абстракцию не приближает, а наоборот отдаляет от конечной цели. Я никак не мог найти разумный план, вдохновение вместе со временем уходило всё дальше и дальше от меня.

Когда все сломалось, прочти инструкции. Когда ты проходишь долгий пусть самостоятельной разработки, общие очертания приобретают некую ясность, которую остаётся лишь допилить напильником. Это профессиональное взросление: от hello_world-скриптёра и monkey-кодировщика до программиста-архитектора. Таким образом, мысли скапливаются, выражаются в понятные мозгом алгоритмы и структуры, и, наконец, сливаясь в одну конечную точку — конечную цель любого мастера — готовый продукт. Однако, точка продолжает двигаться, пока двигается наблюдатель, а продукт перестав быть целью, уступает место менее важным вещам.

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

Что является важным для старта? Вау-идея, грамотная реализация, удачное время, многомиллионное продвижение, мощная команда?.. Нет! Старты не для продажи, не для покупки нового X5, старт — это вызов, борьба с главным противником в тяжелейших попытках доказать всем что один ты достоин награды. Победа над противником — вот что действительно важно. Раз за разом быть первым, оставляя конкурентов далеко за финишной чертой. Это стремление самое сильное, именно оно лежит в духе бизнеса. Пока существует человеческая природа будут продолжать действовать человеческие законы. Что губит человека — губит дело, что поднимает — поднимает дело. Важен именно такой человек.

Ограничившись малым я проверяю себя в возможности в одиночку создать с нуля приложение, пройдя весь цикл разработки с 0% до 100%. Оставив позади Москву я падаю вниз, за тысячи километров на юг. В свой родной город — Пятигорск. Жизнь без суеты большого города стремительно замедляется. У меня появляется больше времени, которое я решаю потратить на окончание «старых» дел: досмотреть TOP-100 лучших фильмов всех времён, удалить себя из забирающих время и нервы социальных сетей, закончить начатые статьи и прочитать книги. Я меняю ограниченное время на обучение, остаюсь верен своим стимулам. В конце концов, правильный старт решает финиш…

Чтобы достичь больших высот, прежде нужно спустится с покоренных

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

Разработка не является предметом научной работы или написанием докторской; разработка — это приобретаемый навык, ремесло, которое оттачивается каждодневным трудом и постоянным упорством. Когда у тебя не получается писать код, писать требования — пробуй писать статьи, стихи, книги… Код неограничен также как неограниченна математика, ограничены только наша скорость и скорость наших машин. Быть разработчиком сегодня -значит проходить через все структуры безумия и массивы хаоса, пробираться через очереди операций, вооруженным лишь краткими указателями о возможных исключительных ситуаций, чтобы в конце концов найти ошибку в незамеченно нажатой вечером клавише бэкспейс. Более крутые найдут ошибку в чужой мажорной библиотеке, а самые крутые, которых я не встречал, — найдут ошибку уровням далеко глубже: в компиляторах, состояниях среды и, возможно, в самой физике! Но надо всегда помнить — никто не знает как сделать лучше; лучший — знает лишь меру самому себе.

Проведение подсказывает нам ветер нашей судьбы, но лишь мы вправе принять ее

Проходит месяц упоротого кодинга. Я плачу $25, публикую на маркете свою гейму. Ссылки на альтернативные магазины и копипаст описания на различных профильных ресурсах приносят за пять дней одно (1!) скачивание. Так я понимаю, любую идею нельзя считать успешной даже с реализацией. Любую реализацию успешной делают только продажи.

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

Месяцы идут, деньги заканчиваются. Постоянного заработка нет. Главное не остывать, где бы ты ни был. Принимаю следующий вызов — найти удалёнку. Хорошую, годную удалёнку найти нереально сложно. Заказы на фриланс-сайтах представляют дикий треш, в худшем смысле этого слова. Проходит март, приходит середина апреля. Я нахожу игровую контору, где по контракту требуют сделать аналог игры «1+2=3» на неизвестном мне фреймворке Cocos2d-JS. Я трачу субботу на изучение особенностей движка и ещё воскресный день на реализацию MVP. Лишь благодаря тому, что прежде я игрался с PIXI и Crafty, я получаю контракт, подписываю его и продолжаю пилить свой первый фриланс.

Проходит время. Сроки контракта передвигаются, а я не получаю никакого «бабла». Переговоры на ломаном английском сильно прокачивают меня внутренне. Неверно оценив объёмы работ я продолжаю пилить, всё не решаясь запросить больше «бабла». Наконец, деньги заканчиваются и я резонно решаю искать фултайм с релокацией и обновляю резюме на хантинг-сайтах. Ради эксперимента оставляю родной город в качестве своего места жительства. После обновления, спустя неделю, мне ясно видится, что сегодняшние рашкинские работодатели не готовы предлагать нормальный оффер с релокацией. Прийти к успеху в Рашке — значит добиться своего своим холодным потом и быстрыми уверенными действиями. Мне попадается несколько годных контор — одна с удалёнкой, на которую я не могу попасть из-за отсутствия MacBook’a и скиллов по Sketch’у. Другая — типичной паршивости средняя контора, созданная скорее для отмывания денег и мозгов. Наконец, на третьей начинается невразумительное скайп интервью, с моим постоянно падающим роутером, и оно, каким-то фигом, становится решающим.

Человек уникален. Он способен совершать поступки которые для него абсолютно бесполезны. Тратить время на вещи не имеющие смысла. И продолжать осуществлять свою мечту, зная что она уже никогда не сделает его счастливее.

Спустя неделю я прибываю покорять столицу, уже в третий раз. Множество рас, смешавшихся в спешащей суете, встречают меня в растущего вверх городе. Все они хотят быть хорошо накормленными, те кто здорово отъелся, твердят что надо сваливать; сами оставаясь здесь. Они только и умеют говорить… Сравнивая Московию с Петроградом я напишу следующее: Москва и Питер — два орла холодной России, два непохожих брата — один наглый, другой культурный, богатый и бедный, высокий и низкий, дерзкий и забитый, старый и молодой, строгий и неформальный. В остальном же — почти одинаковой просторности чистые центральные улицы, грязные реки, заплёванные асфальты, зассанные бомжами урны возле скамеек. Тесный, закрытый и хитрый — мой сложившийся образ «Масквы», где сборище талантливых людей с трудом выхватывают свои права.

Продолжение следует…

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

way 2
Предыдущая статья

Путь разработчика. Часть 0х2. Шаг в стартап

way 4
Следующая статья

Путь разработчика. Часть 0х4. Желание или рост в сторону