Вашему бизнесу хватит одного программиста

Или нет?

Вашему бизнесу хватит одного программиста

Сегодня разбираем такой вопрос: Действительно ли достаточно одного программиста, чтобы создать программу ?

Для ответа на него я сначала кратко и по-простому расскажу о ролях, принятых при разработке программ. Затем мы проверим их надобность - повесим их на одного человека и посмотрим как он справится.

Менеджеры (Product/Project Manager)

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

Аналитики (Systems Analyst)

Эти люди превращают сухие желания заказчика в конкретные описанные задачи для программистов. Большая аналитическая работа на них.

Архитекторы (Systems/Solution Architect)

Задачи архитектора — это делать правильный выбор, из каких компонентов и технологий будет состоять система. Именно от этого зависит:

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

Дизайнеры (UX/UI Designer)

Часто они ответственны за визуальный вид программы — они могут сделать программу красивой ещё до того, как её «написали».

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

Системные администраторы (System Administrator)

Это люди, которые работают с серверами. Они подберут и закажут железо для него. Соберут и настроят сеть, чтобы с этим компьютером можно было работать удаленно.

Программисты (Software Developer)

В эту категорию относим программистов, которые пишут код, чтобы программа работала, как этого требует бизнес.

Тестировщики (QA)

Наверное, об этой роли в IT люди наслышаны больше всего. Тестировщики — проверяют, что программа работает, как заказал бизнес. Делают проверки вручную и могут писать код, чтобы автоматизировать эти проверки.

Инженеры автоматизации (DevOps)

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

Техническая поддержка (Technical Support)

Решают вопросы и проблемы пользователей программы. Специалисты этой роли позволяет не терять пользователей-клиентов и, следовательно, деньги бизнеса.

Каждая из этих ролей включает другие — с более узкими и более конкретными задачами.

А можно ли вычеркнуть некоторые роли?

Вашему бизнесу хватит одного программиста

Можно подумать, что некоторые роли можно вычеркнуть как неважные. Давайте разберемся на простом примере, можно или нет?

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

Давайте проверим, будет ли Котик исполнять все описанные роли или нет?

Менеджер — Котик сам определяет, какие функции будет иметь программа, и следит за прогрессом.

Системный аналитик — Котик сам транслирует требования на технический язык.

Архитектор — Котик сам выбирает технологии и проектирует программу.

Дизайнер — Котик сам выбирает, как пользователь будет взаимодействовать с программой.

Системный администратор — Котик сам настраивает свой компьютер для разработки и запуска программы.

Программист — Котик сам пишет код своей программы.

Тестировщик — Котик сам проверяет, что программа работает.

Инженер автоматизации — Котик сам создаёт новую версию и публикует её.

Техподдержка — Котик сам разбирается с ошибками в программе и исправляет их.

Что получается?

Даже если программу пишет один человек, сами роли никуда не исчезают. Они просто совмещаются в одном специалисте.

Поэтому вопрос «Достаточно ли одного программиста для создания программы?» можно переформулировать так: способен ли один человек взять на себя сразу несколько профессий. И во многих случаях ответ будет — да. Но насколько качественно он будет выполнять все поставленные роли - это зависит от личности. Например, не каждый программист сделает приятный интерфейс для пользователя, или спроектирует удачную архитектуру. В зависимости от целей компании - подбирается личность, которая возьмёт на себя нужные роли.

Но когда работы становится много, когда каждому направлению (роли) нужно уделять всё больше и больше внимания, чтобы результат получался более качественным — тогда задействуют разделение по ролям.

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

3