понедельник, января 29, 2007

Прототипы

Когда я делаю систему на заказ, я люблю делать прототипы. Я люблю их делать потому, что прототипы любят мои заказчики. При помощи прототипа, за несколько дней возможно продвинуться на столько, что можно начинать рисовать HLD (high level design) и даже, писать код. Если все это делать без прототипа, просто ходить и беседовать с представителями заказчика, выуживая из них по капле противоречивые требования, большая часть которых являются чистой воды фантазиями, на это уйдет минимум месяц.
Я убежден, что прототип можно начинать делать после получаса беседы с парой ключевых пользователей будущей системы. Скорее всего, этот прототип вы переделаете на корню или выкинете, но свою роль он выполнит. Видели вы, как начинают сиять глаза представителя заказчика, когда он первый раз видит формочки и кнопочки будущей системы? Когда он слышит от вас «вы нажимаете эту кнопку, и система делает то и это…» - это музыка для него. Потому что до этого, «то и это» приходилось ему делать самому. Беседа сразу переходит в конструктивное русло, и вы очень быстро узнаете о будущей системе много таких вещей, о существовании которых до сих пор вы и не догадывались. Через пять минут вы уже понимаете, что у вас достаточно информации для того, чтобы идти и переделывать свой прототип.
Ваш прототип не должен делать ничего. Все что от него требуется, это достаточно правдоподобно представлять GUI системы. Если при этом, он еще позволит продемонстрировать последовательность действий (workflow) , полезность такого прототипа возрастает на порядок. Но не забудьте – в прототипе не должно быть никакого намека на выполняемую функциональность. Абсолютно! Иначе заказчик может решить, что система у вас уже готова, и вы пытаетесь морочить ему голову, изображая разработку все последующие месяцы.
И еще. Никогда не показывайте прототипы stakeholder-ам проекта (стэйкхолдеры – это боссы со стороны заказчика, в чьих руках финансирование вашего проекта). Обычно эти люди не являются пользователями разрабатываемой системы, но имеют свой взгляд на то, как она должна работать, и при этом у них достаточно власти, чтобы продавить свое мнение. В результате, вы можете получить в системе массу абсолютно бесполезных фич. И виноваты в этом будете вы. Поэтому сделайте так, чтобы стэйкхолдеру ваш прототип показали сами будущие пользователи системы. Они сделают вашему прототипу самый эффективный PR и заодно послужат надежным фильтром от буйства начальственной фантазии.

2 комментария:

Alexander Yurov комментирует...

One day I saw a prototype that was in front of client for 1 years. The system was built on it and then... in the midle of the project... someone powerful decided that this is absolutely wrong. It was quite funny:)

Sergey Rozovik комментирует...

Ну, бывает и так. Хотя скорее всего в этом случае "телега запряжена впереди лошади". Проект по существу никому не нужен и носит "политический" характер. Не завидую тому кто участвует в таком проекте.