Tech Express Weekly: демистификация разработки №2

Какой язык программирования подходит для моего стартапа?

Руководство для нетехнических основателей.

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

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

СЦЕНАРИЙ ПЕРВЫЙ: у вас уже есть талантливый технический директор или технический руководитель. Затем они обычно имеют в виду язык программирования (предположительно, тот, в котором они наиболее опытны).

СЦЕНАРИЙ ВТОРОЙ: вы все еще ищете технического директора. В идеале вы должны выбрать язык, который соответствует потребностям вашего стартапа, а не просто тот, на котором ваш технический директор чувствует себя наиболее комфортно. Поэтому стоит иметь приблизительное представление о том, какой язык будет оптимальным для вашего стартапа, прежде чем начинать отбирать потенциальных кандидатов.

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

1. Рассматривайте свой язык программирования как инструмент для подбора персонала.

Маленькая война ведется каждый раз, когда группа разработчиков начинает обсуждать преимущества одного языка над другим. Почему полемика? Потому что разработчики идентифицируют себя с одним (или несколькими) языками и предполагаемой культурой, которую он влечет.

Рассматривайте выбор языка не только как техническое решение, но и как решение, которое повлияет на культуру вашей компании и вашу способность принимать на работу.

Кого вы хотите нанять?

Например, разработчики из стартапов могут тяготеть к модным языкам, таким как Node.js, Swift и Elixir. С другой стороны, разработчики, имеющие корпоративный опыт, могут быть сосредоточены на Java, C #, .NET или PHP, которые некоторые считают немного более «старой школой». Конечно, это несколько обобщения, но, тем не менее, о чем следует помнить.

Где вы живете?

Раньше было очень важно учитывать наличие кадрового резерва рядом с вашим офисом. Теперь это не такая уж проблема, поскольку проверенные фрилансеры становятся нормой, и они устраняют любые проблемы с доступностью. Удаленный прием на работу также дает вам возможность выбирать разработчиков на основе их опыта работы на желаемом языке, а не их способности приходить в ваш офис каждый день. Кроме того, удаленные разработчики, вероятно, будут более опытными, как подчеркивает опрос Stack Overflow's 2016, в котором приняли участие более 50 000 разработчиков:

«Разработчики с опытом более 11 лет почти в два раза чаще работают удаленно, чем разработчики со стажем менее 5 лет».

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

2. Различные языки программирования повлияют на вашу скорость и масштабируемость.

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

С одной стороны, цель MVP - как можно скорее запустить базовый продукт и быстро повторять его после каждого цикла обратной связи. Существует много споров о воспринимаемой скорости кодирования на определенных языках, о чем свидетельствует следующий комментарий от Stack Exchange User, Djheru:

«Некоторые языки и фреймворки предназначены для быстрой разработки приложений, а другие предназначены для продвижения стабильных, масштабируемых архитектур с большой площадью поверхности. Я бы сказал, что языки / фреймворки, такие как Ruby on Rails, node.js с чем-то вроде Express, PHP с чем-то вроде Laravel, как правило, больше попадают в область «быстрой разработки», а языки / фреймворки, такие как Java / Spring, C # / .net больше относится к стабильной, масштабируемой стороне ».

Но одно можно сказать наверняка: опытные разработчики будут работать быстрее, чем более молодые, независимо от языка, на котором они работают.

Имеет смысл заложить основы успеха на раннем этапе, но при этом сосредоточить внимание на том, чтобы клиенты и инвесторы были довольны быстрыми итерациями. Мы называем это масштабируемым MVP.

«По моему опыту, стартапы больше заинтересованы в проработанном, законченном простом приложении, чем в скелете сложного приложения».

Джеру, пользователь Stack Exchange (этот парень гуру!)

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

3. Максимально используйте открытый исходный код.

В эту цифровую эпоху в Интернете доступны обширные репозитории (библиотеки) кода. Открытый исходный код просто означает, что он бесплатный и доступен для всех - обычно через такую ​​платформу, как Github. Эти фрагменты проверенного кода могут значительно ускорить процесс разработки. Хотя некоторые технологии, возможно, придется создавать с нуля, большинству стартапов удается обойтись без использования некоторого открытого исходного кода. Мало ли, но кто-то, возможно, уже решил половину вашей проблемы!

Согласно отчету Github в 2016 году, Javascript, Java и Python были тремя самыми популярными языками с открытым исходным кодом среди 5,8 млн активных пользователей.

«Во-первых, у JavaScript есть огромное сообщество, и оно постоянно расширяется. Вы можете найти фреймворки для чего угодно. Доступно более миллиона пакетов для Node.js, серверной платформы для написания кода JavaScript, известной своей быстрой доставкой ».

Это хороший пример от сотрудника Microsoft, Шри Десаи, который подчеркивает широту и силу открытого исходного кода.

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

4. Помните о стандартном языке отрасли.

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

Еще один ключевой вопрос: Что используют ваши конкуренты?

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

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

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

«Великие разработчики, а не языки программирования - создают отличные продукты».

Спасибо за внимание! Эта статья написана нашим руководителем по маркетингу Эллой Каллен. Она родом из Новой Зеландии и очарована минималистичным дизайном, элегантным брендом и свободой удаленной работы.

Заинтересованы в присоединении к CodeControl в качестве внештатного разработчика, дизайнера или менеджера проекта? Тогда расскажите немного о себе, и мы скоро свяжемся с вами.

Эта статья изначально была опубликована в нашем блоге.

P.S. Не бойтесь 👏 и проявите немного любви;)