И две компетенции, которыми должны обладать все ИТ-специалисты.

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

Это будет клише, но уроки, полученные в вашей академической карьере, — это не истории, они служат определенной цели. Приходите и слушайте лекции. Вы можете не понять это с первого раза, это как головоломка, вы можете не найти ее сразу. Попросите вашего учителя связать любой предмет, который вы не понимаете, с реальным использованием. «Где мы будем это использовать?».

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

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

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

Высококачественный процесс разработки приложений требует участия не только разработчиков программного обеспечения, но и всех ролей, таких как аналитик, QA, DBA, DevOps, Infra. Два элемента выше являются основным названием компетенций, которыми должны обладать все эти роли.

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

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

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

  • Программирование
  • Компьютерная архитектура
  • Алгоритмы и структуры данных
  • Математика для информатики
  • Операционные системы
  • Компьютерная сеть
  • Базы данных
  • Языки и компиляторы
  • Распределенные системы

Хорошего ИТ-специалиста легко отличить от посредственного

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

Задайте такие вопросы:

  • Как работает код, который вы разработали?
  • Какая инфраструктура ему нужна?
  • Каковы пределы производительности?

Потому что:

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

Инженерия — это просто строительство и решение проблем.

Что есть в вашем наборе инструментов?

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

Вот примеры вопросов, которые вы можете задать себе:

  • Как работает Интернет?
  • Как мы гарантируем, что веб-сайт не выйдет из строя, если 1 миллион пользователей войдет в систему одновременно?
  • Как мы можем решить ошибку, возникающую в веб-приложении, работающем в среде Prod?
  • Почему возникли разные типы баз данных?

Пример успеха

Какие инструменты мы используем для мониторинга, настройки механизма предупреждения и решения проблем?

В VB механизмом оповещения был SCOM. Хотя в течение многих лет мониторинг был внутренним приложением, теперь это DynaTrace. Централизованного ведения журнала не было, я поручил команде инфраструктуры программного обеспечения выполнить необходимую работу по использованию ElasticSearch, Kibana, Logstash. Он даже получил награду за разработанное на нем приложение кредитной аналитики.

Мы управляем оповещениями в SM с помощью Zabbix и Prtg. Для мониторинга мы предпочли NewRelic и Percona. Эти инструменты стали нашими глазами и ушами.

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

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

Мы можем разработать его

Банки обычно делают ту же работу. Тысячи разработчиков приложений пишут банковские модули, которые выполняют ту же работу. Как будто этого было недостаточно, они также входят в другие области, на которые они нацелились и которые им нравятся, чтобы создать себе работу. Поскольку работы, проделанной путем сотни повторений в своей области, недостаточно, они также проникают в другие области, умножая неэффективность. Каждая ИТ-команда банка разрабатывает одни и те же модули снова и снова, а защита — «это специально для нас».

Генерировать идеи и выделяться среди конкурентов — тяжелая работа, копировать — легко.

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

Те, кто может пойти немного дальше копирования идей, следят за отчетами таких организаций, как Gartner и Forrester, и объявляют себя изобретателями. Принимая во внимание, что, как я упоминал в своей статье под названием «Цикл ажиотажа Gartner и тенденции Forrester. Являются ли они триггерами инноваций?», тысячи организаций следят за этими отчетами и внедряют тенденции, которые они могут себе позволить.

Я хотел бы воспользоваться этой возможностью, чтобы поблагодарить академический персонал Эгейского университета вычислительной техники, который я окончил в 2003 г. (бакалавр наук) и 2006 г. (магистр наук), и моих драгоценных лекторов за обучение тысяч людей, таких как я.