Вчера встречался с потенциальным заказчиком. На меня его вывел один мой коллега, знакомый по
phpclub, который снабдил его положительными рекомендациями (спасибо!).
Изначально я планировал встречу таким образом: мы встречаемся в центре Москвы (по договоренности это была кофейня n-joy на Кузнецких Воротах), знакомимся друг с другом и я рассказываю ему немного о своих профессиональных навыках, портфолио и прочих вещах по которым он сможет хоть как-то определить - подхожу я для его проекта или нет. В то же время, хотелось посмотреть и на него, чтобы понять - адекватен человек или проект сразу рискует превратиться в работу для камикадзе. Такая беседа очень хорошо помогает определиться, хотя бы предварительно. Методика заказчика по определению моей адекватности состояла из следующих направлений вопросов:
- Каким я вижу решение организационных вопросов (взаимные гарантии, взаимодействие в процессе разработки, разделение работы на этапы и оплату). По моему мнению, опытному заказчику мои ответы могли не только прояснить как мы можем сотрудничать конкретно с ним, но и в целом дать представление - есть у меня опыт решения таких вопросов или нет. Ведь если я ни бум-бум здесь, то встает вопрос - а были ли у меня раньше фрилансовые заказы или я выдаю себя не за того, кем являюсь.
- Чем данный проект будет для меня интересен? Тоже грамотный вопрос. Если проект не интересен с точки зрения реализации (а не денег) то для заказчика есть как минимум два риска - что я буду работать медленно без проявления фантазии и что проект мне надоест через месяц и я буду пытаться всеми силами выйти из него. Понятно, что оба риска вполне серьезны.
- В каких проектах я участвовал и что это за проекты? В моем конкретном случае у заказчика была рекомендация, а значит он не пытался устраивать мне тестирование на знание языка, но вопросы наподобие этого всегда позволяют оценить опыт разработчика в тех или иных сферах.
Я же специальных вопросов не задавал, но для меня были интересны следующие моменты:
- Сколько денег заказчик готов реально заплатить за проект. Нужно, чтобы он назвал конкретную сумму.
- Готов ли он платить дополнительно, если вдруг решит расширить проект или будет пытаться "вписать" новые задачи в старое ТЗ. Здесь в любом случае стоит предусматривать такой оборот дел, но лучше прояснить для себя все в самом начале.
- На какие сроки он рассчитывает и готов ли морально к их нарушению. Проект может разрастись, или могут вылезти неожиданные трудности - это все случается, причем не всегда по вине разработчика - некоторые вещи действительно сложно предугадать. Поэтому нужно понять - будет ли заказчик неадекватен или при должном обосновании с вашей стороны сможет как-то попытаться справиться с ситуацией. В любом случае, здесь разработчик должен всегда стараться предугадать тонкие места и как можно заранее предупреждать заказчика о возможных трудностях. О ленивости разработчика я здесь не говорю - мы рассматриваем ситуацию, когда программист действительно нацелен на успех проекта.
- Когда я получу первые деньги и что я должен для этого сделать?
В итоге, мы решили, что первая версия будет содержать в себе такие и такие функции (в общих чертах) и к определенной дате будет готов также графический дизайн.
Теперь, я должен буду выяснить о всех нужных функциях поподробнее, сформировать ТЗ и нарисовать статическую (HTML или в Visio) модель сайта. Тогда мы утвердим точный срок реализации этапа и деньги за его прохождение. Информация выясняется на дополнительных встречах путем интервьюирования заказчика.
Чем это хорошо? Во-первых, заказчик сможет за этот этап (2-4 недели) понять - действительно ли я могу реализовать то, что он хочет получить. Одно дело интуиция на собеседовании, а совсем другое - на практике. Если я не справлюсь с первым этапом, то он потеряет не полгода, а две недели, что тоже неприятно, но поправимо. С другой стороны, я, как разработчик смогу выявить платежеспособность и адекватность заказчика на практике и в крайнем случае потеряю также не полгода, а две недели.