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

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

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

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

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

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

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

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

Обновление (28.04.16)

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

Я по-прежнему самый занятой в команде, так как бизнес-модель быстро меняется, и текущий бэкенд должен оставаться в актуальном состоянии.

Просто хотел, чтобы вы все знали, особенно те, у кого были плохие надежды в начале.

Перейти корабль как можно скорее. Стартап, который полагается только на результат неопытного разработчика, обречен на провал. Даже если вы получаете «божественное озарение» и получаете 20 с лишним лет опыта за одну ночь, скорее всего, ваш босс урезает и другие жизненно важные углы.
@ SJuan76 Легче сказать, чем сделать. Я также должен признать, что рабочая среда по сравнению с другими компаниями моей страны превосходна, и я должен также сказать, что для 19 лет мне очень повезло найти такую ​​работу. Если бы я прыгнул с корабля , то на какое-то время оказался бы без работы в своей стране .
Jump the ship означает «искать другую работу». Если альтернативой является безработица, то лучше остаться хотя бы ради опыта. Но перспективы стартапа как вы его описываете плохие (и вообще 90% стартапов обречены) достаточно заняться интенсивным поиском, как будто вы уже безработный (это просто вопрос времени, а не из-за по вашей вине).
Вдобавок к тому, что сказал SJuan76, я бы никогда не рекомендовал должность, предполагающую быть единственным разработчиком, в качестве вашей первой работы в качестве разработчика. Вам будет намного лучше, если вы сможете учиться у других, более опытных разработчиков.
«Я не могу учиться в рабочее время» — одна из вещей, которую вы обнаружите по мере приобретения опыта, заключается в том, что «учеба» (а иногда и исследование) в рабочее время часто является одной из самых важных вещей, которые вы можете делать. Гораздо лучше для вас потратить немного времени сейчас, чтобы получить знания, которые вы будете использовать в течение многих лет. Это приведет к лучшему продукту и, в конечном итоге, увеличит скорость вашей разработки.
@ChrisHayes Мне бы очень хотелось это сделать, но, как я уже упоминал в вопросе, в расписании очень жесткие сроки, и у меня просто нет времени учиться и работать одновременно!
@GiamPy Изучение вещей, связанных с вашей профессией, в свободное время, которые вы находите интересными, может принести пользу. Это может привести к новым возможностям в вашей нынешней компании, а также в новых компаниях. Постарайтесь отделить то, что требуется вашей работой, от того, что интересно и делается по вашей собственной инициативе , при определении границ вашей трудовой жизни.
Я в очень похожей ситуации. В первую очередь самоучка, я работаю в небольшой электротехнической компании в качестве одного из двух разработчиков. Другой — это тот человек, которого вы избегаете, что бы ни случилось. Так что практически, я сам по себе. Я как-то "выжил" уже 2 года, и это было ужасно. Убирайтесь оттуда, ищите работу, где рядом с вами есть другие разработчики, чтобы учиться у них. Быть на 100% ответственным за программное обеспечение без многолетнего опыта будет сильно напрягать, не заставит учиться быстрее и вообще вредно для всех сторон.

Ответы (4)

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

Что вы МОЖЕТЕ сделать, так это сообщить владельцам бизнеса, что вы чувствуете, что не можете уложиться в ожидаемые сроки из-за объема работы, которую они требуют от вас.

Затем они могут:

  • Установите приоритеты задач, которые у них есть (уменьшите объем) или раздвиньте временные рамки, чтобы более реалистично отразить объем усилий; или же
  • Добавьте более опытных ресурсов, чтобы разделить нагрузку как по разработке, так и по дизайну.

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

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

Хороший совет. Я хотел предложить изменение, that they are requiring you do do.но оно слишком маленькое

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

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

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

Теперь: по моему опыту, большинство менеджеров понимают, что ваше время приходит с компромиссами. Другими словами, если вы тратите время на одну задачу, вы не тратите это время на другую задачу. Вы, кажется, характеризуете свою текущую рабочую нагрузку как:

  1. Производственная поддержка («мы только что запустили в производство наш новый внутренний веб-сайт, и мы постоянно работаем над ошибками, связанными с ним»); а также
  2. Создание двух сайтов в сжатые сроки («Мне дали задание сделать два сайта за двадцать один день»)

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

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

В более практическом смысле я бы рекомендовал:

Организуйте свои мысли и задачи.

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

Согласуйте бизнес-приоритеты для ваших задач

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

  1. Какие вопросы поддержки производства имеют более высокий приоритет, чем два веб-сайта, а какие вопросы поддержки производства могут подождать? Это помогает, если вы можете помочь определить временные обходные пути для более мелких проблем. Также полезно, если у вас есть кто-то еще в бизнесе, который может сортировать проблемы поддержки производства по степени серьезности, чтобы вам не приходилось делать это самостоятельно.
  2. Какой из двух сайтов важнее? Да, да, они оба важны. Но сделай вид, что можно сделать только один. Что бы это было?

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

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

Держите бизнес в курсе, по крайней мере, ежедневно о вашем прогрессе

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

Если вы ждете ответа на вопрос, работайте над своим следующим приоритетом.

Таким образом, вы продолжаете прогрессировать.

Не превышайте свой уровень продуктивности

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

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

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

У вас есть два варианта

Вариант 1: Улучшение организации

  • Внедрите Agile-управление проектами и постарайтесь оптимизировать реализацию проектов.

Вариант 2: присоединиться к более авторитетной организации

Если вы единственный разработчик, вы рискуете следующим:

  • Плохое развитие карьеры и развитие вредных привычек, поскольку нет никого, кто мог бы направить вас
  • Поскольку это стартап, вы, вероятно, заработаете ниже рыночной ставки. Многие стартапы пытаются нанять выпускников или ранее, так как это дешево. Объедините это с пунктом 1, и вам будет сложно получить хорошо оплачиваемую должность разработчика.
  • Экстремальное давление (в конце концов, вы единственный разработчик)
  • уступают тем, кто работал со старшими разработчиками в организациях, где в их распоряжении гораздо больше структур с точки зрения кросс-функциональной команды. Это может не повлиять на вас сейчас, но это повлияет на вас, когда вы будете двигаться дальше и работать в организации, в которой есть процессы. Так как они будут проверять вас, чтобы попытаться понять, как вы можете работать в команде.

1) Управление временем для себя является ключевым. Умение беспристрастно оценивать, есть ли в вашем расписании место для выполнения дополнительных рабочих запросов, — отличный навык, который нужно развивать.

Способность дипломатично отклонять такие просьбы является ключевым рабочим навыком: «Да, я бы с удовольствием сделал это для вас. К сожалению, это означало бы прекращение работы над… Чему вы хотите отдать приоритет?»

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

                      Non-Urgent      |     Urgent
                    ____________________________________
        Important   |    Do This      |    Do this 1st! |
       -------------------------------------------------|
      Unimportant   |  Don't bother   |  Weigh against  |
                    | unless you have |  "Important and | 
                    |   spare time    |   Non-urgent"   |
                    |___________________________________|

2) Работайте над своими теоретическими знаниями в области разработки программного обеспечения. Быть самоучкой — это здорово, но это может оставить пробелы в ваших профессиональных знаниях, которые вы не сможете обнаружить. («Вы не знаете, чего вы не знаете».)

Хорошая теоретическая подготовка ускорит вас как на коротких, так и на длинных дистанциях.

Я рекомендую изучить Smalltalk как отличный способ получить полное представление об объектно-ориентированной разработке. Как только я изучил Smalltalk, его объектную модель и его лазерную направленность на отправку сообщений объектам, другие языки — Ruby, Java, C#, Objective C и JavaScript — стало намного легче изучать, совершенствовать и разрабатывать с ними. .