Весьма распространённой является следующая ситуация: заказчик рассылает описание задачи в разные компании и запрашивает сроки и стоимость реализации. Затем выбирается «лучшее предложение» (обычно по самой низкой стоимости).
С точки зрения клиента такая ситуация выглядит вполне нормальной. Однако с точки зрения IT-компаний подобный подход является невыгодным. Давайте посмотрим, почему так происходит.
Проблема заключается в том, что в программировании нельзя просто взять и сказать: вот эта задача стоит столько-то и делается за такое-то время. Причин много, но вот несколько самых значимых (
просьба обратить внимание! ):
- Приложения, даже созданные на одной платформе, всегда отличаются (часто очень существенно);
- Не зная особенностей приложения клиента, а именно — как он сделан и функционирует, нельзя сказать ничего определённого;
- Клиенты могут придумать абсолютно любые задачи, основываясь только на бизнес-логике своей компании, но не понимая как это реализуется в приложении (в том числе конкретно в их приложении);
Всё это приводит к тому, что оценка задач по программированию становится очень сложной задачей даже для специалиста высокой квалификации. В частности, возникают следующие вопросы:
- Можно ли вообще выполнить указанную задачу в принципе (с учётом платформы приложения и его особенностей);
- Если это можно сделать, то как именно;
- Сколько времени займёт реализация и, следовательно, сколько это будет стоить;
На все эти вопросы должен ответить программист, выполняющий оценку. Чем сложнее задача, тем больше времени будет на это затрачено. Обратите внимание — не на реализацию, а только на оценку! Таким образом, чем сложнее задача, тем больше времени требуется на её оценку.
Также напоминаем, что для
большинства сложных задач некоторые моменты её реализации могут быть определены только в процессе выполнения задачи, то есть многие вопросы заранее просто неизвестны.
Чтобы их выяснить, нужно начать выполнять задачу.Таким образом, получается достаточно большой объём работы, который далеко не все клиенты хотят оплачивать (особенно потому, что не понимают технических особенностей оценки задач по программированию, что и не удивительно).
Оценка — это работа, которая должна быть оплачена!