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

Kate

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

Взять 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/
 
Сверху