Коротко про IT: что нужно знать на старте
Привет! На связи Елена Платковская, занимаюсь построением и оптимизацией ИТ-процессов.
Когда к нам в команду добавились новые коллеги, которые не очень много соприкасались с IT, стало понятно, что нужно выровняться в терминологии, чтобы лучше понимать друг друга на встречах. Сделали это в рамках клуба LUC, подробно о котором я рассказала здесь.
Задача состояла в том, чтобы дать базовые знания о работе в IT, предложить хорошо структурированную основу, на которую коллеги могли бы нагугливать сверху больше деталей. Цель — дать отправную точку для дальнейших бессонных ночей, проведенных в обнимку с поисковиками. Получилась короткая презентация с универсальной информацией в картинках без привязки к функционалу сотрудника, который совершает стартовый шаг на пути к IT.
Когда я начала подготовку, столкнулась со сложностью. С одной стороны, в интернете полно материалов для новичков. С другой, не попалась та волшебная страница, одной лишь ссылки на которую было бы достаточно для первого знакомства. Именно поэтому была замешана своя микстура, которая подошла для экспресс-погружения в IT.
Делюсь с вами слайдами, которые получились и которые мы включили для обязательного изучения в программу онбординга новичков без опыта работы в IT.
Виды IT
IT везде, вокруг нас и мы погружены в него. Кстати, не только когда заказываем такси или слушаем музыку. Собрала некоторые виды на картинке:
В конце этого списка ставлю жирное многоточие, потому что перечислено далеко не все.
Для удобства в публикации я буду использовать термин ПО (программное обеспечение) для обозначения любого цифрового продукта.
Архитектура ПО
Давайте разберем внутреннее устройство практически любого ПО. Разработчики пишут код, затем строки кода объединяют в функции, функции в классы, а классы в модули. В итоге получается сервис. Сложные IT-продукты состоят из множества таких сервисов — например, большие корпоративные порталы. Это сильно похоже на дома, состоящие из стен, дверей, мебели. При этом внешне строения могут выглядеть одинаково, но внутри у каждого будет индивидуальный интерьер, отражающий задумки его владельца. Так и с IT-разработкой: что будет внутри конечного продукта — зависит от потребностей.
В самом начале, еще до написания кода, создается общий план будущего ПО — архитектура системы. То есть формируется упрощённое представление о будущем продукте, то есть о доме, но пока без мебели. Этот план также отображает то, как внутренние сервисы будут взаимодействовать друг с другом и внешним миром. Например, как интернет-магазин будет связываться с платёжными системами или социальными сетями через API. API (англ., application programming interface) — специальный набор правил, который позволяет разным частям системы взаимодействовать между собой.
Следующий этап — детализация, при которой прорабатываются конкретные технические требования к продукту. В результате разработки архитектуры системы у команды должно появиться представление о том, что нужно разработать: какой IT-продукт и какие функции он должен выполнять.
Два подхода к проектированию
В зависимости от потребностей и сложности будущего ПО различают два подхода к его проектированию на уровне архитектуры — монолитный и микросервисный. Это не имеет отношение к внешнему виду и речь идет только о внутреннем устройстве.
SDLC
Жизненный цикл ПО — этапы, через которые проходит любое ПО, начиная от зарождения первоначальной идеи до его непосредственного «выхода в свет», то есть релиза. Его еще называют SDLC — англ., Software Development Life Cycle.
По сути, это последовательность процессов создания ПО, который состоит из 6 этапов и охватывает период с момента принятия решения о его разработке и заканчивается, когда его перестают использовать. Каждый этап опирается на результат предыдущего. Подробнее каждый этап я отобразила на инфографике:
PDLC
PDLC (англ., Program Development Life Cycle) — итерационный цикл постоянного совершенствования и оптимизации продукта. Совокупность процессов создания продукта от идеи до выпуск на рынок.
Состоит из семи этапов, которые на своей картинке я оптимизировала, сократив до 6-ти:
1. Генерация идеи
2. Исследование рынка
3. Разработка концепта продукта
4. Непосредственно сама Разработка
5. Тестирование
6. Вывод на рынок
7. Период после запуска
Взаимосвязь SDLC и PDLC схематично выглядит следующим образом:
Например, компания планирует в будущем выпустить на рынок сверхсовременный холодильник — продукт, работа над которым пройдет все этапы PDLC. При этом разработка «начинки», то есть ПО, станет частью этого цикла и будет вестись по SDLC.
Роли в IT
В IT очень и очень много профессий. Вот некоторые из них:
1. Разработчики/программисты/ девелоперы создают, пишут и поддерживают ПО, приложения, сервисы. Три основных вида:
· Frontend-разработчики создают то, что мы видим снаружи любого ПО
· Backend ведут разработку того, что находится «под капотом», обычный пользователь не видит эту часть, но благодаря именно ей любое приложение — это не просто красивая картинка, а работающий сервис.
· Full-stack — совмещают функционал первых двух категорий.
2. Тестировщики. Специалисты, которые проверяют готовое ПО на соответствие требованиям, исследуют работоспособность, находят ошибки (баги). Делятся на автоматизаторов и ручников.
3. Бизнес-аналитик — это мостик между заказчиком и разработчиками. Он собирает требования, анализирует, фиксирует их в понятном для разработчиков виде. Отвечает на вопрос «Что разрабатываем?», «Что пользователи будут делать в готовой системе?».
4. Системный аналитик тоже разрабатывает требования к ПО, но отвечает на вопрос «Каким образом нужно настроить систему, чтобы пользователь смог выполнить в ней определенный набор действий?».
5. Специалисты по информационной безопасности/ безопасники. Профессионалы, которые занимаются защитой информации от цифровых угроз.
6. DevOps-инженер (англ., deveopment operations) — многопрофильные специалисты, которые умеют автоматизировать процессы и знают, как работают разработчики, QA и менеджеры.
7. Менеджеры проектов решают управленческие задачи: организуют команду, выстраивают процессы, планируют работу, следят за исполнением, контролируют ход работ, много общаются с заказчиками и собирают от них обратную связь.
И еще много-много-много других специалистов.
Методологии разработки
О том, что содержится в этом блоке, часто спрашивают в том числе и на собеседованиях, поэтому о тех основах, которые отображены на картинке, нужно детальнее поресерчить самим.
Если коротко, то методология представляет собой подход к разработке. Важно запомнить, что нет плохих и хороших — есть подходящие и не подходящие для разработки конкретного IT-продукта. Их много, рассмотрим самые распространенные.
Существуют каскадные (Waterfall) и гибкие (Agile) методологии, работа по которым сильно различается.
В свою очередь гибкие тоже делятся на подвиды. Самые популярные: Scrum, Kanban и SAFe для компаний с большим количеством проектов и команд, работу которых стараются синхронизировать и структурировать.
Вот такая получилась карта ориентиров, которую можно использовать как основу для подготовки к вхождению в огромный мир IT.