Этапы разработки проекта
Содержание
Понять задачу
Необходимо четко понимать, что необходимо сделать. Поговорить с заказчиком и понять что и зачем ему нужно. Какие проблемы заказчика решает проект, как он будет работать.
На данном этапе от заказчика желательно иметь техническое задание.
На основании предоставленных материалов заказчиком, исполнитель сам может составить техническое задание.
Без ТЗ к сожалению получится ХЗ и нет смысла идти дальше. На старте работы нужно МАКСИМАЛЬНО четко сформулировать требования.
Сущности
Далее нужно определить сущности которые должны быть в проекте, и их взаимосвязи.
У каждой сущности есть определенный набор данных или полей. Так же сущность каким-то образом взаимодействует с другими сущностями.
Идеально составить ER диаграмму схемы базы данных. Ну или на худой конец нарисовать на листке бумаги ERD схему.
Понимание сущностей очень тесно связано с пониманием задачи для которой собственно и задумывается проект.
В итоге на данном этапе нужно определить какими данными будет оперировать наш проект.
Структура проекта
Если мы пишем на php здесь определяем фреймворк, набор пакетов который будем использовать.
Так же нельзя обходить стороной инфраструктуру, где запускать, как это поддерживать. Зависит от проекта, но здесь можно сопоставить сущности в бд и модели данных в коде.
Говоря простым языком, скелет проекта для написания бизнес логики.
Реализация
Главное реализовать ядро проекта, основной функционал, самую суть. Минимальный возможный функционал для запуска проекта в продакшене, который можно показать заказчику.
Здесь очень многое зависит от ваших подходов.
Задачу бить на этапы и подзадачи.
Не забываем про тесты и документацию.
Если сроки сжаты и мы сделали какую-то штуку на скорую руку, нужно обязательно ее переписать — это называется техническим долгом.
Если список тех. долга не ведется, это хреново друг.
Важно помнить что код со временем портится и требует рефакторинга
Документация
Параллельно разработке обязательно ведем документацию для разработчиков. Чтобы еще кроме вас знал как запустить и разрабатывать проект.