Подход хороший, можно сказать "атомарный".
(Если это читают бывшие преподаватели… лучше не читайте :))
Как это работает:
Есть проблема "Проблема1". Садимся и начинаем думать. И продумываем ее до атома. Процесс решения проблемы обычно итеративный. Лично у меня обычно присутствуют такие итерации:
1) Осознавание что проблема имеет место. Не смейтесь, это самая важная итерация!
2) Мозговой штурм, разные мысли, идеи, слова, фразы, все что находится в голове.
3) Обобщение всех идей в единую МЫСЛЬ, конкретизация и отсечение ненужного - того чем я не буду заниматься в рамках это проблемы, определение того чем я действительно буду заниматься. В идеале нужно дать определение проблемы в 5-10 словах. Назовите свой корабль!
4) Определение и конкретизация всех участников Проблемы1.
5) Определение всех задач в рамках Проблемы1.
6) Нахождение методов решения задач. Я не обязательно должен владеть всеми этими методами, хотя это желательно, от этого зависит время решения.
7) Когда известны задачи и методы их решения - начинаем решать. В процессе изучаем методы.
Решенные задачи складываем в процессы. Удобно нарисовать диаграммы всех процессов с указанием их участников и ресурсов которыми оперируют участники.
9) Проектирование БД.
Дальше - "Мартышкин труд" - кодинг.
Так вот, с чего я начинал - полезно ли это все? Конечно полезно, перед вами будет проект с детальнейшим описанием системы и чем лучше вы провели анализ - тем меньшей квалификации требуется кодер и тем меньше вопросов он будет задавать.
Но что я заметил за собой… то же самое что и эта "Штучка" - осмыслив всю проблему, все детали, все до атома я теряю к ней интерес. Мне все ясно, я это 1000 раз делал, это уже 999 раз мне надоело, никакой тайны, никакого творчества - есть проект, а я - мартышка нажимающая на кнопки…