Кто есть кто в IT: ликбез айтишных профессий

Dec 12, 2018 23:02

Очень часто знакомые, услышав, что я работаю в IT, понимающе кивают: "Аа, ты программист!" И сразу с таким уважением смотрят. Начинаю объяснять, что не программист, а бизнес-аналитик (или, раньше, QA) - уважения в голосе поубавляется, "а что это такое?", и вобщем-то, ничего непонятно. Иногда для простоты говорю, что да, и программист тоже, но в данный момент занимаюсь немного другим.

Тем нескольким людям, кому и правда интересно (или они хорошо притворяются), я радостно, подробно и в лицах объясняю, зачем нужен и чем занимается бизнес-аналитик. А до этого объясняла, кто такой тестировщик. Но подозреваю, что большинство так и осталось под впечатлением "делает что-то непонятное в непосредственной близости от программистов, все равно умная, и наверняка неплохо зарабатывает. Можно попросить починить компьютер".

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

Когда-то, на заре времен, были только программисты.

Программист

Это та профессия, без которой не было бы самого IT. Это те, кто создает программное обеспечение. Удивительно, особенно когда наблюдаешь этот процесс в действии. Буквы и строчки кода превращаются в систему для бронирования путешествий, доставки пиццы, общения с человеком на другом конце света. С помощью кода можно нарисовать картину, написать музыку, превратить устную речь в текст и наоборот. Это настоящая магия, даже когда знаешь, как это работает.

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



Источник фото: ed2go.com

Мозги у программистов работают особым образом - они оперируют алгоритмами, логикой, стройными и четкими решениями любой проблемы. У меня (как и у многих) всегда было особо трепетное отношение к этой непонятной и загадочной профессии. Которое стало еще более благоговейным после того, как я сама научилась программировать. Тут же мне стала понятна пропасть, которая отделяет по-настоящему хороших программистов от посредственных, "кодеров" на айтишном сленге, а меня - от кодеров. Кодер может писать код, но не изобретать новые конструкции, применения этого кода, и даже новые языки программирования. Есть еще говнокодеры, но тут мы о них не будем.

Каждый хороший программист - гений своего дела. Хороший программист знает, что воплотить в жизнь можно практически любую идею, нужно только придумать, как. И он придумает, дай ему только время и кофе в неограниченных количествах.

Когда-то, лет десять назад, гуляя по Ботаническому саду, я подумала - вот было бы здорово, если бы можно было сфотографировать, скажем, дерево, и тут же программа говорит тебе, что это за дерево.
И вот пожалуйста, спустя пару лет Google сделал поиск по картинкам. Загружаешь в Интернет свое дерево, гугл находит похожие картинки и дает предположения, дуб это или сосна.
Пока работает не идеально, но я верю в гугл. Технологии развиваются уже не по дням, а по часам. Когда-нибудь будет так, как описывают мои любимые фантастические фильмы.



Источник фото: getdigital.eu

Если вы думаете, а не стать ли программистом - будьте готовы к тому, что придется очень много учиться. И гуглить. Технологии постоянно меняются, языки программирования совершенствуются, появляются новые. Но до вас уже потрудилось несколько поколений программистов, так что на начальном этапе любая проблема, с которой вы столкнетесь, уже будет кем-то решена и выложена в Интернет. Чем больше опыта у вас будет, тем сложнее будут задачи, их уже придется решать самому или с помощью коллег (не забудьте поделиться решением в Интернете).

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

Менеджеры, которые, по-видимому, были еще до программистов, попытались заставить программистов тестировать, но это оказалось неэффективным.



Источник фото: s3lf.de

Во-первых, программист написал функциональность, и знает, как она должна работать. Он может протестировать, что все работает, как надо, если пользователь делает все как полагается. Но что, если он нажмет на кнопку два раза вместо одного, или оставит незаполненным поле, или кот пробежит по его клавиатуре и напишет ";%?*)("*№", а там должно быть имя?
Во-вторых, допустим, программист попыхтел возмущенно от того, как издеваются над его программой, продумал все эти вандальские сценарии и протестировал. Но все это время он точно не будет писать код. А время программиста стоит дорого. Зарплаты у хороших опытных программистов самые высокие из всех айтишных профессий.

Появилась необходимость в том, кто все эти варианты продумает, проверит, перепроверит, подумает еще раз и проверит с отрицательным и пустым значениями. Так появилась профессия тестировщика.

Тестировщик

Он же Quality Assurance Engineer, сокращенно QA. Тестировщики бывают ручные (Manual QA, или мануальщики) и дикие авто-тестировщики (они же Automation QA, они же автоматчики, они же автотестеры).



Источник фото: teespring.com

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

Автоматчики - это те, кто пишет программы для тестирования других программ. На больших проектах объемы тестирования такие, что человеку просто не справиться, да и неэффективно (и ужасно скучно, одно и то же тестировать по сто раз).

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



Источник фото: softwaretestingandqa.blogspot.com

Уровень запрлат у тестировщиков обычно меньше, чем у программистов. Автоматчики, как правило, получают больше за свои навыки. Ну и, конечно, чем больше опыт - тем лучше оплата. Можно стать старшим тестировщиком, потом менеджером тестировщиков и зарабатывать на уровне с программистами.

Тестировщики, как правило, дотошные, тщательные, любопытные. Хорошие тестировщики получаются из тех зануд, что любят исправлять чужие грамматические ошибки, всегда замечают, где что криво или косо сделано, и любят делаеть вещи вроде "А что, если я сделаю быстро-быстро двадцать раз проведу покупку штрих-кодом перед сканнером? Эта штука сломается или нет?"

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

Наверное, главное качество, которым должен обладать тестировщик - это терпение. Много монотонной работы.



Источник фото: copist.ru/ru/blog/2008/04/08/programmers/

Я уже писала о работе тестировщика тут.

Дальше о нашем зоопарке.

В какой-то момент стало понятно, что даже протестированная, отлаженная и идеально работающая с точки зрения программиста и тестировщика программа может быть не тем, что ожидал ее пользователь. Если в самом начале, когда только планировали программу, не уточнили, а что, собственно, ему надо. Пользователь - человек не технический, ему сложно объяснить, а программисту - понять, что именно нужно сделать, чтобы пользователь был доволен. Он может и сам не знает. Он знает, какие у него проблемы, а как должна выглядеть программа - синенькая?..

Исправить уже готовую программу дорого, намного дешевле потратить немного больше времени в начале проекта на уточнение всех деталей. Но кто будет это делать? Программисты не горят желанием общаться (и вообще делать что либо кроме написания кода). Тем более, общаться с людьми, которые не знают, что такое браузер или чекбокс. Привыкнув к определенной лексике, сложно внезапно начать разговаривать с людьми, далекими от технологий.



Источник фото: fun.tochka.net

Бизнес-аналитик

Так в IT появился бизнес-аналитик - посредник, переводчик между пользователем и программистом с человеческого языка на язык гиков. Именно эту профессию я выбрала из разнообразной айтишной палитры, и этим занимаюсь вот уже семь с лишним лет.

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

В начале проекта, как правило, бизнес-аналитик много времени проводит с заказчиком, изучает его бизнес. Рисует диаграммы, описывает процессы, как они есть сейчас.

Потом много думает. Задает уточняющие вопросы заказчику. Снова думает.



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



Источник фото: advancedanalyst.com

Бизнес-аналитику необязательно быть подкованным технически, достаточно базы. (Но знание технологий очень помогает в работе - по опыту). Обязательно любить и уметь общаться, письменно и устно - это основная часть работы.

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

Во-первых, для программиста, чтобы знать, что именно имплементировать.

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

В-третьих, для технического писателя, который будет писать инструкции для пользователей.

В-четвертых, для новых аналитиков/тестировщиков/программистов, которые потом будут работать на этом проекте.



Основные документы, которые обычно создает аналитик - это бизнес-требования (набор хотелок пользователя), технические требования (хотелки, переведенные на технический язык, с подробным описанием для программиста, как должна работать функциональность). Это просто Word документы, и писать их, честно говоря, довольно скучно. Как и читать. (Поэтому их все равно никто не читает, но это секрет).

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

Накатала на скорую руку самый простой пример такой диаграммы, чтобы было понятно, о чем я:


Пожалуй, самая любимая мной часть работы аналитика (которую мне, к сожалению, приходилось делать очень нечасто) - это создание прототипов. Это то, как будет выглядеть будущая программа. Прямо как живая. Иногда это просто статическая картинка, а иногда интерактивная. Нажимаешь эту кнопочку - появляется такое вот сообщение и новое поле. Другую кнопочку - открывается другая страница. Все как по-настоящему, только это еще не программа, а ее прообраз. Это очень творческий процесс, всегда обожала этим заниматься. Но это занимает много времени, далеко не все заказчики хотят платить за долгий процесс анализа, и вообще все сейчас такие быстрые, что рисуют на салфетках - и вперед, кодить.

Надо сказать, что еще ни разу за все время работы аналитиком я не занималась только бизнес-анализом. Это всегда анализ плюс тестирование, или анализ плюс руководство проектом, или все вместе.



Источник фото: funon.cc

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

Зарабатывают аналитики, как правило, больше, чем тестировщики.

Менеджер проекта

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

Менеджер проектов (он же Project Manager, он же PM) - это тот загадочный персонаж, который сам, вроде бы, ничего не делает, только следит за тем, чтобы все остальные делали то, что от них требуется, не лажали и не тормозили, и проект плавно и слаженно двигался к счастливому завершению. Еще отчитывается перед руководством и заказчиком, получает колотушки, если что-то не так, разруливает - управляет, вобщем.



Источник фото: club.cnews.ru

Думаете, легко? А вот нет. Для меня это до сих пор самая сложная роль из всех. Нужно уметь делегировать, доверять людям, мотивировать, стимулировать, контролировать, балансировать - столько “-ировать”, что и не сосчитаешь. Человек-оркестр самый настоящий. А всем кажется, что ты ничего не делаешь, только ходишь и всех пинаешь, чтобы работали (ладно, иногда так и есть).

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

Зарплаты у менеджеров проекта примерно на одном уровне с аналитиками.



Источник фото: mindset.pm/

Есть в айти еще много разных специализаций. Все они разные, но все они любят котиков. О них я знаю меньше из собственного опыта, больше из соприкосновения с этими ролями.

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

Верстальщик. Тот, кто соединяет вместе куски дизайна, настраивает под разные браузеры, делает так, чтобы интерьер программы выглядел ровно и красиво на любом устройстве. Нужно знание HTML, CSS и очень, очень много терпения, особенно если ваша компания поддерживает Internet Explorer (ночной кошмар всех программистов, веб-дизайнеров и верстальщиков). Мне пришлось побыть верстальщиком, когда начинали свой проект, и - мой вам респект, ребята, кто это делает и делает хорошо.

UX дизайнер. UX расшифровывается как User Experience (опыт взаимодействия, пользовательское восприятие). Этот человек делает так, чтобы восприятие от работы с приложением было положительными, чтобы пользователям было удобно пользоваться программой или сайтом. Если вы скачиваете себе приложение, или заходите на сайт, и можете интуитивно им пользоваться без инструкций, и это удобно - значит, хороший у них UX дизайнер (или кто-то, кто выполнил эту работу). Пример плохого UX дизайна - это когда ты уже решил, что купишь то, что тут рекламируют, но никак не можешь найти кнопку “Купить”. Бизнес-аналитик часто выполняет эту функцию, когда продумывает внешний вид программы, расположение кнопок, количество шагов для осуществления конечного действия.



Технический писатель. Создает инструкции для пользователей и любые другие технические тексты. Когда-то я хотела быть техписом, потому что мечтала быть писателем, и одновременно хотелось работать в IT. Я бы сказала, что работа аналитиком мне все-таки нравится больше. Писать тоже приходится очень много, но я могу влиять на процесс, изменять описания, творить. А техпис, как правило, описывает то, что уже есть.

Есть еще системные администраторы, которые знают и могут абсолютно все. То, что они не могут починить - подлежит утилизации и замене. Все они носят свитера и бороды, любят пиво и не любят юзеров. Это те люди, которых боятся даже всемогущие программисты, потому что сисадмины могут все равно больше. Если у программиста не работает Интернет, он, конечно, сам поковыряется и погуглит, если есть с чего - но в конечном итоге придет к сисадмину, который ему все и починит. Я сисадминов боюсь, так что знаю про них крайне мало. Никто никогда не знает, где они, но если позвать в мессенджере - то они, как правило, тут же приходят. Возможно, они живут прямо в сети и материализуются в нашем мире только при возникновении проблемы.

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



Источник фото: videoblocks.com

it, тестирование, профессия, project manager, software, quality assurance, qa, programmer, тестировщик, программирование, pm, айти, бизнес-аналитик, менеджер проектов, business analyst, программист

Previous post Next post
Up