Как выбрать стек технологий для проекта

СТО ИТ-студии Skölopendra Сергей Позитурин - о критериях выбора технологий в компаниях, которые занимаются разработкой цифровых решений для бизнеса.

Мы живем в век технологий. Сегодня их просто очень много, и текущее состояние индустрии таково, что почти всё можно сделать на почти всем. Моя задача как СТО - иметь долгосрочное видение и критерии, которые объясняют, почему технология должна быть в нашей компании.

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

Критерий #1. Доступность специалистов

Доступность на рынке специалистов с нужной экспертизой за разумные деньги критически важна для любого проекта. Внедряя в компании языки Sсala или Rust, относительно редкие и сложные в освоении, мы попадаем в зависимость от наличия спецов. Нам придется или за свой счет обучать ребят писать на этих языках, или покупать очень дорогих людей, чтобы они могли решать достаточно типовые задачи ИТ-компании. Как правило, смысла в этом нет – проще поменять технологию.

Критерий #2. Состоятельность технологии

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

Критерий #3. Bus factor

Это один из базовых элементов управления проектами. Он показывает число разработчиков, после «попадания» которых под «автобус» проект не сможет быть продолжен, поскольку оставшиеся специалисты не владеют нужными навыками. Если я как СТО принимаю решение использовать на проекте редкий язык, которым в компании владеет всего один человек, а потом этот человек по каким-то причинам пропадает – мы теряем проект. Если bus factor равен двум – это повод задуматься. А если он равен трем и более – значит, технология применима, нет недостатка в специалистах, которые могут продолжить проект, и такую технологию я с удовольствием допускаю к использованию.

Критерий #4. Индексы популярности

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

Анализируя индексы и запрос со стороны команды, мы постепенно начали внедрять язык Golang. В ряде регионов на территории РФ он довольно популярен, но не везде в мире это так. Сейчас на Tiobe он на 12 месте, год назад был на 19-м, а два года назад это была третья или четвертая десятка. Поэтому если в 2018 году мы вообще его не использовали, то в 2021-м я аккуратно разрешил ребятам использовать Go на небольших проектах. За 4 года язык вырос: появилась документация, нормальное сообщество, какое-то количество профессионалов на рынке, которые уже 2-3 года на нем пишут, и фанатская база: желание джунов, студентов его изучать.

Критерий #5. Фанатство

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

А вот почему одни языки приживаются и становятся популярными, а другие бесследно исчезают, и за что мы так полюбили Kotlin – расскажем в материале на следующей неделе.

11
1 комментарий

Такое ощущение, что этот позитурин - душный "спэциалиcт" по buzzwords. Ценность текста околонулевая.