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

Часто к нам приходят люди далекие от ИТ, они обычно пытаются придумать способ для переноса привычных, реальных процессов и операций в цифровой мир. Мы всегда рады видеть таких энтузиастов, генераторов идей и оптимизаторов, которые рискнули попробовать автоматизировать рутине операции, снизить расходы и тому подобное.

На первый взгляд, все имплементации идей прекрасно ложится в компактный мобильное приложение, веб-сайт, простой монолит с привычными всем CRUD операциями. Создается впечатление, что можно легко поднять jHipster для бэкенд, фронт написать на готовом шаблоне (Angular, React, VueJS – что кому удобнее), что времени много не займет и вообще проект простой, который можно сделать “задней левой ногой”.

Однако, как всегда, дьявол кроется в деталях. При планировании процесса разработки происходит детализация каждого из этапов, каждый из компонентов и элементов, описывается взаимодействие между ними, интеграция внешних сервисов, рисуются дизайны и маршруты движения пользователя (так называемые User Flow). Разница в оценках времени / стоимости разработки к планированию и после отличается в разы (обычно не менее 2-3).

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

Хотя бывают и ситуации, когда профаны указывают завышенные цены. Своими глазами наблюдал ситуации, когда заказчику был продан функционал, суммы явно превышает затраченные усилия, выполненный некачественно, а затем функционал за отдельную плату “выпиливания” с проекта.

Так как человеку, который по ИТ не связана заказать качественный программный продукт? Куда обращаться? – Я сформировал краткий перечень правил, следование которым позволит снизить риск сотрудничества с неквалифицированным или неответственным исполнителем (касается как организаций, так и фрилансеров, одиноких разработчиков):

  1. Не заказывайте софт в близких знакомых или родственников – в этом случае чрезвычайно трудно (в силу моральных и других моментов) указать точную цену которая будет мотивировать работать.
  2. Проверяйте предыдущие работы, портфолио – сколько из указанных проектов “еще живы”, есть схожие по тематике с вашим и т.д.
  3. Спросите планы на 1-3 месяца (у компаний которые ценят качество пока заказов хватает, поэтому с высокой вероятностью они будут загружены)
  4. Закажите детализированное платной ТС – только за оплаченные услуги можно привести к ответственности, перечитайте ТС, проверьте на сколько подробно оно расписано, правильно поняли вашу идею, проследите как писалось ТС, общались с вами по непонятным моментам, или просто не включили в ТС то что не поняли, проявили инициативу и добавили что-то из своих идей?
  5. Попросите оценить проект в случае
    1. быстрой разработки
    2. качественной разработки
    3. оптимальное соотношение качество / скорость
  6. Попросите пример плана тестирования
  7. Не торопитесь – очень редко нужно создавать продукт в короткие сроки.
  8. Разбейте создание на несколько изолированных этапов
    1. Тестовый – проверка вашей гипотезы, отработка каждого необходимого функционала, взаимодействия между модулями, сервисам, интеграцию – на этом этапе можно определить ограничения которые будут наложены на отдельные части и проект в целом, возможно переделать концепт и даже отказаться от дальнейшей разработки, если очевидно, что подрядчик не «тянет» нужного качества.
    2. Рабочий – все проверенные гипотезы, отработанные функции и интеграции связать в единую систему и выпустить продукт.
  9. Вникайте в детали разработки, чтобы через неделю-другую не оказалось что-то как задачу понял исполнитель и как выполнил хотя бы немного приближается к тому что вы ожидаете.

Надеюсь что короткие советы спасут вас от разочарования в процессе разработки программного продукта.

Categories:

No responses yet

Leave a Reply

Privacy Settings
We use cookies to enhance your experience while using our website. If you are using our Services via a browser you can restrict, block or remove cookies through your web browser settings. We also use content and scripts from third parties that may use tracking technologies. You can selectively provide your consent below to allow such third party embeds. For complete information about the cookies we use, data we collect and how we process them, please check our Privacy Policy
Youtube
Consent to display content from Youtube
Vimeo
Consent to display content from Vimeo
Google Maps
Consent to display content from Google