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

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

«Совершенно верно».

Я потратил некоторое время на то, чтобы собрать команду дальновидных людей из всей организации по разработке в моей компании, которые, как я думал, помогут команде добиться успеха. Я собрал приличный баланс людей, чей опыт варьировался от нескольких лет до 20+.

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

Потому что мы всегда так поступали.

Зачем менять, если работает? Это то, что мы знаем, поэтому нам не нужно тратить время на изучение нового языка программирования. Мы собираемся потратить все свое время на изучение таких вещей, как CI / CD, бессерверная разработка и NoSQL.

Не бойтесь нарушить

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

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

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

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

Используйте правильный инструмент для работы

Вы не будете использовать молоток, чтобы вбить винт в кусок дерева, или ножовку, чтобы протянуть край 2x4. Нет, вы бы использовали инструмент, подходящий для вашей задачи.

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

Вот общепринятые варианты использования некоторых основных языков программирования:

  • Python - наука о данных, машинное обучение, серверная веб-разработка
  • C # - толстый клиент для Windows-приложений, игр
  • Java - толстые клиентские приложения, приложения для Android, серверная веб-разработка.
  • JavaScript - быстрая веб-разработка
  • Swift - приложения для iOS

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

Измените, если вам нужно

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

Измени это.

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

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

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

Думай о будущем

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

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

  • Является ли это стандартом языковой индустрии?
  • Могу ли я нанять кого-нибудь с улицы, чтобы он разработал это приложение с минимальными затратами времени на запуск?
  • Есть ли поддержка сообщества?
  • Могу ли я найти вопросы и ответы по Stack Overflow?

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

Начать строительство

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

Если вы хотите чего-то нового, вам нужно перестать делать что-то старое. - Питер Ф. Друкер

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

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

Строить. Учиться. Инновации. Становитесь лучше с каждым днем.