Подготовка веб-разработки и весь рабочий процесс проекта

9

Я работаю одиноким программистом над проектами веб-разработки (front и back-end) - я выполнил пару проектов, так что я довольно новичок в этом, я прочитал и попробовал несколько подходов и достиг пути о них. Вопрос и мое описание довольно длинные, поэтому, пожалуйста, будьте терпеливы.

Что я ищу, так это:
1. Подготовка / Планирование, которое обычно выполняется перед началом разработки, когда вы точно знаете, что нужно построить.
2. Исходя из вашего опыта, пожалуйста, дайте мне обратную связь / предложения о процессе, которым я следую в настоящее время.

Клиенты, с которыми я работаю, как правило, являются стартапами и имеют ограниченный бюджет, поэтому я не могу брать с них плату в час (я думаю, именно так крупные компании обычно выставляют счета своим клиентам [в человеко-часах] за проекты развития), и им приходится работа с фиксированным бюджетом.

В настоящее время я следую этому процессу:
1. Оцените масштаб проекта и постарайтесь понять, чего они пытаются достичь за пару встреч.
2. Дайте им приблизительную цифру с цитатой, которая описывает в целом, что они ожидают получить от проекта, я стараюсь быть точным в особенностях, но я не уделяю этому слишком много времени, потому что знаю Клиент может просто спрашивать цитаты, а не конвертировать.
3. Я следую предложению Джеффа Этвуда для оплаты и работы:

Оплата 15% - аванс перед началом любой работы. На
этом этапе выполняется макет HTML конечного веб-сайта, блок-схема (с yEd ), описывающая веб-сайт как можно более подробно, и документ, в котором упоминаются другие функции, которых нет в потоковой диаграмме. , Это делается путем углубления во все детали проекта и доработки частей, которые будут вписываться, и вещей, которые слишком много работы для реализации по согласованной цене. Поскольку детали не обсуждались ранее, их части также являются более или менее согласованием того, что они действительно получат. Поскольку это проект с фиксированным бюджетом, необходимо установить фиксированные требования, иначе моя цена будет снижаться по мере добавления новых функций.
Цветовая гамма, дизайн каркаса и дизайн PSD также доработаны.

Оплата 35% - начать разработку
. Проект исправлен, начать разработку. Я размещаю сайт на своем сервере, где клиент может получить доступ к интерфейсу, но не имеет доступа к какому-либо коду.

Оплата 30% - перенесите код на сервер клиента / предоставьте клиенту данные доступа к серверу.
Сделайте сайт живым.

Оплата 20% - через пару недель после запуска сайта, как только все ошибки были исправлены.


Вопросы:
1. Как только вы точно знаете, что собираетесь строить, какое планирование вы бы предприняли, прежде чем приступить к программированию?

2. Из вашего опыта, какие части всего процесса вы бы сделали по-другому?

Dmin
источник
К сожалению, многие клиенты не могут точно знать, что они хотят, чтобы вы создали. Лучший подход, который я нашел, - это сделать макеты некоторых важных страниц, а затем сесть и начать рассказывать истории пользователей. Я намеренно делаю некоторые истории явно неправильными, чтобы заставить клиента сказать: «Нет, я хочу, чтобы это работало таким образом ...» Это в конечном итоге приводит нас к чему-то, приближающемуся к спецификации проекта, но это неизменно меняется в последнем случае. Вздох.
Питер Роуэлл
@Peter, Преднамеренное представление поддельных пользовательских историй может иногда иметь неприятные последствия для вас и привести к потере доверия клиента к вам. Эту технику следует использовать осторожно.
maple_shaft
@maple_shaft: я это понимаю. Когда я говорю «очевидно, неправильно», я имею в виду настолько нагло Bogus®, что я обычно получаю больше, чем несколько смешков. Заставить клиента полностью инвестировать в свой сайт (видение / время / деньги) имеет решающее значение для успешного проекта. Это шокирует (по крайней мере, для меня), как много людей думают, что новый сайт - это то, что они могут сделать вручную, и это будет волшебным образом.
Питер Роуэлл
Я также согласен с макетами: никакое количество письменного текста не даст клиенту понять, что они получат (большинство не могут понять или не хотят его понимать) - макет прояснит для клиента вещи, а также некоторую документацию (spec) + контракт или что-то, что говорит: «Вы получите все это, и именно это, ничего больше» помогает. Во время разработки, я думаю, что может быть некоторая гибкость, чтобы изменить положение вещей, но если что-то приходит, что показывает больше работы, чем вы рассчитывали, я думаю, что макеты и спецификации должны быть извлечены, а дополнительная работа означает также дополнительные расходы.
DMin

Ответы:

10

Отличные моменты для обсуждения!

Для квалификации - я работаю в БОЛЬШИХ проектах веб-разработки в оборонной промышленности. У нас обычно есть команда из 10-40 человек, которые поддерживают одного клиента, проекты последних лет, и у клиента есть как деньги, так и высокие требования. Таким образом, пробег может варьироваться - вы не хотите перепланировать!

1 Как только вы точно знаете, что собираетесь строить, какое планирование вы бы предприняли, прежде чем приступить к программированию?

Это после 15% раздела, в начале 35%, верно?

  • Определите целевой веб-сервер и язык
  • Определитесь с хранилищем данных - XML, база данных, какая база данных?
  • Определите основные API - постоянство данных, графический интерфейс, ведение журнала, внедрение зависимостей и т. Д.
  • Определите механизмы входа в систему - с учетом рисков и информации, которую вы пытаетесь защитить. Может включать механизмы оплаты.
  • Планирование архитектуры высокого уровня и соглашений об именах
  • Выберите порядок развертывания функций, чтобы вы знали, с чего начать
  • Определите стратегию тестирования и, если применимо, подготовьте рамку автоматизированного тестирования
  • Настройка системы CM

2 По вашему опыту, какие части всего процесса вы бы сделали по-другому?

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

Если вы имеете дело с фиксированными платежами и клиентами, которые не предъявляют технических требований (например, какой язык или API вы используете), я бы запланировал в 1 пункте, что технически всегда для вас толчок. Просто 1 и оставьте остальное таким же. Я думаю, что в каждом проекте вы хотите расширить свои навыки, но вы не хотите быть такими безумными, что не работаете над чем-то, что вы хорошо знаете или понимаете.

bethlakshmi
источник
2

Мой самый большой совет для вас - быть предельно осторожным с работой по фиксированной цене. Если вы не разберетесь с требованиями до начала работы, может произойти одно из двух.

  1. Оценки по объему оказались заниженными, и вы теряете свою рубашку.
  2. Клиент не знает или не может знать все области до того, как вы начнете, в результате чего они не будут удовлетворены конечным результатом.

Для вас номер 2 - лучшая ситуация, потому что, если они подпишутся на предмет, а затем передумают, вы можете пересмотреть условия и получить больше денег. Просто убедитесь, что вы понимаете сферу, прежде чем оценивать, и что они понимают сферу и то, что вы будете доставлять.

Убедитесь, что они подписываются на прицеле! Компании, которые настаивают на фиксированной цене и отказываются подписывать контракты, являются ПЛОХОЙ КЛИЕНТОМ, и вы не хотите тратить на это свое время. Вы всегда будете проигрывать.

maple_shaft
источник