Каков хороший, хорошо организованный рабочий процесс веб-разработки от начала (планирования) до завершения (тестирование и производство)?

Я уже несколько лет являюсь разработчиком PHP/MySQL, но, к сожалению, до сих пор работал только с небольшими проектами. Сейчас я начинаю новый веб-сайт, который очень сложный, и я начинаю путаться с рабочим процессом. Я не уверен, какие части сначала позаботиться, так как все они довольно переплетаются.

Мне бы хотелось узнать, как некоторые из вас управляют своим рабочим процессом для нового веб-сайта. Я работаю самостоятельно, поэтому было бы проще объяснить, если бы не было задействовано несколько разработчиков. Кроме того, я буду использовать структуру CodeIgniter, поэтому было бы здорово, чтобы рабочий процесс включал модель MVC, которая должна фактически упростить рабочий процесс.

После некоторого поиска я наткнулся на эту полезную диаграмму: workflow chart

Однако я не слишком уверен, что входит в каждую категорию. Вот общее изложение того, что я понимаю до сих пор. Пожалуйста, не стесняйтесь исправлять меня, когда я ошибаюсь или когда есть лучший вариант.

Планирование

Удостоверьтесь, что у вас есть четкие цели для проекта: что вы предлагаете и для кого? Как это будет полезно для других? Etc

Карта сайта

Перечислите все страницы и подстраницы, которые будут размещены на сайте.

Каркасы

Пройдите всю карту сайта и сделайте приблизительный эскиз каждой отдельной страницы. (Как подробно вы должны получить?) Вы можете использовать карандаш и бумагу, или программы, такие как Axure или Mockingbird.

Следующая основная категория в диаграмме рабочих потоков - это контент, но я не уверен, что это значит. Это все текст на веб-сайте? Структура базы данных? Что-то еще?

Произведение

Фактический дизайн/шаблон веб-сайта. Это действительно подходящее место для этого? Я бы подумал, что кодирование и функциональность важнее и сделать дизайн после этого.

Кодировка

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

Требуется постоянное тестирование, чтобы убедиться, что ваш код работает правильно.

Население контента

Будет ли это включать файлы вида в структуру MVC? Другими словами, все данные, предоставленные контроллерами и моделями?

Окончательное тестирование

Убедитесь, что все работает во всех браузерах. Создание твитов и изменений здесь и там. Выполните все с многочисленными делами "что, если".

Продукция

Сайт выходит в эфир.

Заключение

Вышеупомянутое - это то, что я понимаю как организованную блок-схему шагов по разработке сложного веб-сайта, но мое понимание может быть значительно улучшено. Что нужно изменить? Я мог бы использовать все возможные предложения. Спасибо.

EDIT: Кто-то здесь упомянул "гибкое развитие" - из того, что я читаю до сих пор, у него фактически нет структуры. Поправьте меня если я ошибаюсь. Как я прокомментировал этот ответ, действительно ли возможно так развиваться для сложных сайтов, таких как Amazon или Ebay? Процесс документооборота, в моем неосознанном мнении, должен иметь четкий план, иначе не было бы никакого внимания в проекте.

FINAL EDIT:. Хотя этот вопрос был закрыт, я хотел бы добавить некоторую информацию для тех, которые могут найти это позже. Я нашел следующий рабочий процесс полезным: http://www.webassist.com/free-downloads/tutorials-and-training/web-dev-workflow.php. PDF файл общего рабочего процесса: http://assets.webassist.com/how-tos/Short-Dev-Checklist.pdf. Разумеется, гибкая разработка также может быть использована, но это может стать хорошей отправной точкой для тех, кто не знает, с чего начать. Я могу добавить дополнительные рабочие процессы и примеры здесь, когда я их нахожу.

Ответ 1

Мир R & D движется к гибкому развитию, где вы не планируете и не пишете все от начала до конца, а делаете небольшие итерации и делаете небольшие изменения, чтобы у вас всегда была четкая цель в перед вами, и вы можете настроить свое направление по мере того, как ваше понимание требований улучшится (реальные, основанные на обратной связи с пользователем, не предполагаемая работа над догадкой, основанная на том, что вы думаете, что клиенты захотят/используют)

Я предлагаю вам изучить Agile development и Lean startup methodsologies, он изменил способ создания онлайновых сервисов и сделает вас намного более эффективным и продуктивным.

Я могу сказать, что мой онлайн-сервис выходил в эфир примерно через 2 дня после того, как я начал кодирование. Это не означает, что вы открываете его для реальных пользователей с самого начала, но вы можете получать немедленную обратную связь от реального мира, вместо того, чтобы хранить все это на своей машине, пока вы не будете готовы жить ".

Ответ 2

Проворное развитие - определенно хорошая идея для веб-сайтов (как правило, кодирование является относительно простым и независимым). Главное, что происходит с гибкостью, заключается в том, что он допускает изменения, а также позволяет корректировать "для выполнения функции" требуется больше времени, чем ожидалось ", поэтому C и D будут доставлены на другой итерации". Как вы, вероятно, знаете, планирование больших проектов может принести много усилий и почти всегда дольше, чем вы ожидали. С гибкостью вы делаете каждый бит как "вертикальный срез" - что означает, что что-то сделано, должно внести что-то полезное в продукт, полностью от добавления линга на передней странице [или где бы оно ни было], к добавлению кода для его обработки и модель базы данных для хранения/получения соответствующих данных.

Я уверен, что вам все равно нужно сделать небольшую часть планирования для большого сайта с большим количеством страниц, большим количеством таблиц базы данных и т.д. Но пока у вас есть разумное обоснование на общем веб-сайте/базе данных дизайн, гибкие методы позволят вам создать "ходячий скелет" (somethig, который работает в базовой концепции, но нужно больше мяса на костях, чтобы быть рабочим продуктом). Затем вы создаете эскиз с большим количеством функций, каждая функция "полная" сама по себе и добавляет то, что нужно клиенту. Таким образом, у вас всегда есть что-то, что вы можете доставить заказчику после завершения каждого рабочего процесса.

Я также убежден, что Amazon или Ebay имеют более 20-30 таблиц. Я работаю с сайтом www.planetcatfish.com, и он МНОГО меньше и проще, чем Amazon или Ebay, и имеет 25 таблиц (помимо таблиц phpbb для форума, который также используется для пользовательских функций сайта). И это было написано много лет, используя в основном php, немного javascript и справедливый бит mysql внутри php-кода.

Ответ 3

Ответ TheZuck хорош и очень полезен, поэтому я просто добавлю некоторые из моих собственных опытов, что не обязательно означает, что вы пройдете через то же самое, и, вероятно, не будете, если у вас есть половина ума для бизнеса (чего мне не хватает.: S).

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

Также стоит отметить, что ваши клиенты только начнут думать о своем веб-сайте, когда начнут думать о содержании. Ожидайте услышать о них, желающих внести некоторые изменения, когда они начнут работать над ним.

Если вы являетесь клиентами малого бизнеса, то они, как правило, не понимают, что именно на самом деле требует времени. Несмотря на то, что гибкое развитие действительно приятно, я считаю, что это будет трудно реализовать в сторону малого бизнеса, поскольку у них нет очень больших денег для работы и, вероятно, потребуется фиксированная цена за готовый продукт. И если они будут исправлены, они просто разозлится, если они исчерпали все свое время или что бы то ни было, за что они заплатили, не предоставив им готовый продукт (работающий конечный продукт - это не то же самое, что готовый продукт!).

Клиенты имеют тенденцию быть ИТ-неграмотными, иногда до крайности. Подсчитайте, что вам нужно потратить немного времени на объяснение им "очевидных" вещей.

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

Я понимаю, что это не ответ на ваш вопрос, но я надеюсь, что это поможет.