Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Software Industry 101
bit.ly/industry101
vk.com/industry101
#SoftInd101
Что здесь происходит?
• Лекции о реалиях работы в IT-компаниях и
об IT-индустрии в целом
• Для студентов IT-специальностей,
задумывающихся о своей будущей карьере
Зачем этот спецкурс?
• Студент IT-специальности учится 4 года, но в
итоге знает об индустрии далеко не все
• Как устроены IT-компании?
• В чем заключается работа программиста?
• Куда (и кем) лучше идти работать?
Зачем этот спецкурс?
Мы расскажем о том, о чем в университете
обычно не рассказывают
Кто выступает?
• Сотрудники новосибирских (и не только) IT-
компаний
• Ведущие разработчики, менеджеры
проектов, руководители отделов
• Список выступающих - bit.ly/industry101
Кто выступает?
• Семëн Факторович
• Выпускник ФИТ НГУ 2009 года
• 5 лет программистского стажа
• Последние 2.5 года — менеджер проектов в
компании Noveo, noveogroup.ru
О чем будем говорить
сегодня
• Обзор разных профессий в IT-индустрии
• Какие карьерные пути есть у молодого
специалиста
Страшная правда
В IT-компаниях работают не только
программисты
Карьерные области в IT-
компаниях
• Разработка
• Тестирование
• Менеджмент
Менее распространенные
профессии
• Технические писатели, копирайтеры
• Аналитики
• Менеджеры по продажам
Разработка
• Junior Developer / Developer / Senior
Developer
• Team lead
• Software Architect
Junior developer
• Младший разработчик, стажер
• Стартовая позиция
• Опыт работы не обязателен
• Можно совмещать с учебой (начиная со 2-3
курса)
Junior developer
• Чем занимаются на этой позиции?
• Учатся! (еще и получают за это деньги)
• Тренинги, внутренние экзамены, учебные
проекты
Junior developer
Первый реальный проект может начаться
через 3-4 месяца
Junior developer
Один из лучших вариантов начала карьеры
Junior developer
Одно «но»: зарплата будет очень мала
Developer
• Software developer, разработчик, Software
engineer
• Та самая «стандартная» программистская
позиция
• Разработка программного обеспечения
Developer
• Разработка?
• 30%* времени: реализация новых фич
• 70%* времени: поддержка, развитие и
багфиксинг
* результаты могут отличаться от заявленных
Developer
• Бешеный креатив вовсе не обязательно
занимает бóльшую часть времени
• Остальное — поиск и исправление
собственных ошибок и мелкие доделки
• «Передвиньте эту кнопочку левее»
Developer
“Another flaw in the human character is that
everybody wants to build, but nobody wants to do
maintenance.”
– KurtVonnegut
Developer
Бывает, что разработчик вообще не пишет код
Developer
• Code review других разработчиков
• Сборка релизов и установочных пакетов
• Чтение спецификаций и оценка проектов
• Поиск проблем конфигурации на серверах
заказчика
Senior developer
• Старший разработчик
• Не позиция, а название вакансии
• 4-5 лет опыта разработки
• Значительно бóльшая зарплата
Team leader
• Team lead, руководитель команды
• Подразумевается наличие команды
• Руководит командой, но при этом сам пишет
код (в отличие от менеджера)
• «Играющий тренер»
Team leader
• Распределяет задачи, контролирует их
выполнение, консультирует команду
• Самый опытный из всей команды
Software architect
• Архитектор — значит что-то проектирует?
• Структура классов, компоненты сложного
технического решения
• В местных реалиях — то же самое, что senior
developer
Карьерный рост
разработчика
Junior → Developer → Senior
А дальше?
Карьерный рост
разработчика
Developer, developer, developer...
Карьерный рост
разработчика
Developer, developer, developer...
Оставаться разработчиком на протяжении
10-15 лет, если вам это нравится — почему бы
и нет?
Карьерный рост
разработчика
• Уход в менеджмент
• Team leader
• Project manager
• Уход в другие области (например,
тестирование) очень редок
Карьерный рост
разработчика
• Зарплата в основном выше, чем у других IT-
cпециалистов
• Невероятная востребованность профессии:
разработчик легко найдет работу в любом
городе и в любой стране
Quality assurance
• Обеспечение качества, тестирование
• «Тестировщик», но не «тестер»
• Поиск багов? Не совсем
• Проверка того, что приложение работает как
нужно
• А как нужно?
Quality assurance
• Выполняет ли приложение те функции,
которые оно должно выполнять?
• «В спецификации есть вот такая фича, но
разработчики забыли ее реализовать»
• «Эта фича работает не совсем так, как
описано в спецификации»
Quality assurance
• Как приложение работает с неправильными
данными?
• «Что будет, если я введу логин длиной 50
символов?»
• «Что будет, если я попытаюсь сохранить
файл на диск, на котором нет свободного
места?»
Quality assurance
• Работает ли приложение в тех условиях, в
которых оно должно работать?
• «Наше приложение нормально работает на
Windows 7, но крэшится наWindows XP»
• «Наш веб-сайт неправильно отображается на
iPad»
Quality assurance
• Работает ли приложение в экстремальных
условиях?
• «Что будет, если мы откроем нашим
графическим редактором файл в 10Гб?»
• «Что будет, если на наш сайт зайдет 100 000
человек одновременно?»
Quality assurance
• «Не перестало ли приложение работать после
рефакторинга?»
• «Не перестала ли работать какая-либо фича
после того, как мы добавили новую?»
Quality assurance
• Работа тестировщика очень разноплановая
• Не обязательно требует профильного
образования
• Но вполне может включать в себя чтение
кода (а иногда даже его написание)
Quality assurance
QA automation
• Автоматизированное тестирование
• Зачем проверять веб-сайт вручную, если
можно написать программу, которая будет
этим заниматься?
• Интересный вариант для тех, кто умеет
программировать и любит тестировать
• Автотесты зачастую пишутся на несложных
скриптовых языках (Lua, Python)
QA automation
• Есть и более сложные задачи
• Своя платформа для автотестов
• Покрытие тестами большой программной
системы: компилятор Java, С++ STL, ...
QA automation
• Рост, в основном, идет «вширь»: новые
области и методы тестирования
• Есть вариант уйти в менеджмент
• Руководитель отдела тестирования
• Менеджер проектов
• Уйти в девелопмент?
Карьерный рост
тестировщика
• «Пойти работать тестировщиком и потом
дорасти до разработчика» — не самая
лучшая идея
• Займет 1-2 года
• Лучше все это время прокачивать скилл
программиста
Карьерный рост
тестировщика
Менеджмент
• Project manager
• Product manager
• Senior management (CTO, CEO)
• Менеджер проектов, руководитель проектов
• Руководит проектной командой
(разработчики, тестировщики, дизайнеры,
аналитики...)
• Управляет разработкой, но не пишет код
Project Manager
• Налаживает процессы разработки
• Распределяет задачи, отслеживает их
выполнение
• Отслеживает сроки и бюджеты
• Общается с заказчиком
Project Manager
• Ответственность за проект — на менеджере!
• Менеджер собирает все шишки и все плюшки
Project Manager
• Работа менеджера кардинально отличается
от работы программиста
• Общение, решение организационных
вопросов, множество дел одновременно
• Стресс!
Project Manager
• Менеджер продуктов, product owner, program
manager
• Управляет не командой, а продуктом в целом
• Не операционный, а стратегический
менеджмент
Product Manager
• Понимание потребностей рынка: какую
бизнес-задачу решает наш продукт?
• Понимание потребностей пользователей: что
нужно нашим клиентам?
• Продвижение продукта на рынок,
взаимодействие с конкурентами
Product Manager
• Редко общается с разработчиками, обычно
только с менеджерами
• Может иметь в подчинении несколько
проектных команд
Product Manager
• CTO, Chief Technical Officer, технический
директор
• CEO, Chief Executive Officer, генеральный
директор
Senior management
• CTO: верхняя ступень технической
карьерной лестницы
• Финальные решения по сложным
техническим вопросам
• Надзор над несколькими продуктами
Senior management
• CEO: самая главная должность в компании
• Надзор над всеми продуктами
• Административные вопросы (аренда офиса,
финансы...)
Senior management
• Может быть интереснее работы
программиста (зависит от характера)
• Зарплата, как правило, выше (особенно у
старшего менеджмента)
• IT-образование не является обязательным
Менеджмент
Экзотические профессии
• Технические писатели, копирайтеры
• Бизнес-аналитики
• Менеджеры по продажам
Techwriter,
copywriter
В любой программе есть тексты
http://developers.facebook.com/docs/reference/plugins/like/
Text
http://www.gnu.org/software/grub/manual/html_node/Installing-
GRUB-using-grub_002dinstall.html
Программисты традиционно очень не любят
писать документацию
Techwriter,
copywriter
• Технический писатель занимается
инструкциями, файлами помощи...
• Копирайтер пишет менее специфические
тексты: контентное наполнение сайта,
маркетинговые описания продуктов...
Techwriter,
copywriter
• Иногда техписатель — это филолог,
натасканный на понимание предметной
области
• А иногда IT-шник, которого научили хорошо
писать тексты
Techwriter,
copywriter
Systems analyst
• Системный аналитик, реже «бизнес-аналитик»
• Слово «бизнес» — от «бизнес-логика»
• Перевод проблемы заказчика в задачу,
понятную программисту
Заказчик — аналитику:
«Мне нужна система складского учета,
решающая следующие задачи моего бизнеса...»
Systems analyst
Аналитик — программисту:
«Заказчику нужно веб-приложение, оперирующее
следующими сущностями...»
Systems analyst
• Общение с заказчиком и выяснение, чего же
он хочет
• Продумывание бизнес-логики приложения
• Выявление требований к приложению
(вплоть до прототипов интерфейса и
структуры БД)
Systems analyst
Результат работы аналитика — спецификация
приложения, по которой можно начинать
разработку
Systems analyst
• Для фанатично любящих писать документы и
продумывать каждую мелочь
• IT-образование крайне желательно, но не
обязательно
Systems analyst
Sales manager
• Менеджер по продажам, «продажник»
• Общается с заказчиками и заключает
контракты на разработку
• Ищет новых клиентов разнообразными
способами (например, ездит по выставкам и
конференциям)
• Продажник — двигатель бизнеса
• Пока он не найдет заказчика, проектов у
компании не будет
Sales manager
• Задачи продажника:
• Найти потенциального клиента
• Уговорить его выполнить проект именно у
нас
• Сторговаться по цене
Sales manager
• Нужно очень много разнообразного опыта
(переговоры, понимание бизнеса заказчика,
экономика...)
• Средний возраст продажников в крупных
компаниях — 30 лет и старше
Sales manager
• Зарплата минимальная (или даже нулевая)
• Но зато есть процент с продаж
Sales manager
Заключил контракт на 100 000 долларов?
Получи 10%
Sales manager
Зачем мне задумываться о
других профессиях?
• «Мне нравится работать разработчиком/
тестировщиком, я не хочу ничего менять»
• «Я не хочу становиться тимлидом или
менеджером: ответственность — это не для
меня»
Зачем мне задумываться о
других профессиях?
• За 5-10 лет даже любимое занятие может
надоесть, и вам может захотеться чего-то
нового
• Рост в менеджмент
• Смена карьерной области
Зачем мне задумываться о
других профессиях?
• За 5-10 лет даже любимое занятие может
надоесть, и вам может захотеться чего-то
нового
• А может и не надоесть
• 40-летние программисты вполне счастливы
Зачем мне задумываться о
карьерном росте
• Карьерный рост сопровождается ростом
зарплаты
• Разница зарплат между обычным и старшим
разработчиком — 2x
• Разница зарплат по всей карьерной лестнице
програмиста (от junior developer до CTO) —
10-15х
Подытожим?
• Карьерные пути: тестирование, разработка,
менеджмент
• Менее распространенные профессии
• Мотивация к карьерному росту
В следующей серии
• Как устроен IT-бизнес, и как код, написанный
вами, превращается в деньги
• Основные типы IT-компаний: сервисные и
продуктовые
• Почему в большинстве софтверных
компаний есть четкая верхняя граница
зарплат
Спасибо!
Семëн Факторович
sam.faktorovich@gmail.com
bit.ly/industry101
vk.com/industry101
#SoftInd101

More Related Content

Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не все выпускники IT-специальностей пишут код

  • 2. Что здесь происходит? • Лекции о реалиях работы в IT-компаниях и об IT-индустрии в целом • Для студентов IT-специальностей, задумывающихся о своей будущей карьере
  • 3. Зачем этот спецкурс? • Студент IT-специальности учится 4 года, но в итоге знает об индустрии далеко не все • Как устроены IT-компании? • В чем заключается работа программиста? • Куда (и кем) лучше идти работать?
  • 4. Зачем этот спецкурс? Мы расскажем о том, о чем в университете обычно не рассказывают
  • 5. Кто выступает? • Сотрудники новосибирских (и не только) IT- компаний • Ведущие разработчики, менеджеры проектов, руководители отделов • Список выступающих - bit.ly/industry101
  • 6. Кто выступает? • Семëн Факторович • Выпускник ФИТ НГУ 2009 года • 5 лет программистского стажа • Последние 2.5 года — менеджер проектов в компании Noveo, noveogroup.ru
  • 7. О чем будем говорить сегодня • Обзор разных профессий в IT-индустрии • Какие карьерные пути есть у молодого специалиста
  • 8. Страшная правда В IT-компаниях работают не только программисты
  • 9. Карьерные области в IT- компаниях • Разработка • Тестирование • Менеджмент
  • 10. Менее распространенные профессии • Технические писатели, копирайтеры • Аналитики • Менеджеры по продажам
  • 11. Разработка • Junior Developer / Developer / Senior Developer • Team lead • Software Architect
  • 12. Junior developer • Младший разработчик, стажер • Стартовая позиция • Опыт работы не обязателен • Можно совмещать с учебой (начиная со 2-3 курса)
  • 13. Junior developer • Чем занимаются на этой позиции? • Учатся! (еще и получают за это деньги) • Тренинги, внутренние экзамены, учебные проекты
  • 14. Junior developer Первый реальный проект может начаться через 3-4 месяца
  • 15. Junior developer Один из лучших вариантов начала карьеры
  • 16. Junior developer Одно «но»: зарплата будет очень мала
  • 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
  • 21. Developer Бывает, что разработчик вообще не пишет код
  • 22. Developer • Code review других разработчиков • Сборка релизов и установочных пакетов • Чтение спецификаций и оценка проектов • Поиск проблем конфигурации на серверах заказчика
  • 23. Senior developer • Старший разработчик • Не позиция, а название вакансии • 4-5 лет опыта разработки • Значительно бóльшая зарплата
  • 24. Team leader • Team lead, руководитель команды • Подразумевается наличие команды • Руководит командой, но при этом сам пишет код (в отличие от менеджера) • «Играющий тренер»
  • 25. Team leader • Распределяет задачи, контролирует их выполнение, консультирует команду • Самый опытный из всей команды
  • 26. Software architect • Архитектор — значит что-то проектирует? • Структура классов, компоненты сложного технического решения • В местных реалиях — то же самое, что senior developer
  • 29. Карьерный рост разработчика Developer, developer, developer... Оставаться разработчиком на протяжении 10-15 лет, если вам это нравится — почему бы и нет?
  • 30. Карьерный рост разработчика • Уход в менеджмент • Team leader • Project manager • Уход в другие области (например, тестирование) очень редок
  • 31. Карьерный рост разработчика • Зарплата в основном выше, чем у других IT- cпециалистов • Невероятная востребованность профессии: разработчик легко найдет работу в любом городе и в любой стране
  • 32. Quality assurance • Обеспечение качества, тестирование • «Тестировщик», но не «тестер»
  • 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 года • Лучше все это время прокачивать скилл программиста Карьерный рост тестировщика
  • 45. Менеджмент • Project manager • Product manager • Senior management (CTO, CEO)
  • 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-образование не является обязательным Менеджмент
  • 57. Экзотические профессии • Технические писатели, копирайтеры • Бизнес-аналитики • Менеджеры по продажам
  • 61. Программисты традиционно очень не любят писать документацию Techwriter, copywriter
  • 62. • Технический писатель занимается инструкциями, файлами помощи... • Копирайтер пишет менее специфические тексты: контентное наполнение сайта, маркетинговые описания продуктов... Techwriter, copywriter
  • 63. • Иногда техписатель — это филолог, натасканный на понимание предметной области • А иногда IT-шник, которого научили хорошо писать тексты Techwriter, copywriter
  • 64. Systems analyst • Системный аналитик, реже «бизнес-аналитик» • Слово «бизнес» — от «бизнес-логика» • Перевод проблемы заказчика в задачу, понятную программисту
  • 65. Заказчик — аналитику: «Мне нужна система складского учета, решающая следующие задачи моего бизнеса...» Systems analyst
  • 66. Аналитик — программисту: «Заказчику нужно веб-приложение, оперирующее следующими сущностями...» Systems analyst
  • 67. • Общение с заказчиком и выяснение, чего же он хочет • Продумывание бизнес-логики приложения • Выявление требований к приложению (вплоть до прототипов интерфейса и структуры БД) Systems analyst
  • 68. Результат работы аналитика — спецификация приложения, по которой можно начинать разработку Systems analyst
  • 69. • Для фанатично любящих писать документы и продумывать каждую мелочь • IT-образование крайне желательно, но не обязательно Systems analyst
  • 70. Sales manager • Менеджер по продажам, «продажник» • Общается с заказчиками и заключает контракты на разработку • Ищет новых клиентов разнообразными способами (например, ездит по выставкам и конференциям)
  • 71. • Продажник — двигатель бизнеса • Пока он не найдет заказчика, проектов у компании не будет Sales manager
  • 72. • Задачи продажника: • Найти потенциального клиента • Уговорить его выполнить проект именно у нас • Сторговаться по цене Sales manager
  • 73. • Нужно очень много разнообразного опыта (переговоры, понимание бизнеса заказчика, экономика...) • Средний возраст продажников в крупных компаниях — 30 лет и старше Sales manager
  • 74. • Зарплата минимальная (или даже нулевая) • Но зато есть процент с продаж Sales manager
  • 75. Заключил контракт на 100 000 долларов? Получи 10% Sales manager
  • 76. Зачем мне задумываться о других профессиях? • «Мне нравится работать разработчиком/ тестировщиком, я не хочу ничего менять» • «Я не хочу становиться тимлидом или менеджером: ответственность — это не для меня»
  • 77. Зачем мне задумываться о других профессиях? • За 5-10 лет даже любимое занятие может надоесть, и вам может захотеться чего-то нового • Рост в менеджмент • Смена карьерной области
  • 78. Зачем мне задумываться о других профессиях? • За 5-10 лет даже любимое занятие может надоесть, и вам может захотеться чего-то нового • А может и не надоесть • 40-летние программисты вполне счастливы
  • 79. Зачем мне задумываться о карьерном росте • Карьерный рост сопровождается ростом зарплаты • Разница зарплат между обычным и старшим разработчиком — 2x • Разница зарплат по всей карьерной лестнице програмиста (от junior developer до CTO) — 10-15х
  • 80. Подытожим? • Карьерные пути: тестирование, разработка, менеджмент • Менее распространенные профессии • Мотивация к карьерному росту
  • 81. В следующей серии • Как устроен IT-бизнес, и как код, написанный вами, превращается в деньги • Основные типы IT-компаний: сервисные и продуктовые • Почему в большинстве софтверных компаний есть четкая верхняя граница зарплат