Новости

За что платит заказчик при работе с программистом? (редакция от 11.09.2008)

 

            Внесем ясность в то, за что платит заказчик при вызове программиста. Иногда с заказчиками на этой почве возникает конфликт. Конфликт связан с тем, что заказчик является профессионалом в своей области, но не всегда понимает процесс и этапы разработки задачи в области программирования.

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

Разобьем разработку задачи на этапы:

 

1)      Формулировка задачи заказчиком. Заказчик, в произвольной форме предоставляет информацию о задаче, которую он считает необходимой для успешной разработки. Для исполнителя эта информация еще мало о чем говорит. И не отвечает, по сути, на главный вопрос: «что делать?». На этом этапе нельзя оценить трудозатраты (вернее, это может быть наугад, т.е. пальцем в небо). Тем не менее, этот этап – это уже работа исполнителя (он занимается вопросами заказчика) и он оплачивается заказчиком наравне со всеми другими. Эта работа происходит чаще всего в офисе заказчика.

2)      Понимание конечного результата исполнителем. Исполнитель узнает у заказчика, что подразумевается под конечным результатом от разработки этой задачи (решения этой проблемы). На этом этапе исполнитель помогает заказчику более ясно и четко сформулировать то, что он хочет получить в результате. На этом этапе может быть принято решение сложную задачу разбить на несколько простых задач. Этот этап в большинстве случаев происходит одновременно с формулировкой задачи заказчика. Эта работа происходит чаще всего в офисе заказчика.

3)      Проектирование задачи / Согласование принципиальных вопросов с заказчиком / Техническое задание. Теперь, когда известно, что именно хочет заказчик и согласовано с ним, в каком объеме он желает это получить, начинается проектирование. Цель проектирования – придумать, как именно реализовать то, что хочет заказчик терминами программы, чтобы это было и удобно заказчику и технически правильно. Для каждой задачи есть множество способов того, как ее можно решить. Иногда это может быть очень трудный выбор, если задача нетривиальна. Кроме того, нужно правильно оценить уровень компетентности и осознанности сотрудника, который будет работать с этой задачей (иначе, результат может не быть достигнут, при прочих равных условиях). На этом этапе у исполнителя еще могут появляться вопросы к заказчику. Техническое задание может быть сформировано, а может и не быть. Эта работа чаще всего происходит в офисе  исполнителя.

4)      Оценка трудозатрат. Теперь, когда известно и что делать и как это можно реализовать в программе заказчика, можно оценить, сколько времени понадобится на разработку этой задачи. Все предыдущие этапы оплачиваются заказчиком (время тратилось же конкретно на задачу заказчика). А на этом этапе, по желанию заказчика, можно отказаться от разработки, если задача займет больше времени и/или ресурсов, чем ожидал заказчик. В случае согласия на дальнейшую работу – начинается разработка.

5)      Программирование / Выяснение вопросов на этапе разработки. Процесс непосредственной разработки задачи программистом исполнителя. На этом этапе у исполнителя тоже могут появляться к заказчику вопросы. Эта работа чаще всего происходит в офисе  исполнителя.

6)      Внутреннее тестирование и доработка. Процесс внутреннего тестирования разработки на произвольных (тестовых) данных, иногда на уже имеющихся данных заказчика (если у нас есть база заказчика). Эта работа чаще всего происходит в офисе исполнителя.

7)      Установка задачи заказчику. На этом этапе исполнитель устанавливает то, что он сделал заказчику. Желательно, чтобы сотрудники заказчика были готовы по его приезду ненадолго выйти из программы. Задержать установку может этот факт, а также, медленный компьютер.

8)      Презентация задачи / Обучение сотрудников заказчика. Показ сотрудникам заказчика разработки. Ответ на все возникшие у заказчика вопросы. Эта работа происходит в офисе заказчика или удаленно (по телефону, Интернету).

9)      Тестирование заказчиком / доработка / установка / презентация. На этом этапе заказчиком могут быть найдены как ошибки, так и отсутствие возможностей, которые заказчик мог не упомянуть в начале разработки. Ошибки – всегда спорный момент. В одних случаях, они могут быть расценены как человеческий фактор, неизменно присутствующий в любой деятельности человека, в других - как грубая ошибка, которой не при каких обстоятельствах не должно было появиться. Если у заказчика возникают жалобы на этом этапе, то эти вопросы рассматриваются индивидуально. Нужно заметить, что, порой, недосказанная заказчиком возможность или нюанс может перечеркнуть практически всю проделанную исполнителем работу и заставить процесс начаться сначала. Если новая возможность не отменяет то, что уже сделано, тогда она просто проходит весь процесс сначала как новая задача (процесс) и увеличивает затраты на реализацию этой задачи в целом.

10)  Подтверждение заказчиком выполнения задачи. Согласно данному регламенту, у заказчика есть 3 рабочих дня, включая день сдачи работы. Если заказчик не связался с исполнителем в течение этого времени, то работа автоматически считается утвержденной заказчиком.

11)  Составление технического акта. Обоснование потраченного времени на понятном языке (не техническом). Это может быть отдельный документ, в случае, если на разработку в офисе потрачено более 4 часов. Если менее 4, то информация о том, что делалось в офисе исполнителя, будет внесена в график учета рабочего времени исполнителя и предоставлена заказчику.