Как потратить 2 млн. на разработку и получить приложение, а не невроз

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

На 100 рублей можно купить молока, хлеба и сытно поужинать. Или мороженого, лимонада и заморить червячка. Это мы к тому, что 2 миллиона на приложение тоже можно потратить по-разному: взять команду энергичных джуниоров, отдать проект большой компании или доверить senior-разработчикам. Мы — это Мария Орлова и сборная разработчиков «ТехноФабрики». Мы решили приоткрыть внутреннюю кухню, чтобы вы без розовых очков посмотрели на три сценария разработки приложений.

Взять junior специалистов

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

Максим Баринов, руководитель направления разработки «ТехноФабрики»

Считается, что на команде джуниор-разработчиков можно неплохо сэкономить. Если исходить из среднерыночной зарплаты сеньора в ± 160 тыс. руб (средне-рыноч-ной, а не в среднем по Москве), два программиста этого уровня на 3 месяца обойдутся в 960 тыс., а два джуниора с з/п по 80 тыс. всего в 480 000 рублей. Экономия на сеньорах сокращает себестоимость проекта на 50% и кажется, что можно сделать приложение в два раза круче за этот же бюджет.

Когда кажется, нужно креститься или пить галоперидол.

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

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

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

Максим Баринов, руководитель направления разработки «ТехноФабрики»

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

Об этом не принято говорить, но проект с джуниор-командой часто становится плацдармом для обучения. Ведь лучше всего люди учатся при погружении в проблему, наступая на собственные грабли и исправляя собственные ошибки. Это здорово, только не тогда, когда вы платите 1,5- 2 тыс. в час, чтобы начинающий программист мял и кромсал приложение, то есть важный кусочек бизнеса за ваши же деньги!

Сеньоры не потому сеньоры, что виртуозно владеют технологическим стеком.

У них дополнительно к hard-скиллам прокачаны soft-скиллы: коммуникация, поиск информации, умение задавать правильные вопросы, находить альтернативу, готовность браться за задачи, с которыми никогда не имел дела. У джуниоров с этим посложнее. Они либо задают массу априори банальных вопросов, с которыми сеньор уже разобрался или знает КАК разобраться. Либо боятся показаться начинающими, делают как есть, а потом все это правят, потому что задачу в поставленном контексте выполнить невозможно. В среднем на коммуникацию и синхронизацию простых задач у джуниоров уходит 10-20% рабочего времени. Это не мы, Фредерик Брукс и его «Мифический человеко-месяц, или Как создаются программные системы». В среднем по больнице это 20-22 часа за месяц, которые junior тратит не на код, а на стыковку своей части плана с планом другого программиста.

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

Передать большой компании на субподряд

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

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

Вы ведь не думаете, что подрядчик возьмет с вас только сумму, которую сам заплатит за привлеченных программистов? Конечно, нет. Это ж не благотворительность, поэтому сверх ± 160 тыс. руб. на одного сеньора вы заплатите N тыс. рублей наценки.

Максим Никитин, Арт-директор

В сухом остатке приложение, сделанное кем-то и с какой-то наценкой. Хорошо, если этот кто-то — сеньор с манией ответственности и принципом «хорошо или никак». Еще лучше, если наценка на час его работы не превышает 10%.

Отдать senior-разработчикам

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

  • Изначально качественный чистый код. Для приложения это, как минимум, стабильность работы, без глюков и тормозов.

  • Функционал проверен через юнит-тесты, то есть программист имитировал сбои и устранил ошибки. Потестил каждое решение. Меньше багов — меньше негатива от пользователей, лучше рейтинг в сторе, больше скачиваний, дольше цикл жизни клиента и пр.

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

  • Экономия на сложных решениях. Просто потому что senior может предложить более эффективную и элегантную альтернативу, не выходя за рамки ТЗ и бюджета. Это как с переездом: заплатить 10 тыс. за полупустой кузов пятитонника или послушать совета бывалого грузчика и аккуратно забить тентованную «Газель» за 5 тыс. руб. В результате вы по любому переедете, но можно сделать это проще, дешевле и удобнее.

В конечном итоге все упирается в проще, дешевле и удобнее. Так что даже фиксированные 2 млн. на приложение можно потратить по-разному. Чтобы спокойно и без невроза, в обслуживании — дешевле, для пользователей — удобнее, для развития — проще.

Источник: https://habr.com/ru/post/564078/


Интересные статьи

Интересные статьи

Маркетплейс – это сервис от 1С-Битрикс, который позволяет разработчикам делиться своими решениями с широкой аудиторией, состоящей из клиентов и других разработчиков.
Получить трафик для интернет-магазина сегодня не проблема. Есть много каналов его привлечения: органическая выдача, контекстная реклама, контент-маркетинг, RTB-сети и т. д. Вопрос в том, как вы распор...
С 1 июля 2017 года на территории Российской Федерации стало обязательным использование контрольно-кассовых машин (ККМ), отправляющих все свои транзакции прямо в Федеральную налоговую службу. Так ...
Довольно часто владельцы сайтов просят поставить на свои проекты индикаторы курсов валют и их динамику. Можно воспользоваться готовыми информерами, но они не всегда позволяют должным образом настроить...
Как обновить ядро 1С-Битрикс без единой секунды простоя и с гарантией работоспособности платформы? Если вы не можете закрыть сайт на техобслуживание, и не хотите экстренно разворачивать сайт из бэкапа...