В прошлом я проектировал и наблюдал, как другие проектировали несколько систем, и я видел, как этот процесс разворачивается разными способами, но я нахожу общим то, что первоначальная архитектура должна, по крайней мере, планировать существование большинства основных функций.
Например, я видел систему управления HVAC, которая не имела понятия о зданиях, полах, помещениях и т. Д., Которые были бы дооснащены ими, и результат был таким же безобразным, как и они. Или мобильное музыкальное устройство, созданное из компонентов, лучше подходящих для ваших (не умных) карманных часов. Излишне говорить, что конечные продукты в любом случае не были фаворитами клиентов.
Когда вы говорите «концепция», это только один шаг от «идеи», и концепция может быть очень размытой. Бизнес обычно заботится о концепциях. Клиенты, как правило, заботятся о UX - концепции, воплощенной в жизнь таким простым и приятным в использовании способом, которая приносит определенную ценность благодаря его использованию.
Вы должны сделать «концепцию» перед любым программированием, я не могу представить, чтобы я открыл Visual Studio (или вашу IDE по своему выбору) и случайно написал код, чтобы увидеть, куда он идет.
Вы не можете сделать полный дизайн (и не должны) перед кодированием, но у вас должен быть приблизительный эскиз того, каким будет рабочий процесс пользователя.
UX-дизайн и кодирование довольно часто сочетаются друг с другом, и вам, вероятно, придется использовать какой-то подход Agile для любых проектов, кроме самых маленьких, чтобы включить этот факт в подход к работе. Так что не думайте, что вы худший из программистов, если вы не могли увидеть все это сразу - никто не может, и люди, которые думают, что могут, являются теми, кто просто игнорирует достаточно проблемы, чтобы они могли утверждать, что у них есть полное картина.
Один пример, чтобы положить размер на что-то большое. Концепция: «Создать визуальный облачный инструмент, который позволит предприятиям интегрировать свои программные платформы». Это звучит великолепно, и можно начать писать маркетинговые материалы и продавать их еще до того, как они появятся. Вы должны иметь это до кодирования.
Предварительное проектирование: «иметь формы и стрелки, как в Visio для описания логики; иметь подключаемые модули для подключения к различным платформам (SAP, SF, базы данных ...); иметь консоль мониторинга, где можно искать данные, проходящие через система; иметь способ визуального описания данных и преобразования одного формата в другой ". Еще один замечательный маркетинговый шарик. Это также дает вам некоторые идеи о том, что важно, должен иметь такой грубый набросок, прежде чем кодировать тоже.
Дизайн / код: «У вас должен быть HTML-дизайнер, размещенный в браузере, с такими-то и такими-то функциями; закодировать бэкэнд в Java, чтобы он мог работать на любом существующем сервере; определить структуры данных и UX для запроса или изменения их по мере необходимости; план аварийного восстановления, ошибки составление отчетов, ведение журнала аудита; контроль версий плана; планирование контроля доступа; .... "- чем тоньше список, тем более нереально предвидеть все это.
... однако следует по крайней мере знать, как все может выглядеть примерно так, или ваш конечный продукт может оказаться действительно бесполезным, что в итоге убьет потрясающую концепцию, скажем, вашему визуальному дизайнеру требуется 40 ". экран для отображения любого реального рабочего процесса, или нет способа поиска в журналах, кроме точного совпадения строк, ограниченного одним из 20 полей в журнале и т. д. и т. д. Нет хорошего способа предотвратить это, кроме выполнения вашей реализации - некоторые преуспеют, другие потерпят неудачу.