Коротко: сделать дёшево, быстро и качественно одновременно нельзя — это «треугольник проекта»; цена складывается из опыта, проектирования и требований к надёжности.

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

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

Из чего складывается стоимость проекта?

Если коротко, на цену влияют:

  1. опыт программистов;
  2. опыт архитектора;
  3. надёжность;
  4. отказоустойчивость;
  5. расширяемость;
  6. функциональность;
  7. поддерживаемость;
  8. экономия на спичках;
  9. сроки;
  10. общая сложность;
  11. наличие аналитики / экспертизы;
  12. сложности характера заказчика.

Разберём ключевые подробнее.

Опыт программистов

Здесь всё довольно линейно. Чем выше профессионализм — тем быстрее идёт разработка, качественнее результат и выше цена. В обратную сторону тоже верно: чем ниже опыт, тем дольше тянется проект и ниже итоговое качество, а цена ВОЗМОЖНО будет ниже. Именно «возможно»: тут всегда есть зависимость от сроков. Малоопытные разработчики порой делают одну и ту же фичу так долго, что по деньгам выравниваются с опытными — и в цене не выиграли, и по времени проиграли.

Опыт архитектора

Один из важнейших этапов — составить план и архитектуру ещё до первой строчки кода. Если сделать этот этап некачественно или вовсе выбросить из списка работ — риски превратить продукт в «долгострой» улетают в небеса.

Надёжность, отказоустойчивость, расширяемость, функциональность, поддерживаемость

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

Экономия на спичках

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

Сроки и миф о бесконечном ускорении

Кажется, тут всё очевидно, но есть неочевидный нюанс. Разработку можно ускорять только до определённого предела, а дальше в лучшем случае не будет изменений, в худшем — деградация процессов. На примере: над проектом работают 2 разработчика. Добавляем ещё 2 — скорость выросла вдвое. Добавляем ещё 4 — но прироста ×2 уже нет, получаем лишь ×1.3. Теперь на проекте 8 человек. Доводим команду до 16 — и вместо прироста получаем резкую деградацию до уровня 4 разработчиков. Причина в том, что мы перешли предел полезных людей на проекте и упёрлись в процессные издержки (классический закон Брукса). Поэтому сроки нужно ставить реальные, а не фантастические.

Сложность и наличие аналитики

Если продукт очень сложный, а технического задания нет, оно расплывчатое или заказчик ставит задачи в духе «сделай то, не знаю что» — стоимость растёт кратно. Особенно при отсутствии экспертизы у заказчика. Заказчик должен знать ВСЕ детали бизнес-процессов, чтобы суметь объяснить их программистам. Иначе разработчики будут догадываться и тыкаться вслепую, а это увеличивает и сроки, и стоимость.

Характер заказчика

Этот фактор тоже часто важен. Согласитесь, мало кому приятно работать с человеком, который постоянно на вас орёт. Но если орущий заказчик готов платить ×3 от рыночной цены — то почему бы и нет: за тройную цену ор можно и потерпеть :) Так что здесь всё зависит исключительно от заказчика: чем он вменяемее, тем дешевле обходится проект.

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