Part 2. Project Management: Theory 30
Основные модели разработки ПО 44
● Code and fix — модель кодирования и устранения ошибок; 44
● Waterfall Model — каскадная модель, или «водопад»; 44
● V-model — V-образная модель, разработка через тестирование; 44
● Incremental Model — инкрементная модель; 44
● Iterative Model — итеративная (или итерационная) модель; 44
● Spiral Model — спиральная модель; 44
● Chaos model — модель хаоса; 44
● Prototype Model — прототипная модель 44
Формулы для расчета показателей эффективности проекта в тройственном ограничении 50
Part 3. Блок 1. Кейсы и ситуативные вопросы 52
📌 Top 7 Super Fast Cases Before the Interview 58
Part 3. Блок 2. Тестовые задания для РМ 59
Part 4. Понятийный уровень. Основы программирования 59
Part 5. Общие темы для “погуглить” самостоятельно 61
📌 Telegram-каналы по проектному менеджменту 66
📌 Сертификация для проектных руководителей 67
Бесплатная сертификация для руководителей проектов 67
Для общего развития, на посмотреть | Курсы с бесплатными сертификатами 67
Платная сертификация для руководителей проектов 67
Part 9. Основы WEB & Digital 72
Part 10. Инструменты для IT Project Manager 74
Part 11. Интервью на позицию IT Project Manager 77
📌 Вопросы на позицию Руководителя IT проектов 79
Как менеджеру пройти техническое собеседование: 37 часто задаваемых вопросов 80
📌 12 главных пунктов, по которым задают вопросы на техническом собеседовании 80
Part 12. Interview Tips to Get a Job Offer 89
📌 Советы перед встречей с экспертом 90
📌 Общие советы перед собеседованием 92
📌 Что хочет видеть работодатель//нанимающий менеджер в кандидате.
Мотив: 92
📌 Сервисы для создания Резюме (AI) 95
Вебинар: 5 секретов поиска работы внутри страны и за рубежом 95
Part 13. Карта компетенций IT Project Manager 104
Part 14. Траектории развития в смежные области для PM 106
Руководство для IT Project Manager
Привет, дорогой друг, читатель и начинающий IT Проджект Менеджер!
Этот документ уже помог большому количеству PM начать свой путь в IT. Надеюсь, что и для тебя найдется полезная информация здесь. Я бы назвала этот документ – выжимкой всех главных материалов по теме Проектного Менеджмента.
Удачи в изучении новой и интересной специальности PM в IT!
Советы и напутствия к собеседованию:
Что можно сделать для подготовки перед интервью:
Контакты автора Руководства по всем вопросам:
→ LinkedIn: https://www.linkedin.com/in/nadia-firsova/
→ TG: https://t.me/nadia_firsova
→ TG канал: https://t.me/pro_pm
Желающим донатить: https://www.donationalerts.com/r/nadiafirsova
📌Ссылка на Техническую Базу Знаний: Developer Roadmaps
В чем отличие backend от frontend?
Frontend включает в себя все, что видят пользователи: цвета, шрифты, изображения, графики, таблицы и кнопки. Frontend-разработчики реализуют удобный для пользователей интерфейс с помощью кода. Также они отвечают за адаптивность сайтов и веб-сервисов, которые должны правильно отображаться на экранах всех размеров.
Статья: https://telegra.ph/Frontend-i-Backend-razrabotka-v-chem-raznica-05-16
Frontend-язык: только 1 - JavaScript
HTML – это стандартизированный язык гипертекстовой разметки документов для просмотра веб-страниц в браузере; CSS (каскадные таблица стилей).
Backend хранит и упорядочивает данные, а также следит за тем, чтобы на стороне клиента все работало хорошо. Backend скрыт от глаз пользователей.
Backend-языки: Ruby, PHP, Python, Java, Node.js, C#, Go, Visual Basic.
Чем языки программирования отличаются друг от друга?
У языков программирования тоже есть своды правил — спецификации. В них определены стандарты синтаксиса и семантики, т.е. комбинаций символов и их значений. Для самих символов тоже есть правила — стандарты кодирования.
В зависимости от тех или иных свойств или функций ЯП делят на разные группы.
Например, по типам выполняемых задач или по принципу организации.
Каждый из языков подходит под определенную область:
Их применяют для достижения разных целей, у них разная степень сложности. Например, синтаксис JavaScript на порядок сложнее синтаксиса Python.
Есть три типа языков:
Все они обладают своим собственным функционалом, не сходным с другими.
В чем разница между статической и динамической типизацией?
Статическая типизация означает проверку типов перед запуском программы, динамическая — проверку типов, когда программа запущена.
Связь между backend и frontend частями в разработке происходит следующим образом:
1. Frontend отправляет пользовательскую информацию в Backend.
2. В Backend информация обрабатывается
3. После обработки данные возвращаются и принимают понятный для пользователя внешний вид.
*Полезное видео: Backend web development - a complete overview
Что такое стек?
Это набор инструментов, которые команда применяет при работе в проектах.
Он включает в себя языки программирования, фреймворки, системы управления базами данных, компиляторы и другие инструменты.
Дженерик (обобщенное программирование) – парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание.
SOAP и REST
SOAP и REST — это два стиля API, которые подходят к вопросу передачи данных с другой точки зрения.
SOAP — это стандартизированный протокол, который отправляет сообщения с использованием других протоколов, таких как HTTP и SMTP.
SOAP и REST позволяют создавать собственный API.
API означает интерфейс прикладного программирования. Это позволяет передавать данные из приложения в другие приложения. API получает запросы и отправляет ответы через интернет-протоколы, такие как HTTP, SMTP и другие. Многие популярные веб-сайты предоставляют общедоступные API-интерфейсы для своих пользователей, например, Google Maps имеет общедоступный REST API, который позволяет настраивать Google Maps с вашим собственным контентом. Есть также много API, которые были созданы компаниями для внутреннего использования.
Спецификации SOAP являются официальными веб-стандартами.
В отличие от SOAP, REST — это не протокол, а архитектурный стиль. Архитектура REST устанавливает набор рекомендаций, которым необходимо следовать, если вы хотите предоставить веб-службу RESTful, например, существование без сохранения состояния и использование кодов состояния HTTP.
Поскольку SOAP является официальным протоколом, он поставляется со строгими правилами и расширенными функциями безопасности, такими как встроенная совместимость с ACID и авторизация. Более высокая сложность требует большей пропускной способности и ресурсов, что может привести к снижению времени загрузки страницы. REST был создан для решения проблем SOAP. Поэтому у него более гибкая архитектура.
Он состоит только из простых рекомендаций и позволяет разработчикам реализовывать рекомендации по-своему. Он допускает различные форматы сообщений, такие как HTML, JSON, XML и простой текст, в то время как SOAP допускает только XML. REST также является более легкой архитектурой, поэтому веб-сервисы RESTful имеют более высокую производительность. Из-за этого он стал невероятно популярным в эпоху мобильных устройств, где даже несколько секунд имеют большое значение (как по времени загрузки страницы, так и по доходам).
Методы HTTP-запроса
Запросы: https://devanych.ru/technologies/metody-http-zaprosa
GET - запрашивает содержимое конкретного ресурса, получает данные и никак не должен изменять эти данные.
OPTIONS - определяет возможности и используемые методы веб-сервера. В ответном сообщении должен быть добавлен заголовок Allow с перечислением всех поддерживаемых сервером методов.
HEAD - похож на GET, но не возвращает тело ответа, а только стартовую строку и заголовки. Используется для получения метаданных, а также проверки и валидации ресурса.
POST - создает новый ресурс из переданных данных в запросе.
PUT - изменяет содержимое запроса по-указанному URI.
PATCH - похож на PUT, но применяется только к фрагменту ресурса.
DELETE - удаляет конкретный ресурс по-указанному URI.
TRACE- возвращает служебную отладочную информацию о том, какие данные добавляют или изменяют прокси-серверы в запросе.
CONNECT - запускает двустороннюю связь с запрошенным ресурсом. Метод обычно используется для открытия прозрачного TCP/IP-туннеля.
JSON & XML
Для передачи информации как в интеграции, так и для сайтов используются определённые форматы данных. JSON и XML используются для получения и отправки данных с веб-сервера.
JSON (JavaScript Object Notation) — простой формат обмена данными, основанный на языке программирования JavaScript. Использует человеко-читаемый текст для передачи объектов данных.
JSON использует читаемый текст для хранения и передачи данных, содержащих массивы и значения пар атрибутов. Текст JSON можно легко преобразовать в объект JavaScript внутри JSON, а затем отправить на сервер. Он основан на JavaScript и эффективно используется с множеством языков программирования.
XML — это обширный язык разметки, созданный для переноса данных. Он определяет некоторый стандартный набор правил для кодирования файлов в читаемом формате. Цель разработки этого XML — сосредоточиться на простоте и удобстве использования в Интернете.
Socket - это действительно программный интерфейс. Это абстрактное понятие, которое, в большинстве случаев, используется для коммуникации программ в сети.
Socket = IP+порт
WebSocket - это протокол обмена данными (как, например, http, ftp, ssl и т.д.). Этот протокол идет поверх (передается посредством) протокола TCP.
При работе по протоколу WebSocket вы будете использовать обычные сокеты для соединения. Так же как и при работе с другими протоколами будут использованы сокеты (и для работы с http, с ftp и др.).
Протокол WebSocket создавался для того, чтобы можно было поддерживать длительные неразрывные соединения между браузером (который является клиентом) и веб-сайтом (который является сервером).
WebSocket — это двунаправленный протокол связи между клиентом (браузером) и сервером, позволяющий обмениваться сообщениями в режиме реального времени
Он устанавливает одно соединение и передает ответ на единственный запрос в тот момент, когда ответ появился — без дополнительных запросов, как у HTTP-протокола. Запросы и ответы приходят без задержек и сетевой нагрузки.
Подходит для маркетплейсов, бирж, игровых приложений, чатов, соцсетей, интернета вещей, push-уведомлений.
AJAX - Ajax использует протокол HTTP и может отправлять запросы с использованием методов POST / GET от клиента к серверу. В Ajax при отправке запроса сервер отправляет ответ для этого запроса, а соединение заканчивается.
AJAX - запрос → ответ. Создает соединение с сервером, посылает заголовки запроса с некоторыми данными, получает ответ с сервера, закрывает соединение. Запросы отправляются часто. Поддерживается во всех основных браузерах
Как плюс: просто реализовать, данные можно сжать.
Как минус: слишком много ненужных запросов. А также большие задержки между созданием и получением данных. Сервер отсылает данные не тогда, когда они появились, а когда прилетит новый запрос.
Long poll - запрос → ожидание → ответ. Создает соединение с сервером, как AJAX, но оставляет соединение открытым некоторое время (не сильно большое). Сервер НЕ реагирует на запрошенную информацию и ждет, пока не появится новой информации. Пока соединение открыто - клиент ждет данные с сервера. Как только что-то новое появилось у сервера - он отсылает ее клиенту. Клиент получив новую информацию или если истекло время ожидания НЕМЕДЛЕННО отсылает другой запрос серверу, запуская процесс ожидания на нем снова. Как правило, соединение обычно переустанавливают раз в 20-30 секунд, чтобы избежать возможных проблем, например с HTTP-прокси. Поддерживается во всех основных браузерах.
Как плюс: малое количество запросов (по сравнению с обычным AJAX)
Сервером называют компьютер, который предоставляет какой-то сервис (или несколько сервисов) в частной сети или интернете. Другие устройства — их ещё называют клиентами — могут подключаться к серверу через разные порты, чтобы получить этот сервис. Серверы обычно называют по имени сервиса, который они предоставляют. Например, если сервер принимает запросы через 80-й порт и отдает клиентам веб-страницы, такой сервер обычно называют веб-сервером. Также существуют файловые серверы, почтовые серверы, серверы аутентификации, серверы баз данных, серверы приложений и тому подобные.
Клиент — это устройство, которое подключается к серверам, чтобы пользоваться их сервисами или ресурсами. Клиентом может быть компьютер, веб-сайт, ПО или встроенная система. Например, когда вы заходите на веб-сайт, ваш браузер становится клиентом. По аналогии с именованием серверов, клиенты тоже называются в зависимости от сервиса, которым они пользуются: бывают email-клиенты, веб-клиенты, клиенты баз данных или клиенты онлайн-чатов.
Монолитная клиент-серверная архитектура не лишена недостатков. Сбои в монолитных системах влияют на всю систему, а сопровождать их довольно сложно. При микросервисном подходе разработчики разбивают большую монолитную систему на небольшие сервисы — микросервисы. Так называют слабосвязанный изолированный сервис, отвечающий за какой-то процесс.
База данных — это компонент, в котором хранятся сведения различных типов. Есть разные типы баз данных: SQL, облачные, «ключ — значение» (key-value), графовые и иерархические (documented). Серверы баз данных позволяют клиентам взаимодействовать с базами данных по специальным протоколам.
Бизнес-аналитик - собирает и структурирует требования к продукту, делая их понятными для всех участников проекта.
!!! В чем разница между системным аналитиком, бизнес аналитиком и Data Analyst?
Системный аналитик работает с требованиями к программному обеспечению (ПО), автоматизированной или информационной системе, тогда как бизнес-аналитик не ограничивается только этими корпоративными активами, а обеспечивает возможность проведения изменений в организации, которые принесут пользу заинтересованным сторонам (стейкхолдерам) через выявление их потребностей и обоснование оптимальных решений.
Если же необходимо проанализировать так называемые «сырые данные» из разных источников и представленные в разных форматах, то Data Analyst выполняет целый комплекс специальных операций
Иногда аналитик больших данных (Big Data) также занимается разработкой и тестированием моделей машинного обучения (Machine Learning). Однако, в большинстве случаев, Machine Learning является областью ответственности другого Big Data специалиста – исследователя или ученого по данным (Data Scientist)
Тест-кейс — это такое описание проверки работы системы, которое может выполнить любой человек из команды, будь то тестировщик, разработчик, аналитик или даже бизнес-заказчик.
Тестировщик создает тест-кейс, чтобы проверить, работает ли определенная фича должным образом, и чтобы подтвердить, что функционал, UI/UX и другие параметры системы удовлетворяют всем соответствующим стандартам, руководствам и требованиям клиентов
В чем связь бизнес аналитика и QA?
Бизнес аналитик подготавливает требования, которые должны быть у системы, программы, проекта. QA, в свою очередь, проверяет, что работа функционала соответствует условиям, которые написаны в требования.
Выделяют 4 основных уровня тестирования:
Пирамида Тестирования
Дымовые тесты (Smoke Tests): выполняются каждый раз, когда мы получаем новый билд (версию), проекта (системы) на тестирование, при этом считая её относительно нестабильной. Нам нужно убедиться что критически важные функции AUT (Application Under Test) работают согласно ожиданиям. Идея данного вида тестирования заключается в том, чтобы выявить серьезные проблемы как можно раньше, и отклонить этот билд (вернуть на доработку) на раннем этапе тестирования, чтобы не углубляться в долгие и сложные тесты, не затрачивая тем самым время на заведомо бракованное ПО.
Санитарное тестирование: используется каждый раз, когда мы получаем относительно стабильный билд ПО, чтобы определить работоспособность в деталях. Иными словами, здесь проходит валидация того, что важные части функциональности системы работают согласно требованиям на низком уровне.
Ре-тест: проводится в случае, если фича/функциональность уже имела дефекты, и эти дефекты были недавно исправлены
Регрессионные тесты: собственно то, что занимает львиную долю времени и для чего существует автоматизация тестирования. Проводится регрессионное тестирование AUT тогда, когда нужно убедиться что новые (добавленные) функции приложения / исправленные дефекты не оказали влияния на текущую, уже существующую функциональность, работавшую (и протестированную) ранее.
Юнит-тесты - это тесты белого ящика, которые проверяют отдельные части кода, такие как функции, методы и классы. Они должны быть написаны на том же языке, что и тестируемый продукт и храниться в том же репозитории. Они часто прогоняются как часть сборки, чтобы сразу же увидеть успешно ли завершается тест или нет.
Интеграционные тесты - это тесты черного ящика, которые проверяют, что интеграционные точки между компонентами продукта работают корректно. Тестируемый продукт должен быть в активной фазе и развернут на тестовом окружении. Тесты сервиса часто являются именно тестами интеграционного уровня.
End-to-end тесты - это тесты черного ящика, которые проверяют пути выполнения системы. Их можно рассматривать как многошаговые интеграционные тесты. Тесты для веб-интерфейса часто являются именно end-to-end тестами.
DevOps - это подход, методология и даже культура и философия процесса разработки, при котором программисты, тестировщики и системные администраторы могут работать над продуктом быстрее и эффективнее.
Подход помогает снизить ошибки при передаче проекта от разработчиков к тестировщикам и сисадминам и наладить между ними взаимодействие.
В основе лежит идея, что разработка, тестирование и эксплуатация цифровых продуктов — это единый, бесшовный и циклический процесс.
Это набор практик, нацеленных на активное взаимодействие и интеграцию специалистов по разработке и эксплуатации.
Нацелена на то, чтобы помогать организациям быстрее создавать и обновлять программные продукты (популяризация термина DevOps в 2009 г.).
Ссылка на презентацию: http://samokhvalov.info/blog/pictures/DevOps%20%D0%BE%D1%82%20%D0%90%20%D0%B4%D0%BE%20%D0%AF.pdf
chmod (от англ. change mode) — команда для изменения прав доступа к файлам и каталогам, используемая в Unix-подобных операционных системах
Архитектура веб-сервиса, которая позволит переключаться между версиями по распространенным схемам развертывания:
Обе схемы используют пару бэкендов: «синий» и «зеленый».
Сначала на одном из бэкендов (например, на «синем») размещается стабильная версия, доступная пользователям, а другой («зеленый») используется для тестирования следующей версии. Когда тестирование окончено, бэкенды меняются ролями:
После этого основным становится «зеленый» бэкенд, а на «синем» бэкенде можно тестировать следующую версию сервиса. Также, пока на «синем» бэкенде остается предыдущая версия, на нее можно откатить сервис, снова поменяв бэкенды ролями.
Канареечный релиз (canary release) — это метод снижения риска внедрения новой версии в эксплуатацию путем предоставления изменения небольшому подмножеству пользователей с нарастанием до состояния, когда это изменение становится доступным для всех.
Балансировщик нагрузки (Load Balancer) — сервис, помогающий серверам эффективно перемещать данные, оптимизирующий использование ресурсов доставки приложений и предотвращающий перегрузки. Он управляет потоком информации между локальным или облачным хранилищем и конечным устройством — ПК, ноутбук, планшет или смартфон.
С помощью инструмента Docker девопс организует упаковку кода в контейнеры. Примерно как обычные грузовые контейнеры, которые благодаря стандартным габаритам укладываются, как конструктор, на палубе любого сухогруза. Только внутри виртуальных контейнеров — код, который «едет» на сервер, чтобы там исполняться. Девопс настраивает систему управления контейнерами — Swarm. Она следит за их состоянием, совместной работой, распределяет нагрузку.
Контейнеризация помогает:
Преимущества DevOps:
Docker — это платформа контейнеризации и среда выполнения, а Kubernetes — платформа для запуска и управления контейнерами в нескольких контейнерных средах выполнения.
Основное различие контейнеров и виртуальных машин заключается в том, что виртуальные машины виртуализируют весь компьютер вплоть до аппаратных уровней, а контейнеры — только программные уровни выше уровня операционной системы.
Окружения среды разработки:
Мерж реквест / Пул реквест - мерж-реквест или пулл-реквест создаётся в системе управления git-репозиториями. Это запрос на мерж одной ветки в другую, подобно задаче, назначаемый на какого-либо исполнителя. GitHub и Bitbucket используют термин «пулл-реквест», потому что первое необходимое действие — сделать пулл предлагаемой ветки.
Деплой - это развертывание/помещение исполняемого кода на сервер, где он будет работать.
Deploy - это целый процесс действий, которые делают программный продукт готовым к использованию:
Docker — больше, чем сами контейнеры. Это обширный набор инструментов для разработчиков, позволяющий создавать, публиковать, запускать и управлять контейнерными приложениями. Это платформа, которая позволяет упаковать в контейнер приложение со всем окружением и зависимостями, а затем доставить и запустить его в целевой системе.
Создание образов - docker Build создает базовый образ контейнера, который включает все необходимое для запуска приложения — его код, двоичные файлы, сценарии, зависимости, конфигурацию, переменные среды и другое. Для определения и запуска много контейнерных приложений применяется инструмент docker compose.
Docker daemon - сервис, через который осуществляется взаимодействие с контейнерами
Docker client - интерфейс командной строки управления Docker daemon
Docker image - файл (образ), из которого разворачиваются контейнеры
Docker container - развернутое из образа приложение
Docker registry - репо с докер образами
Docker file - инструкция для сборки образа
Kubernetes (K8s) — портативная платформа оркестрации контейнеров с открытым исходным кодом. Этот инструмент используется для автоматизации развертывания контейнерных приложений на разных хостах, а также планового масштабирования и управления ими.
Для чего нужен Kubernetes
Виртуальная машина — это полноценная операционная система внутри другой ОС, с собственным ядром и другими изолированными ресурсами. Контейнер — не готовый «компьютер», а лишь изолированный механизм для запуска одного приложения.
В отличие от аппаратной виртуализации, контейнеризация обеспечивает разделение ресурсов не на аппаратном уровне, а на базе ядра операционной системы. Контейнеры более легковесны, менее требовательны и полностью зависимы от «материнской» ОС, чем VM.
Контейнер приложения — экземпляр исполняемого программного обеспечения (ПО), который объединяет двоичный код приложения вместе со всеми связанными файлами конфигурации, библиотеками, зависимостями и средой выполнения.
Смысл и главное преимущество технологии в том, что контейнер абстрагирует приложение от операционной системы хоста, то есть остается автономным, благодаря чему становится легко переносимым — способным работать на любой платформе
Зачем нужна контейнеризация
Преимущества контейнеризации
Что такое inode в Linux?
Индексный дескриптор в файловой системе, который хранит метаданные о файлах, за исключением имени файла. В дескрипторе хранится: длина файла в байтах, id устройства с файлом, id пользователя владельца файла, id группы файла, режим файла (права доступа), timestamp последнего изменения файла, счётчик хардлинков, указатели на блоки файла.
Что такое POSIX?
Набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. Создан для совместимости различных Unix-подобных дистрибутивов.
Как выполняется настройка CI/СD, процесс: Настройка GitLab CI/CD - Losst
Continuous Integration, Continuous Delivery — непрерывная интеграция и доставка — это технология автоматизации тестирования и доставки новых модулей разрабатываемого проекта заинтересованным сторонам (разработчики, аналитики, инженеры качества, конечные пользователи).
Pipeline - организованный процесс миграции кода из репозитория до конечного сервера через ci/cd.
Процесс пуша кода по средам разработки: build → test → staging → prod
Разница между Continuous Delivery и Continuous Deployment
Этапы CI/CD
Написание кода. Каждый из разработчиков пишет код своего модуля, проводит ручное тестирование, а затем соединяет результат работы с текущей версией проекта в основной ветке. Для контроля версий используется система Git, либо аналогичные решения. Когда участники команды опубликуют код своих модулей в основной ветке, начнется следующий этап.
Сборка. Система контроля версий запускает автоматическую сборку и тестирование проекта. Триггеры для начала сборки настраиваются командой индивидуально — фиксация изменений в основной ветке проекта, сборка по расписанию, по запросу и т.д. Для автоматизации сборки используется Jenkins, либо аналогичный продукт.
Ручное тестирование. Когда CI система успешно проверила работоспособность тестовой версии, то код отправляется тестировщикам для ручного обследования. При этом тестовая сборка получает номер кандидата для дальнейшего релиза продукта (например, v.1.0.0-1).
Релиз. По итогам ручного тестирования сборка получает исправления, а итоговый номер версии кандидата повышается (например, после первого исправления версия v.1.0.0-1 становится v.1.0.0-2).
Развертывание. На этом этапе рабочая версия продукта для клиентов автоматически публикуется на production серверах разработчика. После этого клиент может взаимодействовать с программой и ознакомиться с ее функционалом
Поддержка и мониторинг. Конечные пользователи начинают работать с продуктом. Команда разработки поддерживает его и анализирует пользовательский опыт.
Инструменты для CI/CD
GitLab: среда позволяет управлять репозиториями проекта, документировать функциональность и результаты доработок и тестов, а также отслеживать ошибки и работать с CI/CD pipeline.
Docker: система автоматического развертывания проектов. Поддерживает контейнеризацию и позволяет упаковать проект вместе со всем окружением и зависимостями в контейнер, который можно перенести на Linux-систему.
Circle-CI: продукт также использует бесшовную интеграцию с GitHub. Предлагается веб-интерфейс для отслеживания версий сборок и ведения задач. Также решение поддерживает отправку оповещений по почте, slack.
Jenkins: довольно популярный инструмент в DevOps среде. Заслужил свою репутацию благодаря работе с различными плагинами, позволяющими гибко настраивать CI/CD процессы под требования разработки конкретного продукта. Jenkins система с открытым исходным кодом, то есть продукт доступен для просмотра, изучения и изменения, создан на Java. Дженкинс позволяет автоматизировать часть процесса разработки программного обеспечения, без участия человека. Данная система предназначена для обеспечения процесса непрерывной интеграции программного обеспечения. Jenkins является бесплатным инструментом, обладающим огромными возможностями в виде тысяч плагинов, которые постоянно добавляются и обновляются.
Преимущества Jenkins:
-режим работы сразу в двух и более средах;
-повышенная надежность развертываемого программного обеспечения;
-уменьшение ошибок, связанных с человеческим фактором;
-уменьшение затрат на персонал.
-упрощение рабочего процесса (нет необходимости нанимать дорогостоящую команду опытных специалистов)
Непрерывная интеграция (Continuous Integration, CI) это процесс разработки программного обеспечения, смысл которого заключается в постоянном соединении рабочих копий в общую линию разработки, и выполнении постоянных автоматизированных сборок проекта для быстрого выявления возможных ошибок и решения интеграционных проблем.
Что такое система контроля версий?
Это сервис или программа, в которой хранятся данные о продукте, чтобы в любой момент можно было вернуться к любому этапу его создания. Самый известный сервис для этого — Git.
Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в Git, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок. Для увеличения эффективности, если файлы не были изменены, Git не запоминает эти файлы вновь, а только создает ссылку на предыдущую версию идентичного файла, который уже сохранен. Git представляет свои данные как, скажем, поток снимков.
Код-ревью — это процесс проверки кода, который позволяет: выявить → ошибки, пропуски, уязвимости и стилистические недочеты (с точки зрения проекта или принятых в команде правил).
Основные команды Git:
Git pull отличается от git fetch
git pull — это шоткод для последовательности двух команд: git fetch (получение изменений с сервера) и git merge (сливание в локальную копию).
При использовании fetch, git собирает все коммиты из целевой ветки, которых нет в текущей ветке, и сохраняет их в локальном репозитории. Однако он не сливает их в текущую ветку. Это особенно полезно, если вам нужно постоянно обновлять свой репозиторий, но вы работаете над функциональностью, неправильная реализация которой может негативно сказаться на проекте в целом. Чтобы слить коммиты в основную ветвь, нужно использовать merge.
Ссылка на README GIT, консольные команды:
GitHub - cyberspacedk/Git-commands: Шпаргалка по консольным командам Git
Git Flow - альтернативная модель ветвления Git, в которой используются функциональные ветки и несколько основных веток. Эта модель была впервые опубликована и популяризована Винсентом Дриссеном. В Git-flow используется больше веток, каждая из которых существует дольше, а коммиты обычно крупнее.
В соответствии с этой моделью разработчики создают функциональную ветку и откладывают ее слияние с главной магистральной веткой до завершения работы над функцией. Такие долгосрочные функциональные ветки требуют тесного взаимодействия разработчиков при слиянии и создают повышенный риск отклонения от магистральной ветки. В них также могут присутствовать конфликтующие обновления.
Последовательность действий при работе по модели Gitflow:
Виртуальный хостинг (Shared) - сервер, на котором расположено множество сайтов. Они используют одинаковое программное обеспечение и имеют равные возможности. На одном сервере может находиться около тысячи сайтов. Как правило, на таком хостинге располагают небольшие веб-ресурсы, не требующие больших мощностей и дискового пространства. Благодаря своей низкой стоимости и отсутствию необходимости в администрировании сервера, виртуальный хостинг — самый распространенный выбор среди пользователей.
Виртуальный выделенные сервер (VPS-сервер)
VPS отличается от виртуального хостинга тем, что владелец такого сервера может устанавливать и настраивать любое программное обеспечение. По сути, управление VPS-сервером не отличается от управления физическим сервером. Сайту на VPS выделены определенные ресурсы в соответствии с тарифом.
Выделенные физический сервер (Dedicated)
Пользователю дается отдельный сервер в дата-центре под самостоятельное управление с возможностью устанавливать любую операционную систему, менять программное обеспечение под свои нужды. Такой хостинг используется для масштабных ресурсоемких проектов с высокими требованиями и хорошо подойдет для крупных интернет-магазинов с высокой посещаемостью или, например, онлайн-игр.
Облачный хостинг (Cloud hosting)
Облачный хостинг — объединённая система серверов, на которых располагаются клиентские сайты. Таким образом, выделяемые для клиента мощности не ограничиваются одним сервером, а распределяются сразу между несколькими серверами. Это обеспечивает бесперебойную работу ресурса вне зависимости от выхода из строя какого-то одного сервера. Кроме повышенной производительности, облачный хостинг привлекает клиентов и другими преимуществами. Во-первых, пользователь платит только за те ресурсы, которые использовал — цена услуги зависит от объемов потребления мощностей. Во-вторых, на облачном хостинге при изменении нагрузки выделенные ресурсы увеличиваются или уменьшаются автоматически.
Colocation — размещение оборудования клиента в дата-центре провайдера
Colocation буквально переводится как «соразмещение», что точно описывает этот вид хостинг-услуг. Ваш сервер располагается на технологической площадке провайдера (дата-центре), который обеспечивает его высокоскоростным интернет-каналом и заботится о прочих необходимых условиях содержания.
В компьютерах есть два вида портов — физические и программные (или сетевые):
Физический порт — это разъем на компьютере, с помощью которого можно подключить флешку, сетевой кабель, принтер, наушники и так далее. Физический порт обменивается электричеством с устройством, который вставлен в этот порт.
Сетевой порт — то число, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI. Оно используется для определения программы или процесса-получателя пакета в пределах одного IP-адреса.Порты позволяют определить сетевые приложения, работающие на компьютере, множество которых может быть запущено одновременно. Основными сетевыми программами могут быть:
Порт отображается в виде 16 битного числа от 1 до 65535, которое доступно приложениям для того, чтобы обмениваться трафиком.
Для чего нужны порты?
Основным предназначением сетевых портов является прием и передача данных определенного вида, а также устранение ошибки неоднозначности при попытке установить связь с хостом по IP-адресу. Для обеспечения трансляции данных с веб-сервера необходимо указать IP адрес хоста и номер порта, определяющий программу веб-сервера.
Физические порты при подключении определяют, к какой программе относятся данные, которые получает сетевая плата. Например, для использования порта одновременно сетью и интернетом пользуются разные программы:
Ссылка на статью: Что такое порты, какие бывают и зачем они нужны? — FenixHost на vc.ru
Для чего нужны серверы?
Основное направление — поддержка интернет-ресурсов. Количество задач, возлагаемых на сервер велико. Вот несколько сценариев, в которых необходимы подобные устройства:
Подбор серверных систем происходит по сформулированным запросам заказчиков. Благодаря широкому ассортименту не просто с ходу подобрать подходящее устройство, чтобы оно удовлетворяло пожеланиям клиента и оперативно справлялось с поставленными задачами, поэтому ориентируются на:
Сервер базы данных
С данным типом устройств есть возможность обрабатывать данные, которые хранятся совместно, при этом по правилам структурированные и организованные. Самые популярные инструменты для управления базами данных:
Серверная система будет с определенными параметрами, которые зависят от некоторых нюансов:
Узел должен быть надежным и отказоустойчивым, чтобы доступность данных была на необходимом уровне.
Брандмауэры, файрволлы
Защитные системы, блокирующие отрицательное воздействие из интернета. Исходящие данные проходят без проблем. А обратная связь организована сложнее: полный анализ поступающего информационного потока. Сервер определяет опасные, вредоносные данные и извлекает их из общей информационной массы. Сегодня такие экраны отлично выполняют свои функции, защищают от атак, вирусов, которые так и норовят проникнуть из интернета и украсть информацию или все сломать.
Ссылка на полезный ресурс: https://telegra.ph/Pochemu-SQL--ehto-must-have-dlya-menedzhera-v-IT-11-02
Система управления базами данных (СУБД) является субъектом управления и программой, а база данных объектом управления и собственно данными, которыми управляет СУБД.
*Кратко:
Примеры NoSQL: Mongodb, Redis, Oracle Database, Firebird, Interbase, MS SQL Server,
Postman — это HTTP-клиент для тестирования API. HTTP-клиенты тестируют отправку запросов с клиента на сервер и получение ответа от сервера. API (Application Programming Interface) — это интерфейс для обмена данными с сервера между двумя приложениями или компонентами ПО. Тестировщикам Postman помогает в проектировании дизайна API и создании mock-серверов (имитаторов работы приложения).
Swagger – это язык описания интерфейса для описания RESTful API, выраженных с помощью JSON. Swagger используется вместе с набором программных средств с открытым исходным кодом для проектирования, создания, документирования и использования веб-служб RESTful.
Methodologies, Time Management, Risk management, People Management
*Сборник примеров документации для работы PM: PM — Яндекс Диск (yandex.ru)
Basics:
Video about PM: Project Management Tutorial: 11 Years of Experience in 45 Minutes
Заинтересованные стороны. Была область знаний, а стал домен. Ничего, по сути, не изменилось.
Команда. Раньше PMBOK Guide не различал людей и асфальтоукладчики. Теперь авторы увидели различие и выделили команду в отдельный домен. Это выделение напрашивалось давно уже. Так что здесь явное улучшение.
Неопределенность. Была область «управление рисками», а стал домен неопределенность. Яйца в профиль.
Поставка результатов. Были две области знаний «Содержание» и «Качество», зачем-то разделенные. Отчасти логика была, т.к. тема качества развивается в отдельных стандартах. Но с точки зрения практики отделение было нелогичным. Сейчас все стало на свои места – есть один домен, в котором нужно думать о продуктах и их качестве.
Жизненный цикл. Раньше эта тема отделялась от областей в красивую логику. Теперь это стало одним из доменов. Мне кажется, это менее удобным. Возможно, просто нужно привыкнуть. Радует, что тема жизненного цикла проработана глубже. Хотя ребята сами запутались и инкрементный подход проиллюстрировали неверно.
Планирование. Раньше был управленческий цикл из 5 шагов. Конечно, инициация и завершения были довольно куцыми, но вместе с ними последовательность была целостной, законченной. Теперь остались только три самых наполненных действиями шага – планирование, выполнение и мониторинг.
Выполнение. Был шаг управленческого цикла, теперь отдельный домен
Измерение прогресса. Был шаг управленческого цикла «мониторинг и контроль», теперь отдельный домен. Справедливости ради, стало больше четкости, т.к. речь идет только про метрики слежения за прогрессом.
PMBOK, как описано в Руководстве, распознает 49 процессов, которые делятся на пять основных групп процессов и десять областей знаний, типичных для большинства проектов
Что такое скрам?
Фреймворк для разработки проектов, который помогает командам правильно приоритизировать задачи и работу над продуктом. Его основа — итеративная разработка и получение регулярной обратной связи от заказчиков и пользователей. В 2002 году был создан Scrum Alliance во главе с Кеном Швабером и Джефом Сазерлендом. А в 2009 году Кен Швабер официально вышел из Scrum Alliance и основал собственную компанию – Scrum.org. Важным шагом на пути к популяризации Scrum стал выпуск Скрам Гайда в 2010 году, который с момента публикации прошел несколько редакций – 2011, 2013 и 2016 год.
Mind Map
Разница Scrum и Kanban
Разница: SLI SLA SLO
Разница понятий DOD и DOR
Методы приоритезации задач
Чем Scrum отличается от Waterfall? Какие ещё есть методологии и фреймворки, как их использовать?
По сути это Спиральный и Каскадный метод разработки.
Scrum относится к спиральному методу разработки, постоянно увеличивая ценность продукта из итерации в итерацию (спринт). Инкрементный подход, опираемся на полученные знания для планирования следующей итерации. Ценностью данного подхода является постоянное улучшение продукта, в условиях минимальной формализации и отсутствием фиксированных сроков.
Waterfall (Предиктивный ЖЦ) относится к каскадным методам разработки, иначе говоря продукт распиливается на определённые вехи, каждый кусок оценивается по объему работ и фиксируется сроками и критериями приемки, переход между вехами возможен только в случае полного достижения критериев предыдущей. На практике возврат к предыдущей вехе приминяется, при этом происходит переоценка проекта и отодвигание сроков (увеличение затрат).
В каких случаях проекта выбирать скрам, а в каких – ватерфол?
В первую очередь, нужно оценить проект по следующим параметрам:
Почему скрам НЕ работает на гос проектах?
Поэтому Scrum не подходит для государственных проектов и заказов, строительства, военных задач (кроме упомянутого в начале статьи тактического планирования и нанесения удара).
Что такое Agile? Какие у него принципы?
Это гибкий подход к управлению проектами. Работа разделена на множество
итераций, и на каждом этапе могут вноситься изменения.
4 важных принципа: Manifesto for Agile Software Development
1. Люди и взаимодействие важнее процессов и инструментов.
2. Работающий продукт важнее исчерпывающей документации.
3. Сотрудничество с заказчиком важнее согласования условий контракта.
4. Готовность к изменениям важнее следования первоначальному плану.
Что такое Scrum и какие есть там роли?
Scrum — это фреймворк гибкой разработки ПО, основанный на принципах Agile.
Scrum подходит для небольших команд!
Кроме разработчиков в scrum-команду входят: Product Owner: он общается с заказчиком и управляет бэклогом.
Scrum-мастер: он следит за соблюдением принципов Scrum и убирает препятствия для эффективной работы.
В проекте также участвуют пользователи, стейкхолдеры, и клиент, если это заказная разработка.
Что такое спринт? Из чего он состоит?
Это интервал в неделю или две, за который команда выполняет запланированный
объем работы. В каждом из них есть фазы дизайна, разработки, тестирования и демо фичи заказчику. В начале каждого спринта разработчики планируют задачи — новые, либо доработку старых.
Каждый день проходят 15-минутные собрания — члены команды обсуждают, что удалось сделать вчера, что нужно сделать сегодня и что может этому препятствовать. Спринт завершается ретроспективой — оценкой эффективности команды. Также в конце заказчики дают обратную связь по продукту, и если есть доработки, команда добавляет их в следующий спринт.
Что такое груминг бэклога?
Это встреча команды, на которой обсуждаются и оцениваются задачи на ближайшие несколько спринтов. Как правило, на 2-3 спринта вперед.
Что такое рабочий флоу (Work flow)?
Это последовательность рабочих операций. Включает в себя общие задачи команды, шаги по их реализации, коммуникацию со стейкхолдерами, инструменты, постановку целей и результаты работы.
Что такое kick-off?
Kick-off — это первая встреча тех, кто работает над проектом.
На внутреннем kick-off участники команды знакомятся с проектом и между собой.
Менеджер должен рассказать, как будет строиться работа и распределяться
обязанности.
Внешний kick-off — это первая встреча с клиентом. Он проходит после встречи с командой. На нем присутствуют менеджер по продажам, проджект с командой и заказчик. На нем заказчик знакомится с командой и узнает, как будет строиться работа. Также на внешнем kick-off оговаривают, насколько клиент планирует контролировать проект.
Agile:
Ссылки:
Структура: Портфель, программа, подпрограмма, проекты
Пример WBS:
Пакет работ
Описание пакета работ является логическим продолжением структуры разбивки работ. В структуре разбивки работ (WBS) определяются и отображаются код WBS, название, даты, ответственность и ход выполнения пакетов работ.
Задача описания пакета работ - точно определить, какие меры должны быть приняты в ходе обработки пакета работ и каким должен быть конечный результат пакета работ.
Любая важная информация может быть определена как содержание описания пакета работ, например, оценка рисков, персонал и бюджетные ресурсы, материалы, оборудование, инфраструктура. Фактическое содержание описания пакета работ должно быть переопределено от проекта к проекту и зависит от некоторых существенных характеристик (размер, сложность, состав команды, опыт команды).
Процесс управления релизами
Чем Задача отличается от Фичи?
Фича — это дополнительная функция или особенность продукта. Различают несколько видов:
- "базовая фича", которая является неотъемлемой частью продукта — например, возможность ответить на сообщение в мессенджере или поставить лайк в инстаграме;
- "киллер-фича" — это то чем мы значительно отличаемся от конкурентов;
- "вау-фича" - то, чего наш клиент не ждет, но такая функция может его покорить и сделать нашим клиентов навсегда.
Фича описывает сам функционал и как с ним будет взаимодействовать пользователь, какую ценность он получит.
Задача - про исполнение. Вы решили сделать определенную фичу, и в свою очередь вы уже описываете требования к реализации этой фичи для исполнителя, т.е исполнителю вы уже ставите задачу.
Стили лидерства
Traditional / Servant Leader
Стили руководства
Типология D.I.S.C
Impact Mapping
Это инструмент для декомпозиции цели развития продукта через призму влияния на ее достижение клиентов, инвесторов и других заинтересованных лиц.
WSJF — это система оценки задач по формуле: Cost of Delay / Job size. Cost of Delay считает деньги, которые бизнес потеряет, если задача не будет выполнена вовремя.
Приоритезация задач, когда вокруг все “сложно”.
Для расчета риска, EMV (expected monetary value) = P*I
P - probability (вероятность возникновения риска);
I - impact (влияние риска)
Оценка по трем точкам, EAD (estimated activity duration) = (P+4M+O)/6
SD= (P-O)/6
Range= EAD +/-SD*N
Оценка по среднему: (P+M+O)/3
Оценка прогресса по методу EVM
Отслеживание сроков:
SPI (сроки, индекс, %) = EV/PV
SPI (сроки, отклонения) = EV - PV
Отслеживание:
CPI (бюджет, индекс, %) = EV/АС
CPI (бюджет, отклонения) = EV - АС
Сколько каналов связи коммуникации у вас есть в команде:
N*(N-1)/2
Юнит-экономика и метрики
Юнит-экономика: простой способ оценить прибыль бизнеса и его потенциал. Разбор методики
Как управлять релизом, как выбрать наиболее приоритетные фичи: RICE и ICE Scoring: простые техники приоритизации для продвинутых менеджеров продукта / Хабр
Ссылка для расчетов: Hygger
RAID is a project planning technique for identifying key project Risks (R), Assumptions (A), Issues (I), and Dependencies (D). Project teams should complete an initial analysis at the beginning of the project and then monitor the issues
RAID analysis focuses on four key areas:
Тесты:
Как можно ускорить проект?
Ответы Junior:
*** Ответ на Middle/Senior будет подкреплен конкретикой, примерами и дополнительными деталями!
Как мотивировать свою команду разработки на проекте?
*Live-собес с Иваном Дорониным: 🔴 Live-cобес: Project Manager
Что делать, если вы не успеваете к срокам?
Дальше, обычно, ситуация конкретизируется, появляются дополнительные ограничения: «срок сдвигать нельзя», «есть очень важные фичи, а есть не очень» и т.п. Параллельно интересуется «как вы будете выкидывать фичи?», «будете предупреждать сразу или тянуть до последнего?» и т.п.
Что будете делать, если не успеваете протестировать?
-Надо посадить программистов тестировать - это подход из методологии Kanban. -Садиться и самому тестировать функционал.
-Поговорить с заказчиком, выбрать самые важные, которые можно успеть.
-Подключить людей с другого проекта.
Заказчик хочет получить релиз через месяц, а разработчики оценили работу в 6 месяцев.
Надо посмотреть, что запланировали разработчики. Возможно, они хотят сделать сложную архитектуру, которая в данном случае абсолютно не нужна, а время съест много.
Почему уходите из прошлой компании?
Есть стандартный вариант ответа «На этом месте работы я достиг своего потолка, дальнейшего развития не предвидится, а я хочу двигаться дальше». Не стоит говорить плохо о старом месте работы.
Чем хотите заниматься? Какая работа вам интересна?
Надо придумать ответ заранее, желательно с учетом специфики вакансии. Например, мне нравится делать востребованные продукты и релизить их в срок.
Человек хочет увольняться, но не хочет передавать дела. Как его стимулировать?
Дополнительное условие – материальная стимуляция вам недоступна, то есть вы не можете выписать ему премию или оставить в подарок корпоративную страховку на год. Надо пообещать увольняющемуся хорошую рекомендацию для его будущего работодателя.
Сегодня вечером вы уезжаете в отпуск, а тут все сломалось.
Например: «Когда я куда-либо уезжаю, я всегда оставляю вместо себя замещающего и эту проблему будет решать он».
Какое соотношение тестировщиков и программистов вам кажется оптимальным? Это зависит от проекта, но обычно достаточно 2 разработчика на 1 тестировщика, либо в случае потребности в очень высоком качестве 1 к 1.
Что такое реестр рисков?
Это документ, содержащий все выявленные риски проекта, включая список обязательных и потенциальных действий.
Что такое юзабилити?
Это оценка удобства взаимодействие пользователя с интерфейсом. Например,
насколько комфортно работать с сайтом или приложением: все ли понятно, легко ли найти нужные данные и ориентироваться в структуре.
Планирование:
Как ты будешь готовиться к релизу? (приемка, план развертывания, стабилизация)
Проект уже идет, как ты поймешь успеваешь к релизу или нет? Какие метрики?
Метрики проекта по методике Google:
Happiness (Счастье)
— пользовательское удовлетворение;
— ощущение, что продуктом легко пользоваться;
— net promoter score.
Engagement (Вовлечение)
— количество визитов пользователя в неделю;
— количество фото, загружаемых юзером в день;
— количество лайков и шэров.
Adoption (Принятие)
— обновления до новой версии;
— созданные пользователем подписки;
— покупки сделанные новыми пользователями в приложении.
Retention (Возвращаемость)
— количество пользователей, остающихся активными с течением времени
— churn
— повторные покупки
Task Success (Успех ключевых задач)
— успешные поиски;
— время загрузки фотографии;
— полностью заполненный пользователем профиль
!!! Метод освоенного объема (Earned Value Technique, Earned Value Management) — Система методик, объединенных под общим названием, использующихся для измерения и контроля эффективности выполнения проектов. Метод основан на использовании ряда числовых показателей, рассчитываемых по ходу проекта.
Презентация: Управление стоимостью проекта - презентация онлайн
Количественные метрики релиза:
Чтобы понять, как у вас дела, достаточно измерить скорость vs качество вашей работы
Качественные метрики релиза:
Проектные метрики:
Важно: если проект велся корректно, то любое смещение срока реализации должно было фиксироваться запросом на изменение. Подобные решения РМ не принимает — он может только все подготовить, предложить опции дальнейших действий, но последнее слово остается за спонсором.
Планирование:
Финансы:
Кризисы:
Управление ПМом:
Что такое юзер стори?
Это короткое описание фичи в формате ответа на вопрос: «Кто, что и зачем делает?».
Это объяснение фичи с точки зрения конечного пользователя.
Например, для Google Maps это будет так: «Как пользователь, я хочу ввести город, улицу и номер дома в строку поиска, чтобы найти расположение нужного дома на карте»
Что такое критерии приемки проекта?
Это условия, при которых юзер стори можно считать готовой и полностью работающей. Они нужны, чтобы команда сделали именно то, что просил заказчик.
**Для Google Maps критерии будут выглядеть так: На странице есть строка и кнопка поиска. Поиск выполняется, если пользователь вводит город, улицу и номер дома. Когда поиск выполнен, на карте появляется точка, показывающая расположение адреса. Это похоже на описание, только оно включает любые детали юзер стори. А без критериев фича не заработает, или заработает, но не выполнит сценарий юзер стори.
Кейс 1
Ваш проект должен получить достаточно большие инвестиции, а главный разработчик Антон сообщает, что намерен покинуть проект и компанию. При разговоре с ним вы узнаете, что у разработчика три проблемы:
Устал от однообразных задач.
Не устраивает ЗП. Конфликт с коллегой.
Ваши действия, чтобы убедить Антона остаться?
Кейс 2
Вы закончили эстимейт проекта, осталось согласовать его с клиентом. Однако фичу, которую вы оценили в 40 часов работы, клиент требует сделать за 25. Заказчик аргументирует это тем, что его знакомому выполнили похожую таску за такой же срок (25 часов).
Как ускорить разработку?
Кейс 3
Вы недавно начали новый проект. Команда хорошо справляется, однако у разработчика-джуна Александра есть проблема. Ему постоянно не хватает времени. Из-за чего страдает общая производительность.
Что вы будете делать?
Кейс 4
Вы работаете в компании около 6 мес. На данный момент у вас три проекта по разработке различных приложений и четвертый – поддержка готового продукта. В определенный момент вы отдаете себе отчет, что не успеваете, из-за чего страдает качество разработки.
Что вы будете делать, чтобы улучшить ситуацию?
Кейс 5
У вас таска: провести код-ревью базы для клиента. Однако, в вашем распоряжении всего один джун. Остальные команды загружены.
Ваши действия?
Кейс 6
Вы сопровождали проект три месяца и через два дня у вас первый релиз. Трудно избавиться от волнения: в продукте много фич и возможно какая-то из них сломается.
Как будете готовиться к релизу?
Кейс 7
Вы начали новый проект. К этому моменту с командой было оговорено, что каждый день сотрудники должны трекать время в Jira и подробно описывать, на что они его потратили.
Через неделю вы замечаете, что разработчик Юлия не делает этого. Когда вы подняли этот вопрос на дейли, она ответила, что не видит потребности в трекинге времени.
Ваши действия?
Логика и алгоритмы
Архитектура Web приложений:
WEB-клиенты:
Язык разметки HTML:
CSS (язык описания стилей):
Сетевые протоколы
Протокол HTTP
Web-сервера
Архитектура frontend - backend
MVC фреймворки
Работа с СУБД
Обработка форм
Сессии и Авторизация
Начало проекта
Методы сбора требований
Иерархическая структура работ
Оценка проекта
Управление качеством проекта
Сроки и расписание проекта
Риски
Стоимость и бюджет проекта
Управление изменениями
Управление заинтересованными сторонами проекта
Прогресс проекта
Завершение проекта
Инструменты руководителя проекта
Гибкие методологии разработки ПО
Управление командой
Постановка и контроль задач
Основы коммуникации
Фасилитация
Переговоры и конфликты
Деловая коммуникация
Командное развитие
Что дальше?
!!! vc.ru большие подборки для проджектов и продактов:
Подборка подкастов: https://habr.com/ru/companies/sbermarket/articles/751056/
Статья по сертификации для проектного руководителя от Ивана Селиховкина, полный разбор: https://iselihovkin.com/blog/tpost/alnomide91-sertifikatsii-chto-vibrat-menedzheru-pro
*Работа CMS заключается в предоставлении возможности изменения содержимого базы данных в удобном визуальном редакторе. Таким образом, она позволит оперативно отредактировать данные не только владельцу веб-ресурса, но и техническому специалисту, а ее установка повысит удобство работы в большинстве случаев.
Примеры наиболее популярных систем управления:
Что происходит, когда пользователь вводит запрос в браузер?
Пользователь вводит в браузере адрес сайта > браузер ищет IP адрес сервера (такая информация хранится в распределенной системе серверов — DNS)
Перед тем, как обращаться к DNS, браузер пытается найти запись об IP-адресе сайта в ближайших местах, чтобы сэкономить время:
Не обнаружив подходящих записей в кэше, браузер формирует запрос к DNS-серверам, расположенным в интернете.
Например, если нужно найти IP-адрес сайта mail.vc.ru, браузер спрашивает у ближайшего DNS-сервера «Какой IP-адрес у сайта mail.imperium.im?».
Сервер может ответить: «Я не знаю про mail.imperium.im, но знаю сервер, который отвечает за imperium.im». Запрос переадресовывается дальше, на сервер «выше», пока в итоге один из серверов не найдет ответ об IP-адресе для сайта.
Как только браузер узнал IP-адрес нужного сервера, он пытается установить с ним соединение. В большинстве случаев для этого используется специальный протокол — TCP.
TCP — это набор правил, который описывает способы соединения между устройствами, форматы отправки запросов, действия в случае потери данных и так далее.
После установки соединения браузер отправляет специальный запрос, в котором просит сервер отправить данные для отображения страницы. В этом запросе содержится информация о самом браузере, временные файлы, требования к соединению и так далее.
Задача браузера — как можно подробнее объяснить серверу, какая именно информация ему нужна.
В общении браузера и сервера выделяют два типа запросов. GET-запрос используется для получения данных с сервера — например, отобразить картинку, текст или видео. POST-запрос — используется для отправки данных из браузера на сервер, например, когда пользователь отправляет сообщение, картинку или загружает файл.
Сервер получил запрос от браузера с подробным описанием того, что ему требуется. Теперь ему нужно обработать этот запрос. Этой задачей занимается специальное серверное программное обеспечение — например, nginx или Apache. Чаще всего такие программы принято называть веб-серверами.
Веб-сервер в свою очередь перенаправляет запрос на дальнейшую обработку к программе-обработчику — например, PHP, Ruby или ASP.NET. Программа внимательно изучает содержимое запроса — например, понимает, в каком формате нужно отправить ответ и какие именно файлы нужны. И собирает ответ.
Когда ответ сформирован, он отправляется веб-сервером обратно браузеру. В ответе как правило содержится контент для отображения веб-страницы, информация о типе сжатия данных, способах кэширования, файлы cookie, которые нужно записать и так далее.
Браузер распаковывает полученный ответ и постепенно начинает отображать полученный контент на экране пользователя — этот процесс называется рендерингом.
Сначала браузер загружает только основную структуру HTML-страницы. Затем последовательно проверяет все теги и отправляет дополнительные GET-запросы для получения с сервера различных элементов — картинки, файлы, скрипты, таблицы стилей и так далее. Поэтому по мере загрузки страницы браузер и сервер продолжают обмениваться между собой информацией.
Параллельно с этим на компьютер как правило сохраняются статичные файлы пользователя — чтобы при следующем посещении не загружать их заново и быстрее отобразить пользователю содержимое страницы.
Как только рендеринг завершен — пользователю отобразится полностью загруженная страница сайта
ПО для трека прогресса и отображения задач, таск-системы:
ПО для коммуникаций
ПО для составления схем
ПО для хранения документации
Git:
Design:
TG-channels:
Sites:
Задачи, которые выполняет ПМ регулярно
(с) Анна Огудина @anogudina
Вопросы + Опорные пункты для практики ответов
Группы вопросов:
|
Что спрашивают на интервью?
Самый сложный проект?
Что говорить:
Самая большая команда, которой управляли?
Что говорить:
Ваш опыт управления проектами?
Задачи, которые решали на проектах?
Опыт управления другими менеджерами?
Как вы оцениваете качество работы подчиненных ПМов?
Мотивация других ПМов?
Отработка эскалации в старшей роли?
🔸Менеджмент🔸
1. Плюсы и минусы Scrum
2. В чем принципиальное отличие Scrum от Kanban?
3. Что такое Agile и Waterfall, чем отличаются и для каких проектов подходят?
4. Как вы оцениваете задачи/сроки на проекте?
5. Какие способы мотивации команды знаете?
6. Что такое проект? Этапы реализации проекта?
7. Чем проджект менеджер отличается от продакт менеджера?
8. Основные артефакты проекта
9. Как вы прорабатываете требования к проекту? Опишите по шагам ваши действия.
10. Как управлять рисками проекта?
🔸Кейсы🔸
1. Самый масштабный проект, которым гордитесь
2. Вспомните ситуацию, когда вам надо было кого-то в чем-то убедить
3. Что вы бы сделали, если заказчику не понравился бы результат работы, а времени на доработки уже нет?
4. Что делать, если команда не успевает сдать проект в срок, а дедлайн очень жесткий?
5. Приведите пример конфликтной ситуации/проблемы, и как вы из нее вышли?
6. Пример неудачи на проекте
🔸Тех. часть🔸
1. Что такое backend и frontend? Что такое клиент-сервер?
2. СУБД и БД, в чем отличие?
3. API
4. Что такое REST, SOAP?
5. Жизненный цикл ПО: планирование и анализ, сбор требований, проектирование, разработка, тестирование, развертывание, сопровождение
6. Какие виды тестирования знаете?
Чек-лист для кандидата перед интервью
|
📌 PROJECT MANAGER Q&A GUIDE: https://attachments.convertkitcdnn2.com/511173/e3a49717-c2d7-4d63-98a0-8ff7edcbc626/AlvinthePM%20-%20Interview%20Question%20Guide.pdf
Список вопросов:
Какие этапы есть в жизненном цикле ПО
Формирование требований к ПО на стадии анализа, проектирование, реализация, тестирование, внедрение, эксплуатация и сопровождение, снятие с эксплуатации. Сначала идет стадия, которая отвечает на вопрос: «Что мы будем делать?». Вторая стадия отвечает на вопрос «Как мы это будем делать?». Дальше стадия реализации задуманного проекта, после — тестирование и внедрение. Завершающая стадия — сдача проекта и дальнейшая техническая поддержка.
Чем отличается формирование требований от проектирования
Формирование требований — это процесс, при котором менеджер выясняет у заказчика, какие именно бизнес-процессы он хочет автоматизировать и что он хочет получить. На этом этапе работают аналитики и проектный менеджер. Проектирование — процесс, при котором собирается команда разработчиков и определяет, как будут реализованы требования.
Что такое поддержка
Техническая поддержка не означает, что вы будете отвечать на звонки клиентов вашего заказчика. Речь идет о решении проблемных задач в случае нарушения работы продукта. Если что-то «ломается», перестает работать, команда разработчиков должна оперативно отреагировать и сделать так, чтобы все было хорошо.
Как происходит снятие с эксплуатации
Если продукт теряет свою актуальность, или его заменяют на более новое и техничное решение, происходит снятие с эксплуатации. Разрабатывается план, согласовывается, после чего начинается постепенное снятие с эксплуатации.
Пример: на предприятии есть десктопная версия продукта, но компания решила перейти на новое приложение, которое работает с мобильных устройств. Разрабатывается стратегия перехода, подготавливается продукт, и постепенно переносятся все данные, обучаются сотрудники, внедряются новые инструменты.
Какие сотрудники нужны на каждом этапе жизненного цикла
При формировании требований участвуют бизнес-аналитики, на стадии проектирования ключевые люди — архитекторы и лиды разработчиков. На реализации проекта нужны программисты, дизайнеры. Тестированием занимаются QA инженеры. Для внедрения нужны практически все участники проекта, а «звезда» — проектный менеджер. Если команда выделяет инженера сопровождения, то он отвечает за техподдержку. Если его нет, то участвуют QA, разработчики и проектный менеджер.
Выбор методологии не относится к техническому собеседованию, но есть вопросы, которые косвенно влияют на команду разработчиков. Например, какую форму оплаты труда выбрать. Вы можете столкнуться с такими вопросами:
6 Scaled Agile Frameworks: 6 Scaled Agile Frameworks - Which One Is Right For You?
В чем разница между Fix Price и Time & Material
Fix Price подразумевает, что мы ведем проект за определенный бюджет. Компания оговаривает с заказчиком, что она делает и за какие деньги.
Time & Material применяется в том случае, если у клиента есть неопределенности и он не знает, каким будет финальный продукт. Он готов выкупать команду и платить за сделанную работу. Time & Materials часто применяется в гибкой методологии Scrum.
Какая модель лучше
Fix Price отлично работает для проектов, которые имеют строгий фиксированный бюджет и они четко знают, что хотят получить. В таком случае любые дополнения, изменения или предложения просто не реализуются. Time & Materials подходит для стартапов и проектов, где сложно понять точное количество задач и как будет выглядеть финальный продукт.
В чем разница между бизнес-аналитиком и системным аналитиком
Бизнес-аналитик — это человек, который разбирается в бизнес-процессах компании, которые необходимо автоматизировать. Детально разбирается в их особенностях и ищет подходы, которые помогут улучшить процессы. Изучает требования, цели и задачи заказчика.
Системный аналитик переводит информацию из формата «что нужно сделать» в формат «Как это сделать». Он составляет схемы, диаграммы, работает с технической командой и погружается в архитектуру.
Что такое User Story и Use Cases
User Story — это «история» клиента компании, который проходит путь с ней от начала до конца. Например, от входа в интернет-магазин до регистрации, оформления заявки и покупки товара.
Use Cases — это подробное рассмотрение User Story на определенном этапе. Например, клиент оставил заявку на сайте. Это один из этапов User Story. Но сам кейс — это заполнение конкретных полей при заказе.
Разница между функциональными и нефункциональными требованиями
Функциональные требования предполагают описание того, что нужно сделать. Изучаются требования заказчика. Нефункциональные требования касаются не технической части. Например, время отклика, на каких устройствах должно работать приложение.
Менеджеру приходится постоянно работать с технической документацией. Очевидно, что на собеседовании будут вопросы в этой теме.
Что такое техническое задание
Это самый главный документ, задание на разработку, в котором описывается, что нужно сделать, как это сделать. Туда же пишутся функциональные и нефункциональные требования. Техническое задание — это документ, который описывает, что должно получиться в итоге. Эти требования фиксируются и являются основой для работы всей команды. ТЗ дает защиту как разработчикам, так и клиенту. Потому что каждый соблюдает требования ТЗ.
Use Cases, Test Cases
Use Cases описывает сценарий взаимодействия участников. Он может быть представлен в виде диаграмм или в текстовом виде. Они нужны разработчикам, тестировщикам и всей проектной команде, чтобы понимать полную спецификацию требований. Test Cases нужны для того, чтобы тестировщик прошел по всему продукту и ничего не упустил. Они должны быть написаны так, чтобы любой тестировщик из другого проекта мог разобраться в них.
Где хранить и менеджерить требования
Все зависит от взаимоотношений с заказчиком. Для этой задачи подходит Confluence, причем удобнее хранить у себя, а не на сервере заказчика. Потому что менеджер может писать ту информацию, которую не хотел бы показывать заказчику. Также можно использовать Jira или Notion.
Какой Task Tracker лучше выбрать?
Каждый таск трекер имеет много классных фич, поэтому нужно смотреть возможности инструментов и подбирать под конкретные проекты. Часто пользуются Jira. Это не значит, что она лучшая, но этот инструмент в 33% вакансий на должность проектного менеджера.
Для чего нужен Project Planning?
В первую очередь, чтобы построить диаграмму Ганта. Это базовый инструмент для проектного менеджера, где можно отслеживать этапы ведения проекта, строить его от начала до конца. Инструменты Project Planning нужны для того, чтобы отслеживать результативность выполнения задач, смотреть, сколько остается времени и бюджета.
Это отдельная большая тема, в которой менеджер должен хорошо разбираться, если хочет качественно вести IT-проекты, на котором мы подробно разбираем, что это такое, как устроена и зачем менеджеру вообще знать архитектуру.
Архитектура для проектного менеджера
PM должен понимать, где мы храним данные, с помощью каких данных мы вынимаем эти данные, будет ли архитектура клиент-серверной или другой. Архитектура — это схематическое пояснение, откуда и куда перетекают данные, как они обрабатываются, на каких этапах предоставляются пользователям.
Чем отличаются бэкенд и фронтенд
К примеру, у нас есть мобильное приложение. То, что у вас на устройстве, это фронтенд. То, с чем пользователь взаимодействует и видит. Бэкенд — это процессы, которые не видны пользователю. Обработка данных, хранение, передача, обращение к серверам. Этот же принцип работает с любым продуктом. То, что видит пользователь — фронтенд. Все, что происходит «за дверьми» — это бэкенд.
Что значит тонкий клиент и толстый клиент
«Толщина» клиента зависит от того, сколько логики находится на клиенте. Если у приложения минимальная логика на самом клиенте, а основная — на сервере, то образуется тонкий клиент. Если при загрузке приложения обрабатывается сразу большое количество данных на самом клиенте, то «толщина» увеличивается.
Разница между ними в вариантах обработки данных. Толстые клиенты преимущественно работают с информацией на основе собственных программных возможностей, в то время, как тонкие клиенты применяют ПО центрального сервера для обработки. Все браузеры и веб приложения, онлайн игры — это тонкие клиенты. А вот Microsoft Outlook или Office 365 — толстые.
Что такое база данных
Это место, где хранятся и обрабатываются все данные. Представлены в виде таблиц, в которых разделяются данные на столбцы и строчки. Например, имя пользователя, его номер телефона, почта. Все таблицы связаны между собой, поэтому при запросе одних данных, можно получить и другую информацию.
DNS — что это такое
На собеседованиях часто приводят подобную ситуацию: пользователь вводит какие-то данные в поисковую строку браузера и нажимает кнопку «Найти». Как происходит весь процесс? На этот вопрос можно отвечать детально, но рекрутер ждет пояснения, что такое DNS.
Если есть физические сервера, на которых расположена информация, к ним нужно как-то получить доступ. У каждого сервера есть имя, которое выглядит в виде IP-адреса. Чтобы не запоминать большое количество цифр, была разработана DNS система. DNS имеет читабельный вид и иерархическую структуру, благодаря чему пользователь дает запрос и получает доступ к информации.
Зачем нужна репликация
Репликация нужна, чтобы делать копии баз данных. Сама база данных хранится на сервере, Но что с ней произойдет, если с сервером что-то случится? Сгорит, повредится, будет взломан? База данных потеряется. Годы работы могут исчезнуть. Избежать этого помогает репликация. Делаются копии баз данных и размещаются на разных серверах и локальных носителях. Регулярно БД обновляется, и с настраиваемой периодичностью реплики пополняются обновленной информацией.
В чем разница между микросервисом и монолитом
Монолит — это централизованная обработка запросов, а микросервисы — индивидуальная обработка запросов. Монолитное приложение выглядит, как единый общий модуль, в котором происходит вся работа. Архитектура микросервиса имеет несколько небольших развертываемых служб.
Что лучше — нельзя однозначно сказать, потому что каждый имеет свои особенности. Монолитная архитектура считается более традиционной, независимой от других сервисов, имеет единую базу кода. Чтобы внести изменения, необходимо обновлять весь стек. На начальных этапах проекта это выгодное решение, итак как развертывание происходит легче. Микросервис легче масштабировать, тестирование и обновление происходят быстрее и дешевле, приложение становится более гибким.
Что такое клиент-сервер
Это элементы архитектуры, которые подразумевают, что есть клиентская часть, которая взаимодействует с пользователем, а есть серверная часть — логика приложения. Клиентская часть отвечает за то, как показать пользователю данные, каким цветом вывести окошки, где будет кнопка. Серверная часть отвечает за сбор и хранение данных, обработку запросов и логику взаимодействия пользователя с продуктом.
Зачем нужен REST
Это набор определенных правил, которые показывают, как нужно общаться между клиентом и сервером. Это некий «транспорт», по которым передаются данные. Клиент запрашивает у сервера какие-то данные. Этот запрос идет на сервер и он отдает их. REST — это свод правил, который помогает серверу и клиенту понимать друг друга.
Куда выносить какую логику
Тут нет универсального ответа. Одни считают, что лучше всю логику выстраивать на бэкенде, а на клиент не давать нагрузку. Другие утверждают ровным счетом наоборот. Ответ, который понравится: все зависит от того, что мы делаем и в какой среде находимся. Можно вносить все на клиент, но все, что связано с безопасностью, выстраивать на бэкенд. Сложные вычисления которые связаны с оплатой, тоже лучше оставлять в бэкенд.
В двух словах мы уже сказали, что REST — это определенный стиль взаимодействия между клиентом и сервером. Он помогает наладить коммуникацию между запросом и получением данных. В теме REST могут возникнуть следующие вопросы:
Что такое JSON, XML, HTML
Это форматы файлов, которыми обменивается клиент и сервер. Они не перечисляют все данные через запятую, их нужно структурировать. Это и есть варианты структуры. Json используется для обмена данными в мобильных устройствах, xml, html работают в вебе.
Методы update, delete, get, post
Мобильные девайсы взаимодействуют с бэкендом какими-то запросами. Условно говоря, это ссылка и какие-то дополнительные поля. Мы идем на ссылку и даем одну из команд: update, delete, get, post.
В чем разница между фреймворком и библиотекой?
Фреймворк — это некая структура с кодом, которая позволяет удобно что-то разрабатывать. Библиотека — это тоже структура с кодом, но она берется извне. Ее берут, как готовое решение для разработки. Кажется, что это более удобный и легкий способ разработки. Но библиотека — это стороннее решение, которое сложно дорабатывать.
Например, нужен календарь. Можно взять готовое решение из библиотеки и внедрить в приложение. Но если заказчик попросит добавить цвета в календарь, поменять шрифт, изменить начало недели не с воскресенья, а с понедельника, править ее будет сложно. Библиотека подходит для типовых и быстрых решений.
Git
Git — это система управления версиями. У нас есть разработчики, которые постоянно что-то дорабатывают, внедряют новые фичи. Чтобы не запутаться и получить строгую структуру, вводится система управления версиями. По ней не техническому специалисту могут задавать следующие вопросы:
Как работает Git
Чтобы не потерять готовые результаты, создается главная ветка — Мастер. Это уже рабочие утвержденные решения, которые подходят для релиза. Дальше приходит идея внедрить новую фичу. В мастере фиксируется «отправная точка», делается фича, тестируется и проверяется. В Git она идет отдельной веткой. В ней ведется разработка, связанная только с этой новой фичей. Когда она сделана, протестирована и принято решение внедрять ее, она мёрджится в Мастер.
Зачем нужен Git
Чтобы не запутаться. Самая сложная ветка — разработчиков. Там происходят основные процессы, появляется много багов в ходе работы и отслеживать их становится сложно. Но Git помогает выстроить ветки так, чтобы было наглядно понятно, что уже работает, а что нуждается в доработке.
Что такое merge, push, pull
В современной разработке все реже используются только десктопные или только мобильные версии продукта. Но отдельно разрабатывать под каждую систему продукт достаточно дорого. Поэтому часто используется кросс-платформа. Нетехнический специалист должен понимать, что это за процессы и как они устроены.
Что такое натив
Если разработка ведется на родном языке для определенной платформы, это называется натив. Например, если делается продукт под операционную систему iOs, то используется Swift.
Что такое кросс-платформа
Это процесс, при котором приложение разрабатывается с кодовой базой, которая работает на разных операционных системах. То есть приложение будет работать как на «яблоках», так и на андроидах. Несмотря на то, что это кажется более выгодным, кросс-платформенные решения имеют довольно много недостатков и не всегда работают качественно. Под каждый проект определяется стек технологий, и при разработке архитектуры решается, использовать натив или кросс-платформу.
Что дешевле
Для быстрого запуска стартапа с какой-нибудь функциональностью дешевле сделать кросс-платформенное решение. Если нужна хорошая функциональность, выгоднее делать ее на нативе. Потому что на кросс-платформе придется «натягивать» многие решения, в итоге это займет больше времени и сил. С точки зрения общей оценки, дешевле кросс-платформа. Но не всегда она подходит для проектов.
Какие типы тестирования бывают?
Дефекты по приоритетность и критичности:
Что такое приоритеты?
Каждому багу присваивают статус, который определяет важность тестирования и исправления. Как правило, используются статусы «Критичный», «Высокий», «Средний», «Низкий», «Блокер». При критическом статусе продукт не может работать, пока его не исправят, но при этом функциональность можно проверять. Блокер — это статус, при котором невозможно дальнейшее проведение тестов, пока он не будет устранен.
Пошаговый план по поиску:
Важно: зачастую сотрудники сами заинтересованы в том, чтобы привести хорошего кандидата в компанию, так как за это им полагается бонус.
Поэтому первое впечатление важно, нужно расположить к себе возможно, будущего коллегу.
Примеры письма сотруднику понравившейся вам компании:
Hi, (name of the Referral)!
My name is …
I find your background really impressive!
I am currently in the position of Project Manager in the field of (IT, Blockchain and FinTech) areas.
And I am motivated to get to ... (name of the company) as a (name of the position).
I would immensely appreciate it if you could share your experience as well as some tips for a potential candidate.
Thank you.
!!! Любое заявление нужно продкреплять фактом и историей
Покажите логику своего пути:
В СV - хронологическое изложение фактов не только о вашей работе, но и о вас, как о человеке
В Cover Letter - не просто перечисление фактов из CV, который очевидно привел вас к решению податься в эту компанию
Готовиться! Связаться с сотрудниками, узнать о тесте, попросить совета в подготовке, погуглить эти пробные/подобные тесты
11 вопросов, которые задают в БОЛЬШИНСТВЕ случаев на собеседовании:
Пример запроса: Результаты, которые я жду по итогам консультации: 1. Понять мои зоны роста при презентации себя: над чем нужно поработать дополнительно. 2. Понять свои сильные стороны и на чем акцентировать внимание, как подать свою речь уверенно и красиво: ожидаю обсудить секреты публичного выступления и самопрезентации для HR и C-lvl менеджмента. 3. Получить материалы/советы/рекомендации для совершенствования навыки прохождения собеседований. |
Note: не ожидайте от эксперта ответов на все вопросы. По итогам встречи у вас должен быть сформирован четкий вектор, куда двигаться дальше + понимание, над чем работать.
Пример запроса: Как IT Project Manager я хочу получить навык презентации себя как дорого специалиста на рынке среди профессионалов в области проектного менеджмента, чтобы получить высокооплачиваемую должность по своей специальности. |
Note х2: задавайте вопросы ПЕРЕД встречей, чтобы у эксперта создалось более четкое представление о вас + создали первое впечатление о себе
Note х3: записывайте свою консультацию, чтобы вы смогли пересмотреть встречу.
Note х4: научитесь отвечать по структуре на примере 10 типовых вопросов и тогда любые новые вопросы не будут заставать врасплох. Используйте нумерацию при ответах. Составьте ответ глубинный и продуманный о ваших сильных сторонах. Не говорите много и не повторяйте заезженные ответы, которые никому не интересны. У вас здесь есть шанс запомниться
Note х5: карьерная консультация не может решить и закрыть всех ваших проблем, она лишь повышает шанс удачного прохождения дальнейших этапов собеседований.
Pitch: рассказ о себе на 2 минуты о главных достижениях, которые позиционируют вас как специалиста, об опыте и образовании, т.е. полноценный рассказ
Для HR, для CEO и C-lvl менеджмента
Кратко: саммари о своем опыте в сжатом виде, по пунктам (опыт, проекты, компании в которых работали, сферы и домен)
Выделить самое важное, возможно то, что вас связывает с менеджером, найти общие точки соприкосновения в диалоге.
Использовать в нужно время свой бенефит, подкупить своей сильной стороной + запомниться
Если не уверены, что дали достаточно технических деталей (если общаетесь с СТО// СЕО, уточните, достаточно ли развернуто вы дали ответ)
#1: рассказывайте незнакомым людям, чем вы занимаетесь в 5 предложениях, за 1 минуту.
#2: Поставьте себя на место нанимающего менеджера, ответьте, зачем ему нужны конкретно вы? В чем его мотивация? Задайте вопрос в течение разговора: “Почему позиция открыта?”
#3: Выстраивайте свой ответ в соответствии со структурой ‘Challenge – Action – Result + *опционально Lesson Learned (что вы поняли из этой ситуации)’ (Ситуация, Ваши действия в этой ситуации и Получившийся результат)
#4: Соберите ОС 360°: получите обратную связь от слушающих (друг, семья, консультант).
#5: Запишите свою презентацию в аудиосообщении, повторите эту практику минимум 3 раза, в каждом из которых убирайте лишнее или сомнительное (отправьте другу или коллеге на ревью).
И напоследок
Поиск работы, и, в общем смысле, карьера - это игра (в теории игр) с множеством переменных и акторов, выигрыш в ней заранее не гарантирован и не предопределен, но есть методы и техники, с помощью которых можно повысить вероятность хорошего исхода.
Поиск работы – это life-long learning навык, который нужно постоянно прокачивать.
Советы Junior PM на старте: https://telegra.ph/7-sovetov-menedzheru-novichku-kak-zasluzhit-uvazhenie-razrabotchikov-na-starte-03-06
Проработать кейсы и внезапные вопросы на примерах: Онлайн-такси, Доставка, Стриминг музыки
На примерах компаний: Gett, TikTok, Microsoft, Yandex, Tinkoff, Sber, Revolt
Примерные вопросы:
Примеры Q&A: Guide on the Interview.pdf
© made by Yuri Nedre
LinkedIn: https://www.linkedin.com/posts/yurinedre_list-of-30-it-project-manager-interview-questions-activity-7094923687555923971-We8E?utm_source=share&utm_medium=member_desktop
5 шагов поиска работы за рубежом:
* HR в среднем тратит 10 секунд на резюме и первичный скрининг
Какие блоки должны быть в резюме:
Резюме – это ваша упаковка, оно должно быть продающим (!!!)
Полезные советы: @pm_god
***Пример саммари и рассказа о себе:
Основные ошибки при поиске:
Тренды поиска работы:
Тест на выявления ведущего мотива работы: https://psytests.org/profession/herz.html
Собеседование
Ошибки:
Каналы поиска работы:
Как расти в доходе на 30-50%?
📍 Как оценить PM’a | Статья от Ивана Селиховкина: Профессиональная оценка для ПМа
📍 Матрица компетенций от Александра Белковец: RU Delivery Manager Skill matrix
📍 Матрица компетенций от Семена Колосова: Template_Download PM Skillset by Semyon Kolosov, пост: https://t.me/moms_pm/121
Junior PM | Middle PM | Senior PM | |
Soft Skills |
|
|
|
Tech Background Hard Skills |
|
|
|
Personal Traits |
|
| 1. Умение выстраивать процессы с нуля 2. Самоходность, зрелость в вопросах управления 3. Понимание особенностей каждой методологии ведения проекта |
Вариативно, в зависимости от компании, сферы и рынка, у IT PM могут быть следующие карьерные линии:
1. Project manager - Program manager - Portfolio Manager - Head of PMO / Chief Project Officer
2. Project manager - Delivery Manager - Delivery Director
3. Scrum Master - Agile Coach
4. IT Manager - Middle/Senior IT Manager - Head of IT Department - IT Director - CIO.
5. Project manager - Product manager - Product Owner (не путать с ролью в скрам) - Chief Product Owner
6. Операционные руководители вроде COO//CIO//CTO// CEO.
7. BDM (Business Development Manager) / Business Analyst / QA.
8. Product Owner - Product Manager - Lead/Senior Product Manager - Chief Product Officer
Лекция от Романа Жульпо: Куда расти проджекту?
Желающим донатить: https://www.donationalerts.com/r/nadiafirsova