Сегодня мне попалась на глаза замечательная заметка о том, что мессенджер, с более чем 900 миллионами пользователей, пишет команда из, внимание, 50 человек! Да, именно 50, а не 500 и не 1500, как можно было бы ожидать. При этом, пишется сие чудо (серверная сторона, само собой) на Erlang. Не то что бы я огромный поклонник этого языка, но сама ситуация наводит на мысли о том, что правильный выбор инструмента может сильно сократить необходимое количество разработчиков.
Несмотря на то, что обычно я выступаю против какой-бы то ни было экзотики в продакшне, данная ситуация мне кажется показательной. С одной стороны, люди вроде в трезвом уме и здравой памяти начинают проекты на том же C++, пишут для него библиотеки, пытаются развивать. Но ведь это совсем бред и, как я надеюсь, в связи с релизом и активным развитием Rust ситуация поменяется в пользу более адекватных инструментов. С другой стороны, так же находясь в трезвом уме и здравой памяти, фактически те же люди, боятся взять что-то экзотичное, но хорошо решающее определенную задачу. Хотя находятся и те, кто не побоялся, типа создателей Yahoo Store и WatsApp.
Если подумать о основных моментах, то причин выбора не удобных но знакомых инструментов всего две. Первая – это боязнь провала. Провал со знакомой технологией – обычно не провал, ты же все делал по правилам, как обычно. Кто же мог предположить что так пойдет? У меня есть свежайший пример, кстати! Я ухлопал почти неделю на обновление BOOST в проекте. Провал? Да, именно так. А все, включая менеджера, довольны, что этого монстра наконец-то удалось обновить. А теперь можно представить эту же ситуацию, но с малознакомым (в первую очередь руководству) инструментом. Как можно одну неделю обновлять библиотеку?! Это же просто риски были не учтены либо разработчик пинал! Малознакомая система/разработчик/оба – говно, и недостойно портить наш грандиозный продукт/команду.
Вторая причина выбора знакомого инструмента, и честно говоря я всегда именно из за нее предпочитал не иметь экзотики в продакшне, это поиск новых людей в команду. Вы пытались найти вменяемого разработчика даже не на C++, а на невероятно простом Python-е? Ведь после большинства собеседований хочется рыдать! А теперь, освежив воспоминания, представим что нужно искать разработчика на Erlang… Стратегия выбора в этом случае только одна – искать эрудированного разработчика знакомого с нужной предметной областью и желанием разбираться с новым. Найти такого человека будет не сложнее, может и даже легче, чем просто вменяемого, но знающего нужный именно в твоем проекте технологический стек. Вроде и прекрасно, но как использовать уже имеющуюся команду, особенно если ей, как это часто бывает, на всё похер?
Выходит, использовать продвинутые технологии – прерогатива небольших компаний способных быстро меняться?
И, интересный ответ на этот пост от всемизвестного eao197
Выходит, использовать продвинутые технологии – прерогатива небольших компаний способных быстро меняться?
Если это вопрос то я знаю хороший ответ .