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