http://techtalks.nsu.ru
20 февраля 2013. Рассказ о разных профессиях в IT-индустрии, или почему не все выпускники IT-специальностей пишут код (Семён Факторович, Noveo)
«Семен Факторович (Noveo, Новосибирск) рассказывает о разных профессиях в IT-индустрии и о вариантах карьерного роста IT-специалиста»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
2. Что здесь происходит?
• Лекции о реалиях работы в IT-компаниях и
об IT-индустрии в целом
• Для студентов IT-специальностей,
задумывающихся о своей будущей карьере
3. Зачем этот спецкурс?
• Студент IT-специальности учится 4 года, но в
итоге знает об индустрии далеко не все
• Как устроены IT-компании?
• В чем заключается работа программиста?
• Куда (и кем) лучше идти работать?
5. Кто выступает?
• Сотрудники новосибирских (и не только) IT-
компаний
• Ведущие разработчики, менеджеры
проектов, руководители отделов
• Список выступающих - bit.ly/industry101
6. Кто выступает?
• Семëн Факторович
• Выпускник ФИТ НГУ 2009 года
• 5 лет программистского стажа
• Последние 2.5 года — менеджер проектов в
компании Noveo, noveogroup.ru
7. О чем будем говорить
сегодня
• Обзор разных профессий в IT-индустрии
• Какие карьерные пути есть у молодого
специалиста
17. Developer
• Software developer, разработчик, Software
engineer
• Та самая «стандартная» программистская
позиция
• Разработка программного обеспечения
18. Developer
• Разработка?
• 30%* времени: реализация новых фич
• 70%* времени: поддержка, развитие и
багфиксинг
* результаты могут отличаться от заявленных
19. Developer
• Бешеный креатив вовсе не обязательно
занимает бóльшую часть времени
• Остальное — поиск и исправление
собственных ошибок и мелкие доделки
• «Передвиньте эту кнопочку левее»
20. Developer
“Another flaw in the human character is that
everybody wants to build, but nobody wants to do
maintenance.”
– KurtVonnegut
22. Developer
• Code review других разработчиков
• Сборка релизов и установочных пакетов
• Чтение спецификаций и оценка проектов
• Поиск проблем конфигурации на серверах
заказчика
23. Senior developer
• Старший разработчик
• Не позиция, а название вакансии
• 4-5 лет опыта разработки
• Значительно бóльшая зарплата
24. Team leader
• Team lead, руководитель команды
• Подразумевается наличие команды
• Руководит командой, но при этом сам пишет
код (в отличие от менеджера)
• «Играющий тренер»
25. Team leader
• Распределяет задачи, контролирует их
выполнение, консультирует команду
• Самый опытный из всей команды
26. Software architect
• Архитектор — значит что-то проектирует?
• Структура классов, компоненты сложного
технического решения
• В местных реалиях — то же самое, что senior
developer
30. Карьерный рост
разработчика
• Уход в менеджмент
• Team leader
• Project manager
• Уход в другие области (например,
тестирование) очень редок
31. Карьерный рост
разработчика
• Зарплата в основном выше, чем у других IT-
cпециалистов
• Невероятная востребованность профессии:
разработчик легко найдет работу в любом
городе и в любой стране
33. • Поиск багов? Не совсем
• Проверка того, что приложение работает как
нужно
• А как нужно?
Quality assurance
34. • Выполняет ли приложение те функции,
которые оно должно выполнять?
• «В спецификации есть вот такая фича, но
разработчики забыли ее реализовать»
• «Эта фича работает не совсем так, как
описано в спецификации»
Quality assurance
35. • Как приложение работает с неправильными
данными?
• «Что будет, если я введу логин длиной 50
символов?»
• «Что будет, если я попытаюсь сохранить
файл на диск, на котором нет свободного
места?»
Quality assurance
36. • Работает ли приложение в тех условиях, в
которых оно должно работать?
• «Наше приложение нормально работает на
Windows 7, но крэшится наWindows XP»
• «Наш веб-сайт неправильно отображается на
iPad»
Quality assurance
37. • Работает ли приложение в экстремальных
условиях?
• «Что будет, если мы откроем нашим
графическим редактором файл в 10Гб?»
• «Что будет, если на наш сайт зайдет 100 000
человек одновременно?»
Quality assurance
38. • «Не перестало ли приложение работать после
рефакторинга?»
• «Не перестала ли работать какая-либо фича
после того, как мы добавили новую?»
Quality assurance
39. • Работа тестировщика очень разноплановая
• Не обязательно требует профильного
образования
• Но вполне может включать в себя чтение
кода (а иногда даже его написание)
Quality assurance
40. QA automation
• Автоматизированное тестирование
• Зачем проверять веб-сайт вручную, если
можно написать программу, которая будет
этим заниматься?
41. • Интересный вариант для тех, кто умеет
программировать и любит тестировать
• Автотесты зачастую пишутся на несложных
скриптовых языках (Lua, Python)
QA automation
42. • Есть и более сложные задачи
• Своя платформа для автотестов
• Покрытие тестами большой программной
системы: компилятор Java, С++ STL, ...
QA automation
43. • Рост, в основном, идет «вширь»: новые
области и методы тестирования
• Есть вариант уйти в менеджмент
• Руководитель отдела тестирования
• Менеджер проектов
• Уйти в девелопмент?
Карьерный рост
тестировщика
44. • «Пойти работать тестировщиком и потом
дорасти до разработчика» — не самая
лучшая идея
• Займет 1-2 года
• Лучше все это время прокачивать скилл
программиста
Карьерный рост
тестировщика
46. • Менеджер проектов, руководитель проектов
• Руководит проектной командой
(разработчики, тестировщики, дизайнеры,
аналитики...)
• Управляет разработкой, но не пишет код
Project Manager
47. • Налаживает процессы разработки
• Распределяет задачи, отслеживает их
выполнение
• Отслеживает сроки и бюджеты
• Общается с заказчиком
Project Manager
48. • Ответственность за проект — на менеджере!
• Менеджер собирает все шишки и все плюшки
Project Manager
49. • Работа менеджера кардинально отличается
от работы программиста
• Общение, решение организационных
вопросов, множество дел одновременно
• Стресс!
Project Manager
50. • Менеджер продуктов, product owner, program
manager
• Управляет не командой, а продуктом в целом
• Не операционный, а стратегический
менеджмент
Product Manager
51. • Понимание потребностей рынка: какую
бизнес-задачу решает наш продукт?
• Понимание потребностей пользователей: что
нужно нашим клиентам?
• Продвижение продукта на рынок,
взаимодействие с конкурентами
Product Manager
52. • Редко общается с разработчиками, обычно
только с менеджерами
• Может иметь в подчинении несколько
проектных команд
Product Manager
53. • CTO, Chief Technical Officer, технический
директор
• CEO, Chief Executive Officer, генеральный
директор
Senior management
54. • CTO: верхняя ступень технической
карьерной лестницы
• Финальные решения по сложным
техническим вопросам
• Надзор над несколькими продуктами
Senior management
55. • CEO: самая главная должность в компании
• Надзор над всеми продуктами
• Административные вопросы (аренда офиса,
финансы...)
Senior management
56. • Может быть интереснее работы
программиста (зависит от характера)
• Зарплата, как правило, выше (особенно у
старшего менеджмента)
• IT-образование не является обязательным
Менеджмент
62. • Технический писатель занимается
инструкциями, файлами помощи...
• Копирайтер пишет менее специфические
тексты: контентное наполнение сайта,
маркетинговые описания продуктов...
Techwriter,
copywriter
63. • Иногда техписатель — это филолог,
натасканный на понимание предметной
области
• А иногда IT-шник, которого научили хорошо
писать тексты
Techwriter,
copywriter
64. Systems analyst
• Системный аналитик, реже «бизнес-аналитик»
• Слово «бизнес» — от «бизнес-логика»
• Перевод проблемы заказчика в задачу,
понятную программисту
65. Заказчик — аналитику:
«Мне нужна система складского учета,
решающая следующие задачи моего бизнеса...»
Systems analyst
67. • Общение с заказчиком и выяснение, чего же
он хочет
• Продумывание бизнес-логики приложения
• Выявление требований к приложению
(вплоть до прототипов интерфейса и
структуры БД)
Systems analyst
69. • Для фанатично любящих писать документы и
продумывать каждую мелочь
• IT-образование крайне желательно, но не
обязательно
Systems analyst
70. Sales manager
• Менеджер по продажам, «продажник»
• Общается с заказчиками и заключает
контракты на разработку
• Ищет новых клиентов разнообразными
способами (например, ездит по выставкам и
конференциям)
71. • Продажник — двигатель бизнеса
• Пока он не найдет заказчика, проектов у
компании не будет
Sales manager
72. • Задачи продажника:
• Найти потенциального клиента
• Уговорить его выполнить проект именно у
нас
• Сторговаться по цене
Sales manager
73. • Нужно очень много разнообразного опыта
(переговоры, понимание бизнеса заказчика,
экономика...)
• Средний возраст продажников в крупных
компаниях — 30 лет и старше
Sales manager
76. Зачем мне задумываться о
других профессиях?
• «Мне нравится работать разработчиком/
тестировщиком, я не хочу ничего менять»
• «Я не хочу становиться тимлидом или
менеджером: ответственность — это не для
меня»
77. Зачем мне задумываться о
других профессиях?
• За 5-10 лет даже любимое занятие может
надоесть, и вам может захотеться чего-то
нового
• Рост в менеджмент
• Смена карьерной области
78. Зачем мне задумываться о
других профессиях?
• За 5-10 лет даже любимое занятие может
надоесть, и вам может захотеться чего-то
нового
• А может и не надоесть
• 40-летние программисты вполне счастливы
79. Зачем мне задумываться о
карьерном росте
• Карьерный рост сопровождается ростом
зарплаты
• Разница зарплат между обычным и старшим
разработчиком — 2x
• Разница зарплат по всей карьерной лестнице
програмиста (от junior developer до CTO) —
10-15х
80. Подытожим?
• Карьерные пути: тестирование, разработка,
менеджмент
• Менее распространенные профессии
• Мотивация к карьерному росту
81. В следующей серии
• Как устроен IT-бизнес, и как код, написанный
вами, превращается в деньги
• Основные типы IT-компаний: сервисные и
продуктовые
• Почему в большинстве софтверных
компаний есть четкая верхняя граница
зарплат