Нужно ли ИТ-аналитикам уметь программировать?



Нужно ли ИТ-аналитикам уметь программировать?

1673

       

AWG

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


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


Сторонники считают, что владение языком программирования позволяет делать более качественные ТЗ для коллег. Кроме того, неясно, а какой именно язык программирования подразумевается. 


Давайте проясним ситуацию и взглянем на споры и аргументы более системно.


Ценность системного аналитика


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


Как создается модель решения?

  1. Он выявляет контекст и требования, а затем взаимосвязывает разные требования, возможности, ограничения и способы решения задач — в одно целое.
  2. Определяет предпочтительный вариант.
  3. Для отсева ненужных вариантов аналитик задает вопросы к использующим системам и выявляет дополнительные требования, которые порождает модель системы.
  4. Отсеивает ненужные варианты. Желательно выбрать один предпочтительный вариант решения, но если остается несколько вариантов, то приходится представлять их заказчику с оценкой атрибутов качества, по которым и происходит выбор в сторону одной из моделей.
  5. Уменьшив вариативность реализации, аналитик достигает своей цели — уменьшения неопределенности.

Если аналитик не создает модели, то он не уменьшает вариативность. Когда разработчик начинает писать код, то:

  1. Он пишет его так, как ему кажется логичным (и часто ошибается, так как логика программиста <> логика бизнеса).
  2. Он начинает задавать вопросы, которые позволят ему понять, как конкретно писать код, продолжая выполнять роль аналитика. Поскольку в голове у него меньше знаний про использующие системы, он задает больше вопросов и медленнее формирует модель решения. Время ожидания увеличивает time2market, заказчик недоволен.

Умение для ИТ аналитика


Когда мы говорим про ИТ аналитика, то он создает, в том числе, модели создаваемой/изменяемой ИТ-системы и модели ее использования. 


При проектировании в общем случае создаются:

  1. Модели использования ИТ системы со стороны пользователей и интегрируемых ИТ систем. При этом создается последовательность (алгоритм) взаимодействия и сопоставление взаимодействующих данных между потребителем и ИТ системой.
  2. Модели пользовательских и интеграционных интерфейсов, которые соответствуют моделям использования. Важно понимать, как поля/таблицы и другие элементы форм соответствуют друг другу и моделям данных и какие алгоритмы преобразования возникают.
  3. Модели внутреннего хранения данных, при этом важно понять структуру данных и связи объектов друг с другом.
  4. Модели внутренних преобразований данных (в виде какого-то алгоритма).

Для создания этих моделей требуется алгоритмическое и структурное мышление.

блок-схема.jpg

Должен ли ИТ-аналитик создавать все эти модели IT системы? Да, если эти модели уменьшают неопределенность.


Как развивать умение проектировать алгоритмы и структуры данных? Ответ очевиден — необходимо развивать алгоритмическое и структурное мышление.


Два основных варианта.

  1. Аналитик создает модели алгоритма на UML / верхнеуровневом BPMN, после чего преподаватель сообщает, где и почему он допустил ошибку.
  2. Аналитик пишет код на каком-то языке программирования (включая BPMN для BPMS). Компьютер компилирует/интерпретирует и исполняет код. 


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


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


Какие конкретно умения проектировать структуры данных и алгоритмов нужны? Зависит от предметной области. Универсальных ИТ аналитиков не существует, чтобы это понять, достаточно посмотреть на карту всех компетенций ИТ-аналитика.


Например, учетные программы

  1. Не содержат сложных алгоритмов взаимодействия с пользователями/ системами, поэтому нет смысла их проектировать или учиться их создавать с помощью процедурных языков программирования.
  2. Содержат непростую логику преобразования данных (как правило, реляционную), поэтому имеет смысл проектировать модели их преобразования. Например, с помощью изучения SQL.


Дополнительная польза от знаний языков программирования

  1. Развивая ПО, аналитик плотно работает с разработчиками. Для эффективного взаимодействия нужно выработать общий язык, глоссарий. Если аналитик хорошо понимает термины языка разработки, то объясняться проще.
  2. Владение инструментами обработки и анализа данных (Excel, Phyton, SQL, ..) позволяет аналитику изучать проблематику задачи, опираясь не на мнения, а на факты.
  3. Знание языка программирования конкретного ПО позволяет самостоятельно проводить reverse engineering. 


Итог

  1. ИТ аналитику нужно уметь создавать детальные модели данных и алгоритмов, чтобы уменьшать неопределенность и уменьшать time2market.
  2. Знания языков программирования позволяют проектировать детальные модели данных и алгоритмов быстрее.
  3. На каком языке программирования учиться (BASIC, Phyton, SQL, MDX) зависит от того, какое ПО создается; разные типы решаемых задач требуют разных моделей алгоритмов.

Источник: https://habr.com/ru/post/692524/

С чего начать?

Свяжитесь с нами по номеру

или оставьте свою заявку

Расскажите о своем проекте

Наш специалист свяжется с вами и проконсультирует по интересующему вопросу, подскажет оптимальное решение вашей задачи

Спасибо за обращение. Ваша заявка принята.
File name
Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь с Правилами обработки и использования персональных данных

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

Хорошо