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

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

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

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

Ответы [ 8 ]

8 голосов
/ 04 июня 2009

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

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

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

6 голосов
/ 04 июня 2009

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

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

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

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

3 голосов
/ 04 июня 2009

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

2 голосов
/ 04 июня 2009

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

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

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

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

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

Edit: Хотя то, что я сказал, технически правильно, как указывает tvanfosson, трудно полностью определить систему до начала разработки. Я рекомендую вам прочитать его ответ и поговорить с вашими клиентами о принятии более реалистичного подхода.

1 голос
/ 04 июня 2009

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

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

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

1 голос
/ 04 июня 2009

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

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

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

1 голос
/ 04 июня 2009

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

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

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

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

1 голос
/ 04 июня 2009

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

...