Similar presentations:
vvedenie-v-it2ierarhia-pozicij
1. ВВОДНАЯ ЛЕКЦИЯ В IT
Часть 22. Иерархия позиций
Может отличаться в разных компанияхСтруктуры в компаниях бывают разные:
• 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
CEOChief 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 или ProductOwner.Основная задача — управление всеми
процессами по разработке нового продукта.
Сюда относятся принятие или отклонение
идей, обеспечение технической реализации,
формирование подробной отчетности для
дальнейшего анализа и улучшения бизнеспроцессов.
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. Глоссарий
Тестирование ПО - процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности, осуществляемый путемнаблюдения за его работой в искусственно созданных ситуациях и на ограниченном наборе тестов, выбранных определенным образом.
Техническая документация – это комплекс документов, в которых подробно описываются технические характеристики и потребительские качества ПО, а
также сведения о процессе его разработки, применения и сопровождения.
ТЗ - это техническое задание, которое ставит конкретную задачу перед разработчиком. Например, реализовать вычисления сложения двух элементов в
системе с помощью определенной функции. ТЗ выставляется руководителем команды или старшим разработчиком, которые в свою очередь получают
задания от своего руководства или бизнеса (данные задачи более общие и не имеют четкой технической цели).