Начинаем разработку: сначала код или дизайн?

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

Начинаем разработку: сначала код или дизайн?

Сначала код

Как следует из названия, команда начинает работу над кодом, игнорируя другие компоненты продукта. Программисты делают так, чтобы программа выполняла ключевые функции: например, собирала данные, обрабатывала их и предоставляла аналитику. Основная цель — создать работающую версию, которая справляется с поставленными задачами.

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

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

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

Сначала дизайн

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

Прототип проходит юзабилити-тестирование, чтобы команда убедилась, что было спроектировано удобное и подходящее пользователям решение. После этого программисты начинают работу над кодом: фронтенд и бэкенд объединяются.

Сильная сторона design first подхода в том, что продукт сразу получается дружелюбным к пользователю. Не идеальным, но гораздо более удобным в сравнении с первыми версиями софта, созданного по методу code first.

Минус этого подхода — в меньшей скорости разработки. Пока дизайнеры создают прототип, тестируют его и дорабатывают, программисты не могут в полной мере приступать к работе.

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

Как выбрать?

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

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

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

Минимизируйте риски возникновения конфликтов на стыке фронтенда и бэкенда — работайте с системными аналитиками. Они помогут сформулировать требования к продукту, поставить задачи не упустить из виду ничего важного.