Какие обязанности программисты выполняют в стартапах


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

Мы проанализировали вакансии стартапов на Cofoundit и готовы рассказать подробнее, что входит в должностные обязанности программистов и чего от них ожидают основатели.

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

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

На этом же этапе маркетологу или аналитику следует обсудить с программистом возможность использования различных веб-технологий для сбора данных о поведении потребителей. Разработчики могут не только подключить стандартные решения от «Яндекса» или Google, но и самостоятельно организовать непрерывный сбор метрик, важных для конкретного стартапа, и даже заранее предусмотреть возможности для проведения A/B-тестирования.

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

2
Разработка продукта
Создание нового IT-продукта включает в себя разработку его серверной части (backend) и клиентской (frontend).

Когда говорят про backend, то имеют в виду внутреннее содержание системы, которая обрабатывает запросы пользователей на стороне сервера. Сюда относится и программная архитектура, и программная логика, и базы данных, в которых хранится информация о самих пользователях и их активностях — например, о постах и комментариях. Frontend же представляет собой интерфейсную часть продукта, с которой напрямую взаимодействует потребитель.

Backend-разработчик должен знать серверные языки программирования — например, PHP, Python, Ruby или Java — и уметь работать с базами данных MySQL, Mongo DB или PostgreSQL. В свою очередь, frontend-разработчику нужно уметь верстать с помощью HTML5 и CSS3, а также понимать JavaScript и принципы работы с SVG-объектами, моделью DOM и запросами к API. Не помешает знать и основы UI/UX-проектирования, адаптивной верстки, кросс-браузерности и кросс-платформенности.

Кроме того, в обоих случаях могут пригодиться современные фреймворки и библиотеки вроде Symfony, Yii, Zend, Kohana, jQuery и других. Они позволяют не писать весь код с нуля, а использовать уже готовые функции для решения наиболее распространённых задач. Это особенно важно при работе в стартапе, когда требуется быстро создать первую версию продукта и так же быстро вносить в неё изменения.

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

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

3
Оптимизация кода
Как уже говорилось раньше, стартапы находятся в постоянном поиске работающих гипотез, поэтому разработчикам нужно действовать быстро. Из-за этого они не всегда следят за качеством кода, так как на первом этапе важнее просто запустить новую функцию. Впоследствии же, если в этом будет необходимость, можно провести оптимизацию — например, сократить код, уменьшить объём используемой продуктом оперативной памяти, ускорить работу программы или уменьшить количество операций ввода/вывода данных.

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

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

4
Управление командой
В случае успешного выхода на рынок со временем у стартапа появляется достаточно денег, чтобы позволить себе вместо одного многопрофильного full-stack-программиста нанять несколько узкоспециализированных специалистов — например, frontend- и backend-разработчиков, отдельных кодеров под iOS и Android или как раз тестировщика. Возглавляет же отдел обычно тот самый универсальный специалист, который занимался разработкой продукта с момента основания стартапа. Для этого ему нужно не бояться делиться экспертизой и научиться делегировать полномочия и правильно давать задания. В этом могут помочь гибкие методики управления вроде Agile, Scrum и Kanban и таск-менеджеры.

Немаловажным становится и вопрос найма сотрудников на появившиеся вакансии. Нужно правильно определить, впишется ли новичок в команду и какой уровень навыков требуется — Junior, Middle или Senior. Найти подходящих специалистов можно в том числе с помощью Cofoundit.

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