Розкажу чим керується кодер
В першу чергу ресурси. Треба чітко представляти чи у нас є 10 серваків чи 1н хостинг.
Дальше ми обмірковуємо які інструменти вибрати. Якщо ж у нас ресурсів багато то ми думаємо про інструменти в першу чергу.
Наприклад ми знаємо що ми можемо дозволити собі заюзати zend чи ще якісь фреймворки і так далі.
Дальше базуючись на тз або на тому що необхідно створити ми продумуємо архітектуру проекту.
Це не просто база, архітектура проекту це все! В архітектуру ми закладаємо певні засади і правила яких ми будемо дотримуватись. Наприклад чи потрібно закладати у проект залишок функціоналу чи ні? Які модулі є головні і як взагалі організовувати модулі.
Якщо проект великий краще потратити час на його планування та архітектуру тоді в майбутньому ви знаєте що вас чекає і що ви маєте зробити а не переробляти 10 раз один модуль))
Разом з тим обираєте якого методу розробки ви будете дотримуватись. Спочатку писати самі важкі частини а пізніше простіші чи навпаки спочатку простіші а потім складніші. В залежності від типу проекту і від вас ви можете кодити місяць часу і не бачити результату а можете і через тиждень уже побачити мінімальний функціонал.
Дальше описуєте модулі і класи які вам потрібні це уже більш детальне планування тобто на цьому етапі ви уже продумуєте найменування файлів, розташування модулів, структуру бази (назви таблиць і тд)
До речі перед плануванням. Якщо у вас якийсь наворочений функціонал має бути з обмеженими ресурсами ви можете або написати прототип або просто кусок коду який протестить ресурси і алгоритми.
Наприклад ви не просто кажете я візьму мемкеш тому що треба витримати навантаження 100 юзерів на головній сторінці. Якщо ви не знаєте мемкеш а просто чули краще в першу чергу спробувати чи він підійде. Це є однією з невідємних рис великих проектів прототипи і тести під час планування.
Ну ось здається нічого не забув. Дальше ідемо кодити )) Ось так у мене починаються проекти. Фактично аж дуже здорових проектів з нуля я не виконував поки що проекти ростуть по мірі необхідності. Просто спланував зручно для себе і додаю функціонал згідно. Хоча один проект свій здається великий погано спланував і уже 2ий раз кодю з нуля так як архітектура нікудишня)