У Вас есть задача, потребность в автоматизации некоторых рутинных операций или ведении учета. Для этого нужна разработка программы или доработка существующей. А значит нужно поставить задачу программисту, контролировать его работу и проверить качество ее выполнения. Что делать, если у Вас не такой большой опыт работы с программистами? На что обратить внимание в первую очередь? Как поставить задание? Как их вообще проверять?
В первую очередь хочу обратить Ваше внимание на то, что, как правило, программисты любят свою работу. Все хорошие разработчики любят писать программы. Правда некоторые из них ленивы, другие не имеют необходимого опыта, а третьи перегружены задачами. Ваша задача - несмотря на возможные трудности добиться от программиста выполнения работы.
Если Вам не приходилось раньше давать задания программистом, то этот этап может вызвать трудности. Но уделите ему максимум внимания! Половина успеха задачи заключается в ее грамотной формулировке. Поэтому описать задание нужно максимально подробно и после ознакомления программиста с ним обязательно убедиться, что он понял все верно. Дело в том, что часто люди не находят общий язык и понимают одни и те же вещи по-разному. Вроде ничего страшного, но если не обратить внимание на ясность поставленной задачи, то это чревато потерянным временем, деньгами и расстроенными отношениями, причем с обеих сторон. Опытный программист при появлении задачи всегда задаст дополнительные вопросы. Их не будет в двух случаях - задание простое и написано предельно подробно и ему все ясно. Или он думает, что ему все понятно, или что разберется, когда сядет. В жизни чаще встречается второй вариант. И для того, чтобы программист сразу при постановке задачи уделил ей внимание, вник в нее, Вам необходимо задать дополнительные вопросы. Можно назвать их проверочными. Лучше их задавать по телефону, чем по переписке. Задайте дополнительные вопросы таким образом, чтобы исполнитель не мог ответить на них, не прочитав и не вникнув в Ваше описание задачи.
Перейдем дальше. Вы подробно описали задачу и убедились, что программист с ней ознакомился. Вы договорились о сроках и стоимости выполнения, если это фрилансер. Если это Ваш штатный разработчик, то, разумеется, сроки нужно назначить тоже. И не через месяц "все будет готово", а первая дата, когда можно будет посмотреть и проверить текущее состояние работы. Так вот второе правило для успешного взаимодействия с программистами - регулярно контролировать процесс выполнения задания. И корректировать его, если исполнителя заносит не туда.
Последний этап. Приемка задания. Если нет возможности произвести сдачу задания на встрече, то имейте в виду, что по переписке сдача может затянуться. Самое главное - Вам нужно прислать все замечания по программе ИСЧЕРПЫВАЮЩИМ списком. То есть проверить все модули и возможности программы сразу. Иначе сдача может затянуться на месяцы, если сегодня нашли одну ошибку, а через два дня, когда она исправлена, нашли новую. Все ошибки нужно найти сразу и подробно описать их программисту, чтобы мог понять без дополнительных вопросов и исправить.
На последнем этапе проверки задания есть еще одна хитрость. Для лучшего понимания всеми сторонами того, как должна работать программа, необходимо написать контрольные примеры. Это описания того, какие результаты должна выполнять программа при заданных входных параметрах. Например: "если вводим такой-то документ, то отчет должен выглядеть таким-то образом". Контрольных примеров может быть несколько. Если Вы нанимаете программиста-фрилансера, то можно попросить его написать их.
Если подвести итоги, то можно сказать, что самое главное для получения нужного результата, а не видимости работы от программистов - грамотно поставленное задание, которое программист понял, а также регулярный контроль процесса выполнения задания.