Работая в качестве консультанта CTO и технологии для многих стартапов я могу вам сказать, что при выборе начальной технологии является важным решением, где вы должны принять во внимание несколько факторов:

1. Предпочитают Что вы уже знаете,

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

2. Рассмотрите пространство проблемы

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

Например, если вы пишете IoT внедренного решения, графический движок или AAA игры вы, вероятно, потребуется C \ C ++.

Python с такими библиотеками, как Pandas, SciPy и NumPy (и сильным сообществом вокруг них), особенно хорошо решает вычислительные задачи, подобные тем, которые вы можете встретить при работе с машинным обучением и наукой о данных.

У Ruby есть Rails и сообщество, сосредоточенное на веб-разработке.

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

3. Рассмотрите преимущества \ недостатки найма.

Использование неясного или необычного стека технологий может затруднить набор. Вы хотите, чтобы стремиться к стеку, который будет делать это легко вербовать людей.
Предоставленные, хорошие разработчики могут изучить любой стек, но вопрос в том, будет ли хочется?
Например, если вы» повторное написание чат-сервер в Erlang это, вероятно, будет намного труднее для вас, чтобы найти разработчиков Erlang (или людей, желающих учиться Erlang) по поиску людей искусных с Java \ Ruby, Python \ ...

4. Проверьте сообщество

Когда дерьмо попадает в вентилятор, который вы хотите знать, у вас есть куда идти - где-то задать вопрос и \ или получить помощь
При выборе продукта для использования я бы смотреть.:

  • Есть ли за этим громкие имена в качестве спонсоров \ пользователей?
  • Насколько активно сообщество?
    Есть натяжной канал \ список рассылки \ Public JIRA? есть ли ответы на вопросы в StackOverflow?
    пишут ли об этом в блогах? (Я бы искать профи \ минусы сообщений, сравнение с конкурирующими продуктами и миграцией \ историй успеха)
  • Если открытый исходный код - когда был последний коммит? код активно развивается и поддерживается? Откликаются ли авторы на PR?

5. Пора достичь первых нескольких этапов развития.

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

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

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

Например, в одной из компаний, с которыми я работаю, мы начали управлять нашим трубопроводом данных, используя от Google Dataproc , который, по существу, размещаемая версия Apache Спарка.

В нашем текущем масштабе мы не нужен Спарк кластер работает в режиме 24/7, так с помощью Dataproc мы можем запланировать задания, которые начинаются кластера, делают свое дело, и закрыть его. В будущем мы сможем держать кластер работает на Dataproc 24/7 или даже (так как мы используем искру, которая является открытым исходным кодом) мигрирует от службы Google, и управлять нашим собственным кластером (ы).

(Bonus Tip) - Берегись «Tech мешалки»

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

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

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

Этот пост адаптированный и расширенный вариант моего ответа на Как стартапы обычно выбирают стек технологий для своего продукта? на Quora