ВВОДНАЯ ЛЕКЦИЯ В IT
Иерархия позиций
Строгая иерархия
Матричная структура
Дивизионная структура
Плоская(горизонтальная) структура
С-LEVEL
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Иерархия позиций
Сеньорность
Сеньорность
Конец второй части
Глоссарий
Глоссарий
Глоссарий
Глоссарий
Глоссарий
4.79M

vvedenie-v-it2ierarhia-pozicij

1. ВВОДНАЯ ЛЕКЦИЯ В IT

Часть 2

2. Иерархия позиций

Может отличаться в разных компаниях
Структуры в компаниях бывают разные:
• Cтрогая иерархия (линейно-функциональная)
• Матричная
• Дивизионная
• Плоская (горизонтальная)

3. Строгая иерархия

СЕО
Director
Director
Manager Manager Manager Manager
Worker
Worker
Worker
Worker

4. Матричная структура

СЕО
Development
Manager
Research
Manager
Analyst
Manager
Sales
Manager
Project A
Manager
Developer
Scientist
Analyst
Sales
Project B
Manager
Developer
Scientist
Analyst
Sales
Project C
Manager
Developer
Scientist
Analyst
Sales

5. Дивизионная структура

СЕО
Division 1
Division 2
Division 3
Development
Development
Development
Marketing
Marketing
Marketing
Sales
Sales
Sales

6. Плоская(горизонтальная) структура

СЕО
Manager
Worker
Worker
Manager
Worker
Worker
Manager
Worker
Worker

7. С-LEVEL

CEO
Chief Executive
Officer
COO
Chief Operations
Officer
CFO
Chief Financial
Officer
CIO
Chief Information
Officer
CTO
Chief Technology
Officer
CMO
Chief Marketing
Officer

8. Иерархия позиций

9. Иерархия позиций

Chief Technical Officer — представитель топменеджмента компании (помимо
английской аббревиатуры, можно встретить
название «технический директор»), который
определяет технологическую стратегию
компании и отвечает за внедрение новых
технологий — все ради достижения
финансовых и стратегических целей бизнеса.

10. Иерархия позиций

Product Manager или Product
Owner.Основная задача — управление всеми
процессами по разработке нового продукта.
Сюда относятся принятие или отклонение
идей, обеспечение технической реализации,
формирование подробной отчетности для
дальнейшего анализа и улучшения бизнеспроцессов.

11. Иерархия позиций

ИТ-инфраструктура – это комплекс взаимосвязанных информационных
систем и сервисов, обеспечивающих функционирование и развитие
средств информационного взаимодействия предприятия.
Это как настройка и поддержка ПК, серверов и сетевого
взаимодействия, так и администрирование ОС и настройка работы
программ.

12. Иерархия позиций

Data Science — это применение научных методов при
работе с данными, чтобы найти нужное решение.
Задача Data Scientist заключается в том, чтобы
разработать гипотезу, которая решит бизнес-задачу,
проверить ее и помочь в ее реализации.
Data Engineer разрабатывает, тестирует
и поддерживает систему перемещения,
хранения и подготовки данных для Data
Scientist.
Data Analyst - это специалист,
который собирает, обрабатывает,
изучает и интерпретирует данные.

13. Иерархия позиций

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

14. Иерархия позиций

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

15. Иерархия позиций

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

16. Иерархия позиций

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

17. Иерархия позиций

Виды архитекторов:
• Enterprise Architect
• Solution Architect
• Infrastructure Architect
• Data-Architect
• …

18. Иерархия позиций

- System Analyst – занимается
анализом требований ПО,
разрабатывает ТЗ для
программистов, исходя из
требований, участвует в
проектировании разрабатываемой
системы.
Business Analyst - коммуникаторы
между бизнесом и разработкой. Их
задачи - собрать данные,
визуализировать и предоставить
руководству, которое будет
принимать решения.

19. Иерархия позиций

• System Engineer - контролирует ПО, оборудование, сети,
системы хранения данных и облачные сервисы, чтобы
оптимизировать все рабочие процессы и повысить
производительность компании.
• SysAdmin - поддерживает в работоспособном состоянии
компьютерное оборудование и любые ИТ-инфраструктуры
в целом.

20. Иерархия позиций

Project Manager - отвечает за реализацию проекта в
определенный срок силами одной или нескольких
команд с использованием определенных ресурсов.

21. Иерархия позиций

• Тестировщики - на последнем
этапе разработки проверяют
качество продукта (любым
видом и типом тестирования
— ручным,
автоматизированным,
нагрузочным, тестированием
безопасности и т.д.).
• QA Engineer (Quality
Assurance) - помогают
командам разработки
выпускать качественный
продукт, как можно быстрее
за как можно меньшие
деньги.

22. Иерархия позиций

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

23. Иерархия позиций

Developer – занимается
разработкой, пишет код.

24. Сеньорность

• Intern - знает лишь основы языка программирования и, на
достаточно низком уровне, стэк технологий. Его главное отличие –
не способен самостоятельно решать реальные задачи.
• Junior-разработчик задачи может решать только небольшие,
несложные и чётко поставленные. С самостоятельностью тоже всё
не очень — мало знаний, много вопросов, важна постоянная работа
с наставником или в хорошей команде.
• Middle-разработчик уже закалён в боях, за советом постоянно не
бегает, многое знает сам или может самостоятельно разобраться.
Задачи ему разжёвывать не нужно, достаточно адекватно
обозначить цель. Он владеет своей сферой ответственности,
понимает контекст и способен принимать решения по реализации с
учётом как технических нюансов, так и взгляда со стороны бизнеса
и пользователей. В целом это — уровень большинства нормальных
программистов.

25. Сеньорность

• Senior-разработчик вам сам расскажет, что нужно делать и
почему. Он прекрасно знает свою часть проекта, понимает и
формирует направление её развития. Он способен держать в
голове самые большие и сложные задачи, работать на
высоком уровне абстракции и учитывать самые неочевидные
взаимодействия и последствия. Обычно на этом уровне
возникает специализация — кто-то занимается сложным
проектированием, кто-то знает глубокие особенности
огромного количества инструментов разработки, кто-то может
организовать работу над большой задачей.
• Team Lead – управляет своей командой разработчиков,
владеет технической стороной, принимает участие в работе
над архитектурой проекта, занимается ревью кода, а также
разработкой некоторых особо сложных заданий на проекте.

26. Конец второй части

27. Глоссарий

AI / Artificial intelligence / ИИ / Искусственный интеллект - система или машина, которая может имитировать человеческое поведение, чтобы выполнять
задачи, и постепенно обучаться, используя собираемую информацию.
C-Level executives / C-Suite / Руководители уровня С - те, кого называют «первые лица компании», топ-менеджеры: члены совета директоров и те, кто
подчиняется им напрямую. В разных компаниях должности этих людей называются по-разному, но суть их сводится к тому, что они несут личную
ответственность за реализацию стратегии компании, возглавляя определенную функцию или бизнес единицу. Данный уровень управления называется С-level,
поскольку все названия должностей начинаются «Chief», то есть главный. Например: CEO (Chief Executive Officer), CFO (Chief Financial Officer), CTO (Chief
Technical Officer) и т. д.
CD / CDE / Continuous delivery / Непрерывная доставка - это подход к разработке программного обеспечения, при котором программное обеспечение
производится короткими итерациями, гарантируя, что ПО является стабильным и может быть передано в эксплуатацию в любое время, а передача его
происходит вручную. Целью является сборка, тестирование и релиз программного обеспечения с большей скоростью и частотой. Подход позволяет
уменьшить стоимость, время и риски внесения изменений путём более частных мелких обновлений в продакшн-приложение. Непрерывная доставка
осуществима благодаря различным оптимизациям на ранних этапах процесса разработки. Разработчик, сделав какую-либо фичу, отправляет её QAинженерам для тестирования. Тестировщикам легче досконально оттестировать небольшой новый функционал и написать к нему тест-кейсы. Как только все
проверки – прошли, новая фича попадает на дальнейшее тестирование авто-тестами и потом уже в релизный брэнч в системе контроля версий.
CD / Continuous Deployment / Непрерывное развёртывание - отвечает за то, чтобы весь новый функционал после тестирования сразу же попал в основную
программу без ручного вмешательства инженеров DevOps. Например, Docker создан для непрерывного развёртывания. DevOps инженеры могут обновлять
контейнеры и разворачивать их сразу на продакшене в автоматическом режиме. Такой процесс является ключом к непрерывной доставке, т.к. весь процесс
может занять всего лишь несколько минут.
CI / Continuous Integration / Непрерывная интеграция - первичный, базовый процесс обновления ПО, в рамках которого все изменения на уровне кода
вносятся в единый центральный репозиторий. Такое внесение принято называть слиянием. После каждого слияния (которое проходит по несколько раз в
день) в изменяемой системе происходит автоматическая сборка (часто приложение упаковывается в Docker) и тестирование (проверка конкретных модулей
кода, UI, производительности, надёжности API). Таким образом разработчики страхуются от слишком поздних обнаружений проблем в обновлениях.
CTO / Chief technical officer / СиТиО - это главный человек в IT блоке. Он отвечает и управляет всем процессом всей разработки внутри компании, ее
поддержки, исследований (если такие есть в компании). У него должен быть большой технический бекграунд. Он может выступать, как: эксперт в плане
разработки, принимать решения по выбору технологий, развитию продуктов и разрешению спорных ситуаций в коллективе.
CV / computer vision / компьютерное зрение - теория и технология создания машин, которые могут производить обнаружение, отслеживание и
классификацию объектов. Как научная дисциплина, компьютерное зрение относится к теории и технологии создания искусственных систем, которые получают
информацию из изображений.

28. Глоссарий

Data / дата / данные - зарегистрированная информация; представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации,
или обработки человеком или с помощью автоматических средств. В IT - формы представления информации, с которыми имеют дело информационные
системы и их пользователи.
DataBase / DB / БД / База данных - организованная структура, предназначенная для хранения, изменения и обработки взаимосвязанной информации,
преимущественно больших объемов (Не путать с СУБД!).
Data Engineering / Инжиниринг данных - инженерия данных связана с их доставкой, хранением и обработкой. Соответственно, основная задача инженеров обеспечить надежную инфраструктуру для данных. От дата-инженера зависит, насколько удобно будет построен процесс работы с данными в проекте. Этот
специалист отвечает за сбор, хранение и обработку данных, выстраивает их кратчайший путь к дата-сайентистам – чтобы коллеги не отвлекались от своих
основных задач.
Data Lake / Озеро данных – это большая система данных, хранящихся в естественном / необработанном формате, обычно это большие двоичные объекты
или файлы.
Data Science / Дата саенс / Наука о данных - область на стыке статистики, научных методов и аналитической обработки данных, которая помогает извлекать
ценные сведения из данных. Data Science - это работа с большими данными. Большие данные - это огромные объёмы неструктурированной информации:
например, метеоданные за какой-то период, статистика запросов в поисковых системах, результаты спортивных состязаний, базы данных геномов
микроорганизмов и многое другое. Ключевые слова здесь - «огромный объём» и «неструктурированность». Чтобы работать с такими данными, используют
математическую статистику и методы машинного обучения. Специалист, который делает такую работу, называется дата-сайентист (или Data Scientist). Он
анализирует большие данные (Big Data), чтобы делать прогнозы. Какие именно прогнозы - зависит от того, какую задачу нужно решить. Итог работы датасайентиста - прогнозная модель. Если упростить, то это программный алгоритм, который находит оптимальное решение поставленной задачи.
Deep learning / Дип лёрнинг / Глубокое обучение - совокупность методов машинного обучения, основанных на обучении представлениям, а не
специализированным алгоритмам под конкретные задачи.
Developer / dev / девелопер / разработчик (иногда: software engineer / инженер / programmer / программист) - основная боевая единица любой компании,
занимающейся разработкой ПО. Разработчик занимается тем, что разрабатывает. В его обязанности входит: разработка ПО. Разработчики бывают разной
сеньорности (см. Seniority), и, в зависимости от этого уровня, имеют разное кол-во ответственности на проекте и выполняют разные по сложности задачи.
DevOps / DEVelopment OPeration / ДевОпс - это набор практик для повышения эффективности процессов разработки (Development) и эксплуатации
(Operation) программного обеспечения (ПО) за счет их непрерывной интеграции и активного взаимодействия профильных специалистов с помощью
инструментов автоматизации.

29. Глоссарий

Distributed system / Распределенная система - также известная как распределенные компьютеры - представляет собой систему с несколькими
компонентами, расположенными на различных машинах, которые передают и координируют действия, с тем чтобы представить ее в качестве единой
согласованной системы для конечного пользователя. Тремя важными характеристиками распределенных систем являются: одновременность компонентов,
отсутствие глобальных часов и независимый отказ. компонентов.
Framework / фреймворк / фв - программная платформа, определяющая структуру программной системы;программное обеспечение, облегчающее
разработку и объединение разных компонентов большого программного проекта. Употребляется также слово «каркас», а некоторые авторы используют его в
качестве основного, в том числе не базируясь вообще на англоязычном аналоге. Можно также говорить о каркасном подходе как о подходе к построению
программ, где любая конфигурация программы строится из двух частей: первая, постоянная часть — каркас, не меняющийся от конфигурации к конфигурации
и несущий в себе гнезда, в которых размещается вторая, переменная часть — сменные модули (или точки расширения).
Lead developer / ведущий разработчик - программист, возглавляющий один или несколько проектов по разработке программного обеспечения, либо
программист, имеющий определенный уровень подготовки, трудового стажа или соответствующий требованиям к образованию для получения данного
статуса. Может как иметь менеджерские обязанности, так и просто кодить.
OS / Operating Systems / ОС / операционная система - комплекс программ, обеспечивающий управление аппаратными средствами компьютера,
организующий работу с файлами и выполнение прикладных программ, осуществляющий ввод и вывод данных. На сегодняшний день, операционная система это первый и основной набор программ, загружающийся в компьютер/смартфон. Помимо вышеуказанных функций ОС может осуществлять и другие,
например, предоставление общего пользовательского интерфейса. Сегодня наиболее известными операционными системами для десктопных компьютеров
являются ОС семейства Microsoft Windows и UNIX-подобные системы. Мобильные ОС - iOS (ранее iPhone OS) и Android.
QA / Quality Assurance / обеспечение качества - это превентивный процесс, гарантирующий, что все необходимые техники, процедуры, стандарты и
методологии соблюдаются в процессе разработки продукта для предоставления результата без дефектов.
Scripting language / скриптовый язык или язык сценариев - высокоуровневый язык программирования для написания сценариев (скриптов) — кратких
описаний выполняемых системой действий. Скрипты - это отдельные последовательности действий, созданные для автоматического выполнения задачи.
Скриптовые языки не требуют явного этапа компиляции. Например, в обычном случае вам нужно скомпилировать программу C, прежде чем вы сможете ее
запустить. Но вам не нужно компилировать программу JavaScript перед ее запуском. Поэтому JavaScript называют скриптовым языком. Скриптовые языки:
Perl, Shell, Bash, AWK, Python, Ruby, JavaScript, Lua.
Seniority - сеньорность - градация специалистов по старшинству, она нужна, чтобы определять полномочия и квалификацию. Intern, Junior, Middle, Senior,
Lead.
Stack / стэк / технологический стек / стек технологий - это набор инструментов, применяющийся при работе в проектах и включающий языки
программирования, фреймворки, системы управления базами данных, компиляторы и т. д.

30. Глоссарий

Team lead / тим лид / лид - руководитель команды. Это бывший Senior, у которого в обязанностях теперь, ко всему прочему - управление командой. Он имеет
всю ту же экспертизу в поле своей деятельности, выполняет самые сложные задачи на проекте, но также руководит: выставляет ТЗ джунам, дает задачи
миддлам и сеньорам, решает возникающие споры, занимается мотивацией итд.
Дивизионная организационная структура — структура, где есть разделение на дивизионы. Дивизионы - подразделения, которые обладают относительной
самостоятельностью в управлении отдельными продуктами и отдельными функциями.
Контейнеризация — это форма виртуализации ОС, предлагающая изоляцию приложений в пользовательских пространствах (контейнерах).
Матричная организационная структура – структура компании, где каждое звено в иерархии помимо подчинения непосредственному начальнику сверху
параллельно входит в группу, выделенную под какую-то функцию.
Облачное хранилище / Облако– это модель облачных вычислений, предусматривающая хранение данных в Интернете с помощью поставщика облачных
вычислительных ресурсов, который предоставляет хранилище данных как сервис и обеспечивает управление им.
Оркестрация — это автоматическое размещение, координация и управление сложными компьютерными системами и службами.
Плоская (горизонтальная) организационная структура — способ управления организацией, предполагающий минимизацию уровней в управленческой
иерархии. Проще говоря, это структура, в которой почти или вообще нет среднего управленческого звена.
Программное обеспечение / ПО — программа или множество программ, используемых для управления компьютером.
Релиз – выпуск готового для использования продукта или его версии на рынок.
Сервер - это наиболее сложная часть ПО. Она выполняет четко определенную, программным кодом, последовательность операций по работе с
информацией. Именно сервер обрабатывает ту информацию, полученную от пользователя, что присылает клиент. Он проводит некие взаимодействия с ней,
которые декларируются кодом программы. Также сервер взаимодействует с базой данных для получения информации, которая хранится в ней. С целью
последующего использования этой информации. Сервером могут быть смартфоны, ноутбуки, серверные стойки, дата-центры и прочая техника способная
читать и исполнять программируемые задачи.
Строгая иерархия – организационная структура компании, в которой сотрудники подчиняются тем, кто стоит над ними, при этом конкретные функции отданы
в ведение отдельным вертикалям.

31. Глоссарий

Тестирование ПО - процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности, осуществляемый путем
наблюдения за его работой в искусственно созданных ситуациях и на ограниченном наборе тестов, выбранных определенным образом.
Техническая документация – это комплекс документов, в которых подробно описываются технические характеристики и потребительские качества ПО, а
также сведения о процессе его разработки, применения и сопровождения.
ТЗ - это техническое задание, которое ставит конкретную задачу перед разработчиком. Например, реализовать вычисления сложения двух элементов в
системе с помощью определенной функции. ТЗ выставляется руководителем команды или старшим разработчиком, которые в свою очередь получают
задания от своего руководства или бизнеса (данные задачи более общие и не имеют четкой технической цели).
English     Русский Rules