Этот пост, наверное, не столько опыт, сколько планирование своих действий. Но я думаю, что этакий план применим ко многим разработчикам.
Когда-то давно я писал пост о том, что закончил написание собственной системы управления сайтами. Однако, "закончил" в данном случае - это слишком громкое и абсолютно неуместное слово. Прошло уже столько много времени, а я ее все еще пишу. Пишу под каждый проект... ну или товарищи мои пишут (есть ведь у меня несколько коллег, с которыми я неплохо сработался). Для каждого проекта создаются определенные модификации модулей системы, собирается система из разных модулей для достижения определенной функциональности. Расскажу немного о том, как происходит процесс.
После прочтения и осмысления техзадания на создание сайта сначала обнаруживается в недрах жесткого диска одна из подходящих версий самой CMS, потом по архиву выполненных работ ищутся нужные модули системы, соответствующие им запросы к БД, изображения, папки и функции, конфиги и т.д. Следующим шагом идет сборка всего обнаруженного в единый комплект. Затем производятся необходимые модификации модулей - внедрение новых полей или удаление ненужных.
На этом заканчивается этап сборки сайта. Начинается этап верстки макета, если он уже готов, либо же его ожидание, а потом - верстка. Но и здесь тратится довольно много времени на актуализацию модулей - в случае с моей KatrinCMS дизайн модулей хардкодом забит в нутро каждого модуля. Да, это техническая недоработка. Но с тем опытом, который у меня был на момент создания первой версии ЦМСки, даже таковой - уже достижение. После сборки и верстки начинается тестирование и наполнение проекта контентом.
Так вот, проблема в моем случае - это существенные временные затраты на сборку комплекта системы управления, модификации модулей и хардкод-верстку. Кроме того, в большинстве случаев верстальщик из нашей "компании" не сможет сделать сайт, не зная РНР. Ему приходится обращаться к кому-то из программистов или ко мне.
По моим подсчетам, затраты времени можно снизить, ни много, ни мало, на 70%, а сам процесс создания сайта сделать настолько доступным, что даже командный верстальщик или дизайнер с опытом верстки мог бы большую часть работы выполнить самостоятельно. Таким образом выросла бы прибыльность работы и скорость ее выполнения без ущерба для качества.
Но как этого добиться?
В результате продолжительного мозгового штурма мне в голову пришла идея организации и модификации CMS. Это требует некоторого переосмысления, реструктуризации и переработки. Итогом должен стать билдер для нее, доступный по логину и паролю для определенного круга лиц. В билдере выбирается базовая комплектация и необходимые функции, указывается первоначальная конфигурация системы, а затем - отмечаются необходимые модули. Билдер автоматически по заранее продуманному алгоритму (он действительно уже продуман) собирает полный необходимый комплект системы и структуру таблиц в БД, соединяет все в единый архив и выдает запросившему его сотруднику на скачивание. Таким образом получается экономия в 2-3 человекочаса при одной только сборке исходной версии проекта.
Но и этого недостаточно.
Ранее я не понимал смысла дополнительных полей в различных модулях некоторых CMS. Сейчас же я осознал, что при помощи таких полей с возможностью добавления/редактирования/удаления можно создать абсолютно универсальные модули для системы, которые не придется менять под каждый проект. Эта модификация сохранит до 30% рабочего времени программиста при грамотном подходе к внедрению таких допполей в код.
Третья модификация должна предоставить возможность изменять оформление различных элементов модуля для фронтенда, т.е. верстку каждого модуля, прямо из админки. Верстальщик сверстал определенную страницу макета, выделил в верстке соответствующий контент-блок и просто вставил его в соответствующем редакторе внутри админки модуля, разместив вместо функциональных составляющих типа заголовка, описания и т.п. соответствующий маркер этих составляющих, выданных там же, в админке.
Такая модификация позволит сэкономить еще порядка 20% времени работы программиста.
Ну и напоследок необходима единая система обновлений, которая в принципе может быть реализована лишь при описанном выше подходе к созданию проектов, когда модули системы в разных проектах по сути будут одинаковы и различаться лишь версткой и дополнительными полями. В этом случае достаточно выложить обновление на сервер билдера и клиентские сайты автоматически смогут произвести ОТА-обновление. Такой подход к обновлению клиентских сайтов позволит прийти к дополнительной экономии времени работы программиста в 20% по каждому проекту.
Итоговая экономия времени в 70% дает нам дополнительный профит, что не может не сказаться положительно на желании работать и качестве работы каждого участника такой команды.
Освободившееся время можно потратить на общее улучшение функционала CMS, на себя любимых и на любимых и близких ;-) .
Разработка того, о чем я достаточно сумбурно написал в этом посте, уже ведется, а я постараюсь периодически о ней сообщать. В планах также описание еще одного запланированного шага к организации работы с клиентами на разработку сайтов, который должен значительно упростить нашу жизнь и доставить удовольствие от работы с нами клиенту


Планирование, обдуманность - вот одно из самых важных понятий для времени. При планировании необходимо учитывать свои сильные стороны.
Надо перенимать опыт у японцев у них все четко организовано. Весь мир уже перенял их организацию труда.
В принципе, суть ясна. Я вот тоже занимаюсь интернет-бизнесом. Без команды не вышло бы ни черта абсолютно. У каждого есть свои способности. Что-то такое, что у него получается лучше, чем у остальных. Вот так вот, определив способности и разделив обязанности каждого, мы смогли придумать универсальную и быструю систему достижения цели. Командная игра необходима.
Только мандная робота. И мало того, каждый знает свою роль, действовать нужно как единый организм. В такой системе можно достичь просто небывалых результатов.
много верстал сайты тупо с нуля, но случайно нашел http://csstemplater.com/ - намного удобней хотя сервис можно и доработать
делегировать обязанности надо в любом деле, в котором хочешь преуспеть. Иначе закопаешься((
Главное - качество, особенно если делаешь для кого-то. Поэтому лучше не торопиться, делать как полагается. Чтобы работа была оперативнее, конечно лучше привлечь помощников, как было сказано выше.
Некоторые используют шаблонные орбиты. То есть ряд взаимозаменяемых шаблонов на 50%, которые заменяются ещё и по орбите. Своего рода каталог. Но он тоже требует дополнений.
Написание собственной cms это скорее ради интереса и опыта, чем ради денег. Сейчас на мой взгляд лучше взять, если не cms, то хотя бы фреймворк.
Единственное спасение - работа в команде. Вот только все члены команды должны образовывать единое целое, чтобы можно было положиться друг на друга и чтобы никто не халявил. Мануфактура - каждому своё, каждый отвечает за ту область в которой он спец.