89
Software Industry 101 bit.ly/industry101 vk.com/industry101 #SoftInd101

Профессии в IT

Embed Size (px)

DESCRIPTION

Семён Факторович (Noveo) рассказывает о карьерных лестницах и различных профессиях в IT-индустрии, 20.02.2013 Software Industry 101 — это серия обзорных лекций для студентов Новосибирского государственного университета о профессиях в IT и о реалиях коммерческой разработки софта. Более подробную информацию, материалы лекций и раписание занятий можно посмотреть на http://bit.ly/industry101

Citation preview

Page 2: Профессии в IT

Что здесь происходит?

• Лекции о реалиях работы в IT-компаниях и об IT-индустрии в целом

• Для студентов IT-специальностей, задумывающихся о своей будущей карьере

Page 3: Профессии в IT

Зачем этот спецкурс?

• Студент IT-специальности учится 4 года, но в итоге знает об индустрии далеко не все

• Как устроены IT-компании?

• В чем заключается работа программиста?

• Куда (и кем) лучше идти работать?

Page 4: Профессии в IT

Зачем этот спецкурс?

Мы расскажем о том, о чем в университете обычно не рассказывают

Page 5: Профессии в IT

Кто выступает?

• Сотрудники новосибирских (и не только) IT-компаний

• Ведущие разработчики, менеджеры проектов, руководители отделов

• Список выступающих - bit.ly/industry101

Page 6: Профессии в IT

Кто выступает?

• Семëн Факторович

• Выпускник ФИТ НГУ 2009 года

• 5 лет программистского стажа

• Последние 2.5 года — менеджер проектов в компании Noveo, noveogroup.ru

Page 7: Профессии в IT

О чем будем говорить сегодня

• Обзор разных профессий в IT-индустрии

• Какие карьерные пути есть у молодого специалиста

Page 8: Профессии в IT

Страшная правда

В IT-компаниях работают не только программисты

Page 9: Профессии в IT

Карьерные области в IT-компаниях

• Разработка• Тестирование • Менеджмент

Page 10: Профессии в IT

Менее распространенные профессии

• Технические писатели, копирайтеры• Аналитики• Менеджеры по продажам

Page 11: Профессии в IT

Разработка

• Junior Developer / Developer / Senior Developer

• Team lead

• Software Architect

Page 12: Профессии в IT

Junior developer

• Младший разработчик, стажер• Стартовая позиция• Опыт работы не обязателен

• Можно совмещать с учебой (начиная со 2-3 курса)

Page 13: Профессии в IT

Junior developer

• Чем занимаются на этой позиции?

Page 14: Профессии в IT

Junior developer

• Чем занимаются на этой позиции?

• Учатся! (еще и получают за это деньги)• Тренинги, внутренние экзамены, учебные проекты

Page 15: Профессии в IT

Junior developer

Первый реальный проект может начаться через 3-4 месяца

Page 16: Профессии в IT

Junior developer

Один из лучших вариантов начала карьеры

Page 17: Профессии в IT

Junior developer

Одно «но»: зарплата будет очень мала

Page 18: Профессии в IT

Developer

• Software developer, разработчик, Software engineer

• Та самая «стандартная» программистская позиция

• Разработка программного обеспечения

Page 19: Профессии в IT

Developer

• Разработка?

Page 20: Профессии в IT

Developer

• Разработка?• 30%* времени: реализация новых фич

• 70%* времени: поддержка, развитие и багфиксинг

Page 21: Профессии в IT

Developer

• Разработка?• 30%* времени: реализация новых фич

• 70%* времени: поддержка, развитие и багфиксинг

* результаты могут отличаться от заявленных

Page 22: Профессии в IT

Developer

• Бешеный креатив вовсе не обязательно занимает бóльшую часть времени

• Остальное — поиск и исправление собственных ошибок и мелкие доделки

• «Передвиньте эту кнопочку левее»

Page 23: Профессии в IT

Developer

“Another flaw in the human character is that everybody wants to build, but nobody wants to do

maintenance.”

– Kurt Vonnegut

Page 24: Профессии в IT

Developer

Бывает, что разработчик вообще не пишет код

Page 25: Профессии в IT

Developer

• Code review других разработчиков

• Сборка релизов и установочных пакетов• Чтение спецификаций и оценка проектов• Поиск проблем конфигурации на серверах заказчика

Page 26: Профессии в IT

Senior developer

• Старший разработчик• Не позиция, а название вакансии• 4-5 лет опыта разработки

• Значительно бóльшая зарплата

Page 27: Профессии в IT

Team leader

• Team lead, руководитель команды

• Подразумевается наличие команды• Руководит командой, но при этом сам пишет код (в отличие от менеджера)

• «Играющий тренер»

Page 28: Профессии в IT

Team leader

• Распределяет задачи, контролирует их выполнение, консультирует команду

• Самый опытный из всей команды

Page 29: Профессии в IT

Software architect

• Архитектор — значит что-то проектирует?

• Структура классов, компоненты сложного технического решения

• В местных реалиях — то же самое, что senior developer

Page 30: Профессии в IT

Карьерный рост разработчика

Junior → Developer → Senior

Page 31: Профессии в IT

Карьерный рост разработчика

Junior → Developer → Senior

А дальше?

Page 32: Профессии в IT

Карьерный рост разработчика

Developer, developer, developer...

Page 33: Профессии в IT

Карьерный рост разработчика

Developer, developer, developer...

Page 34: Профессии в IT

Карьерный рост разработчика

Developer, developer, developer...

Оставаться разработчиком на протяжении 10-15 лет, если вам это нравится — почему бы

и нет?

Page 35: Профессии в IT

Карьерный рост разработчика

• Уход в менеджмент• Team leader

• Project manager

Page 36: Профессии в IT

Карьерный рост разработчика

• Уход в менеджмент• Team leader

• Project manager

• Уход в другие области (например, тестирование) очень редок

Page 37: Профессии в IT

Карьерный рост разработчика

• Зарплата в основном выше, чем у других IT-cпециалистов

• Невероятная востребованность профессии: разработчик легко найдет работу в любом городе и в любой стране

Page 38: Профессии в IT

Quality assurance

• Обеспечение качества, тестирование

• «Тестировщик», но не «тестер»

Page 39: Профессии в IT

• Поиск багов? Не совсем• Проверка того, что приложение работает как нужно

Quality assurance

Page 40: Профессии в IT

• Поиск багов? Не совсем• Проверка того, что приложение работает как нужно

• А как нужно?

Quality assurance

Page 41: Профессии в IT

• Выполняет ли приложение те функции, которые оно должно выполнять?

• «В спецификации есть вот такая фича, но разработчики забыли ее реализовать»

• «Эта фича работает не совсем так, как описано в спецификации»

Quality assurance

Page 42: Профессии в IT

• Как приложение работает с неправильными данными?

• «Что будет, если я введу логин длиной 50 символов?»

• «Что будет, если я попытаюсь сохранить файл на диск, на котором нет свободного места?»

Quality assurance

Page 43: Профессии в IT

• Работает ли приложение в тех условиях, в которых оно должно работать?

• «Наше приложение нормально работает на Windows 7, но крэшится на Windows XP»

• «Наш веб-сайт неправильно отображается на iPad»

Quality assurance

Page 44: Профессии в IT

• Работает ли приложение в экстремальных условиях?

• «Что будет, если мы откроем нашим графическим редактором файл в 10Гб?»

• «Что будет, если на наш сайт зайдет 100 000 человек одновременно?»

Quality assurance

Page 45: Профессии в IT

• «Не перестало ли приложение работать после рефакторинга?»

• «Не перестала ли работать какая-либо фича после того, как мы добавили новую?»

Quality assurance

Page 46: Профессии в IT

• Работа тестировщика очень разноплановая• Не обязательно требует профильного образования

• Но вполне может включать в себя чтение кода (а иногда даже его написание)

Quality assurance

Page 47: Профессии в IT

QA automation

• Автоматизированное тестирование• Зачем проверять веб-сайт вручную, если можно написать программу, которая будет этим заниматься?

Page 48: Профессии в IT

• Интересный вариант для тех, кто умеет программировать и любит тестировать

• Автотесты зачастую пишутся на несложных скриптовых языках (Lua, Python)

QA automation

Page 49: Профессии в IT

• Есть и более сложные задачи• Своя платформа для автотестов• Покрытие тестами большой программной системы: компилятор Java, С++ STL, ...

QA automation

Page 50: Профессии в IT

• Рост, в основном, идет «вширь»: новые области и методы тестирования

• Есть вариант уйти в менеджмент• Руководитель отдела тестирования• Менеджер проектов• Уйти в девелопмент?

Карьерный рост тестировщика

Page 51: Профессии в IT

• «Пойти работать тестировщиком и потом дорасти до разработчика» — не самая лучшая идея

• Займет 1-2 года

• Лучше все это время прокачивать скилл программиста

Карьерный рост тестировщика

Page 52: Профессии в IT

Менеджмент

• Project manager

• Product manager

• Senior management (CTO, CEO)

Page 53: Профессии в IT

• Менеджер проектов, руководитель проектов• Руководит проектной командой

(разработчики, тестировщики, дизайнеры, аналитики...)

• Управляет разработкой, но не пишет код

Project Manager

Page 54: Профессии в IT

• Налаживает процессы разработки

• Распределяет задачи, отслеживает их выполнение

• Отслеживает сроки и бюджеты• Общается с заказчиком

Project Manager

Page 55: Профессии в IT

• Ответственность за проект — на менеджере!

• Менеджер собирает все шишки и все плюшки

Project Manager

Page 56: Профессии в IT

• Работа менеджера кардинально отличается от работы программиста

• Общение, решение организационных вопросов, множество дел одновременно

• Стресс!

Project Manager

Page 57: Профессии в IT

• Менеджер продуктов, product owner, program manager

• Управляет не командой, а продуктом в целом

• Не операционный, а стратегический менеджмент

Product Manager

Page 58: Профессии в IT

• Понимание потребностей рынка: какую бизнес-задачу решает наш продукт?

• Понимание потребностей пользователей: что нужно нашим клиентам?

• Продвижение продукта на рынок, взаимодействие с конкурентами

Product Manager

Page 59: Профессии в IT

• Редко общается с разработчиками, обычно только с менеджерами

• Может иметь в подчинении несколько проектных команд

Product Manager

Page 60: Профессии в IT

• CTO, Chief Technical Officer, технический директор

• CEO, Chief Executive Officer, генеральный директор

Senior management

Page 61: Профессии в IT

• CTO: верхняя ступень технической карьерной лестницы

• Финальные решения по сложным техническим вопросам

• Надзор над несколькими продуктами

Senior management

Page 62: Профессии в IT

• CEO: самая главная должность в компании

• Надзор над всеми продуктами• Административные вопросы (аренда офиса, финансы...)

Senior management

Page 63: Профессии в IT

• Может быть интереснее работы программиста (зависит от характера)

• Зарплата, как правило, выше (особенно у старшего менеджмента)

• IT-образование не является обязательным

Менеджмент

Page 64: Профессии в IT

Экзотические профессии

• Технические писатели, копирайтеры• Бизнес-аналитики• Менеджеры по продажам

Page 65: Профессии в IT

Techwriter,copywriter

В любой программе есть тексты

Page 68: Профессии в IT

Программисты традиционно очень не любят писать документацию

Techwriter,copywriter

Page 69: Профессии в IT

• Технический писатель занимается инструкциями, файлами помощи...

• Копирайтер пишет менее специфические тексты: контентное наполнение сайта, маркетинговые описания продуктов...

Techwriter,copywriter

Page 70: Профессии в IT

• Иногда техписатель — это филолог, натасканный на понимание предметной области

• А иногда IT-шник, которого научили хорошо писать тексты

Techwriter,copywriter

Page 71: Профессии в IT

Systems analyst

• Системный аналитик, реже «бизнес-аналитик»• Слово «бизнес» — от «бизнес-логика»

• Перевод проблемы заказчика в задачу, понятную программисту

Page 72: Профессии в IT

Заказчик — аналитику:

«Мне нужна система складского учета, решающая следующие задачи моего бизнеса...»

Systems analyst

Page 73: Профессии в IT

Аналитик — программисту:

«Заказчику нужно веб-приложение, оперирующее следующими сущностями...»

Systems analyst

Page 74: Профессии в IT

• Общение с заказчиком и выяснение, чего же он хочет

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

(вплоть до прототипов интерфейса и структуры БД)

Systems analyst

Page 75: Профессии в IT

Результат работы аналитика — спецификация приложения, по которой можно начинать

разработку

Systems analyst

Page 76: Профессии в IT

• Для фанатично любящих писать документы и продумывать каждую мелочь

• IT-образование крайне желательно, но не обязательно

Systems analyst

Page 77: Профессии в IT

Sales manager

• Менеджер по продажам, «продажник»

• Общается с заказчиками и заключает контракты на разработку

• Ищет новых клиентов разнообразными способами (например, ездит по выставкам и конференциям)

Page 78: Профессии в IT

• Продажник — двигатель бизнеса

• Пока он не найдет заказчика, проектов у компании не будет

Sales manager

Page 79: Профессии в IT

• Задачи продажника:• Найти потенциального клиента• Уговорить его выполнить проект именно у нас

• Сторговаться по цене

Sales manager

Page 80: Профессии в IT

• Нужно очень много разнообразного опыта (переговоры, понимание бизнеса заказчика, экономика...)

• Средний возраст продажников в крупных компаниях — 30 лет и старше

Sales manager

Page 81: Профессии в IT

• Зарплата минимальная (или даже нулевая)• Но зато есть процент с продаж

Sales manager

Page 82: Профессии в IT

Заключил контракт на 100 000 долларов? Получи 10%

Sales manager

Page 83: Профессии в IT

Зачем мне задумываться о других профессиях?

• «Мне нравится работать разработчиком/тестировщиком, я не хочу ничего менять»

• «Я не хочу становиться тимлидом или менеджером: ответственность — это не для меня»

Page 84: Профессии в IT

Зачем мне задумываться о других профессиях?

• За 5-10 лет даже любимое занятие может надоесть, и вам может захотеться чего-то нового

• Рост в менеджмент• Смена карьерной области

Page 85: Профессии в IT

Зачем мне задумываться о других профессиях?

• За 5-10 лет даже любимое занятие может надоесть, и вам может захотеться чего-то нового

• А может и не надоесть

• 40-летние программисты вполне счастливы

Page 86: Профессии в IT

Зачем мне задумываться о карьерном росте

• Карьерный рост сопровождается ростом зарплаты

• Разница зарплат между обычным и старшим разработчиком — 2x

• Разница зарплат по всей карьерной лестнице програмиста (от junior developer до CTO) — 10-15х

Page 87: Профессии в IT

Подытожим?

• Карьерные пути: тестирование, разработка, менеджмент

• Менее распространенные профессии • Мотивация к карьерному росту

Page 88: Профессии в IT

В следующей серии

• Как устроен IT-бизнес, и как код, написанный вами, превращается в деньги

• Основные типы IT-компаний: сервисные и продуктовые

• Почему в большинстве софтверных компаний есть четкая верхняя граница зарплат