Правильный подход к разработке веб-приложения (программное обеспечение для разработки, а не графика)

Недавно я получил запросы от потенциальных клиентов для очень сложных веб-приложений.
Они хотели, чтобы я написал спецификацию до того, как начнутся «настоящие» работы.
Спецификация, как они видят, должна состоять только из слов, описывающих приложение и БД .
Я обнаружил, что лучший подход - это «нарисовать» или «построить» прототип экранов, которые будет иметь приложение (HTML проще, чем писать книгу, особенно если вы используете WYSIWYG только на этом этапе ... стандарты здесь не важны).

Когда у вас перед глазами экран, сразу становится понятно, какие элементы должны быть (календарь / фотогалереи / какие основные ссылки, окно поиска и т. Д.)

Итак, я ошибаюсь в своем подходе? Или клиенты плохо осведомлены о том, как правильно действовать?


person Itay Moav -Malimovka    schedule 04.06.2009    source источник


Ответы (8)


Хотя я согласен с тем, что вам нужно иметь какое-то широкое согласие в отношении объема и стоимости создаваемой системы, я думаю, что это цепляние за соломинку, чтобы думать, что вы можете полностью определить систему до того, как передать ее в руки заказчика. Как вы обнаружили, покупатель очень часто не знает, чего он хочет, пока не увидит это на самом деле. Один из способов решить эту проблему - использовать макеты, как вы привыкли. Я тоже использую их при проектировании и планировании.

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

Я бы посоветовал вам найти некоторые документы, которые в общих чертах описывают масштаб проекта. Достаточно, чтобы вы могли прийти к соглашению о том, что является частью системы, а что нет. Если вы создаете приложение для управления запасами, им не следует ожидать, например, также системы управления отношениями с клиентами. Затем примените приемы из методов гибкой разработки, чтобы легко отслеживать желаемую функциональность и получать рабочий код как можно раньше, а впоследствии на регулярной основе. Это потребует доверия со стороны всех сторон, поэтому вы можете начать с небольших проектов и сроков и укрепить это доверие.

person tvanfosson    schedule 04.06.2009

Спецификация - самая важная (самая долгая) часть проекта. Он сообщает вам (и вашему клиенту), что вы строите и за что они вам платят.

Нет ничего хорошего в том, чтобы закончить сборку и затем обнаружить, что у клиента есть другая идея. Технические характеристики гарантируют, что вы все читаете одну и ту же книгу. Объединение туда некоторых идей графического интерфейса - тоже хорошая идея.

Суть в том, что и вы, и клиент должны знать, чего ожидать, до начала работы. Ваши экраны и макеты должны быть частью более широкой спецификации

Ваш подход кажется немного неправильным для большого приложения. Их ожидания кажутся мне правильными.

person Aiden Bell    schedule 04.06.2009

Я использую макеты экрана в Balsamiq. Он демонстрирует общий вид и удобство использования, не отвлекаясь от эстетики дизайна.

person gonzohunter    schedule 04.06.2009
comment
Я тоже использовал Balsamiq, с большим успехом. Он намеренно делает макет грубым, то есть все линии выглядят нарисованными от руки. В тот момент, когда вы добавляете цвет к бумажному прототипу, вы умоляете клиента начать жаловаться на выбор цвета. - person Pro777; 04.06.2009

Во-первых, у вас неправильная терминология. В заголовке вопроса вы спрашиваете «Правильный подход к разработке веб-приложения», но обратите внимание: ваш клиент попросил вас написать спецификации для приложения.

Спецификация не равна дизайну. Опасно пытаться уравнять их.

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

Спецификации обычно не включают макеты. Вкратце, они включают утверждения, которые точно описывают, что программное обеспечение должно делать. Обратите внимание, что это сильно отличается от того, как это должно происходить. Что касается веб-приложений, я бы сказал, что макеты следует делать на этапе проектирования. Так что да, отвечая на ваш вопрос, вы ошибаетесь в своем подходе.

Я предлагаю вам ознакомиться с этой статьей в Википедии для получения дополнительной информации о том, что такое спецификация.

Изменить: Хотя то, что я сказал, технически правильно, как отмечает Тванфоссон, сложно полностью определить систему до начала разработки. Я рекомендую вам прочитать его ответ и поговорите со своими клиентами о более реалистичном подходе.

person Rob    schedule 04.06.2009

У всех свой подход к разработке программного обеспечения. Ваш метод так же жизнеспособен, как и ваш клиент. Однако, поскольку ваш клиент платит вам, я предлагаю вам соответствовать их стандартам ИЛИ предложить свой метод и посмотреть, как они отреагируют.

person JasonV    schedule 04.06.2009
comment
Я отношусь к тому, как я пишу, так же, как и кодирую. Я не очень хорошо себя чувствую, когда вынужден использовать способы, которые мне не нравятся, отсюда и моя проблема. - person Itay Moav -Malimovka; 04.06.2009

Вам могут быть полезны следующие статьи в вашем общении:

Помните, что вы все равно можете создать макет HTML для себя, если это поможет вам подумать об остальном. В значительной степени дизайн HTML будет тогда вашим решением.

Лично я поклонник FIT и Fitnesse для уточнения деталей. Они упрощают поддержание в актуальном состоянии и включают некоторые тесты для проверки соответствия кода спецификациям.

Еще нужно помнить, что, как правило, заказчик не совсем понимает, чего он хочет, поэтому даже с полной спецификацией не считайте это полностью исправленным.

person Kathy Van Stone    schedule 04.06.2009

Пользовательский интерфейс - не самая важная часть приложения, сосредоточение внимания на этой части на столь раннем этапе может привести к ложным предположениям и навязывать выбор на основе интерфейса, а не функциональности.

Я предлагаю сначала сосредоточиться на функциональности, чтобы понять, что приложение должно делать, а не как оно будет выглядеть на экране. Интерфейс будет меняться со временем, клиент захочет, чтобы эта кнопка находилась слева, а не справа, синего, а не желтого цвета, это текстовое поле больше и другого шрифта, это подробности позже, если вы предоставите интерфейс со спецификациями вы рискуете обсудить эти второстепенные детали вместо важных функций.

Взгляните на Применение UML и шаблонов, I думаю, это может быть полезно. Одна из книг из серии "Экстремальное программирование" тоже была хороша, я проверю позже, какую именно.

person Billy    schedule 04.06.2009
comment
Я не имею в виду место или цвет кнопки, а скорее ставлю или не ставлю пуговицу. Если я поставлю кнопку с надписью «открыть медиаплеер» где-нибудь на сайте, тогда не будет никаких споров о том, что нам нужно где-то открыть медиаплеер. где расположена кнопка, менее важно. Макет, который я использую, указывает только на функциональность, а не на видимость (новое слово :-)) - person Itay Moav -Malimovka; 04.06.2009
comment
Хорошо, я понимаю, что вы имеете в виду, но я бы все равно просто написал это словами в спецификациях, как вы, но с более подробной информацией, потому что кнопка - это эффект, а не причина, вы захотите открыть конкретный носитель файл в любом случае, а также вы можете встроить средство просмотра вместо кнопки, поэтому кнопка уже налагает выбор, который вы, возможно, уже не захотите делать. Что касается цветов, я имел в виду, что клиент может уловить и сосредоточиться на этих важных деталях. Но если ваш макет сводит это к минимуму, почему бы и нет, но я все равно оставлю это для второй фазы. - person Billy; 04.06.2009

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

Какие основные вопросы нужно задать человеку, который хочет, чтобы его веб-сайт среднего размера был готов?

Вы спрашивали клиента, почему не приветствуются схемы или снимки экрана прототипа? У них могут быть свои причины для этого, например, попытка ограничить объем выполняемой работы до того, как начнется «настоящая» работа. Как идея, это не так уж плохо, если предположить, что они уже делали спецификацию с другими раньше и привыкли к этому процессу. Если это ново для них, возможно, стоит обсудить, почему вы хотите иметь эти прототипы, например иногда слова открыты для интерпретации, и это легче разрешить с помощью изображения, чем тысячи слов, которые легко показывает изображение.

person JB King    schedule 04.06.2009