Тонкости создания веб-проектов
Сроки
В мире программного обеспечения сроков разработки нет. Сайты и программы разрабатываются, дорабатываются в течение всего цикла жизни. Даже небольшой личный сайт требует постоянного внимания и времени на улучшения или дополнения. Процесс бесконечен.
Но, тем не менее, есть одна стадия, которую нужно держать в жестких рамках — это первая работающая версия. Такая версия сайта, которая может выполнять свою основную задачу. Границы этой версии определяются в каждом конкретном случае. Например, для интернет-магазина критичны: возможность выбора товара, возможность оплаты и доставки. Если в магазине это сделано и выполняется основная задача: идут продажи, то сайт можно считать работающей версией.
Тонкость состоит в том, чтобы сроки создания первой работающей версии не превышали определенных пределов. Например, для крупных веб-проектов это 4-5 месяцев разработки, для небольших и средних 1-2 месяца. Если проект делается большее время — можно считать, что сайт уже умер и начинать заново, это обойдется дешевле.
Почему? Потому что превышение средних сроков создания, возникает не из-за отличных результатов, не из-за успешных решений, а из-за проблем, допущенных в процессе: начиная от выбора исполнителя, излишнего энтузиазма заказчика и заканчивая ошибками в самой разработке. И большая часть времени будет уходить не на саму работу, а на исправление ошибок и на решение проблем. Это попытка строить дом на болоте, которое внезапно обнаружилось после закладки фундамента; это обед на палубе корабля за столом, с приборами, с бокалами вина, во время шторма.
Нет ничего печальнее, чем разработка проекта, который уже до запуска умер. При превышении средних и разумных сроков, вложения в дальнейшую работу начинают расти в геометрической прогрессии, моральные силы покидают, мотивация уходит. Если вы делаете сайт больше года — начните все заново.
Итак, средние сроки: 4-5 месяцев для крупных проектов (интернет-магазины, социальные сети, большие корпоративные сайты), 1-2 месяца для небольших и средних проектов (личные сайты, промо-сайты, сайты небольших компаний). Это не случайные цифры, а свой и чужой опыт разработки. В своей компании для крупных проектов мы ставим рамку: 4 месяца. В это время входит и проектирование, и дизайн, и программирование.
Как же избежать срыва сроков и выпустить работающую версию?
Отсечение лишнего
Не надо стремиться сделать все и сразу. В проектах, которые я делаю обычно тысячи мелких задач и сотни крупных. С предложениями клиентов список задач иногда расширяется в два раза. В процессе работы, если не заблокировать добавление новой функциональности, то список вырастет еще в два раза. В итоге получаем коллапс и типичную картину со всеми вытекающими.
Сразу и в сжатые сроки создать надежную систему из сотни задач практически невозможное дело. Чем задач больше, тем больше ошибок, не только в самом коде или других решениях, но в связях системы, в архитектуре. Процесс создания системы из большого количества задач требует итерационного подхода, разработку с учетом версионности от прототипа к постепенному наращиванию функционала. Этот процесс давно отлажен при производстве программного обеспечения, где необходимость в итерациях давно не секрет. При разработке сайтов такой подход практически не применяется.
Откуда появляются тысячи задач и все эти сложности? Это не понимание простого правила: «Больше совсем не значит лучше». Исполнитель предлагает реализовать новые функции, чтобы увеличить стоимость создания и стоимость поддержки, а клиент хочет добавить массу задач, чтобы оправдать свои вложения. И тот и другой ошибаются.
Стоимость чего-либо не зависит напрямую от сложности и функциональности, во всяком случае, в нашем технологичном 21-ом веке. А значит и прибыль от сложной работы не всегда больше, чем прибыль от простого и быстро сделанного проекта.
Для клиента успешность проекта не может измеряться количеством функционала. Успех и прибыльность зависит от других параметров.
Что нужно сделать, чтобы отсечь лишнее:
Разработка в два захода
Спроектировать сразу и учесть абсолютно все моменты, в том числе развитие и расширение даже несложного сайта за ограниченное время нереальная задача. Не потому, что у исполнителя может не хватить опыта или знаний, а потому что это действительно сложная работа. Каждый сайт уникален, в каждом сайте решаются задачи, которые не были ранее решены, а, следовательно, не всегда есть стандартные и проверенные решения.
Объем задач, множество связей в системе, разветвленные сценарии работы, бесчисленное множество технических требований — все это характерно для любого сайта. Описать это сразу на бумаге, составить полное техническое задание — невозможно. И уж тем более невозможно сразу реализовать без ошибок.
Еще раз: создание сайта это сложная работа, требующая больших и разносторонних знаний, вовлеченности нескольких высококвалифицированных специалистов.
Решение проблемы давно найдено. Это создание работающих прототипов сайта. Таким образом, оптимальный процесс создания проекта выглядит так:
Итак:
Поэтапный запуск и масштаб
Не стоит делать проект с расчетом на миллион посетителей, если в реальности на сайт будет заходить тысяча человек в день. Технически нет особой разницы в том, чтобы разработать сайт для ста посетителей в день или для 20-30 тысяч. Существенное различие появляется, если необходимо обеспечивать сотни тысяч посещений в день, разрабатывая архитектуру проекта, который будет базироваться на нескольких серверах. Это на порядок увеличивает сроки работы, стоимость и сложность работы. Поэтому необходимо тщательно проанализировать возможное количество аудитории, особенно, в первые месяцы работы сайта.
Глупо рассчитывать, что в первый месяц работы сайта будет миллион посещений, если, конечно, не будет проведена невероятно масштабная акция по рекламе. Она естественно проведена не будет в 99% случаев. В итоге нужно задать вопрос, а стоит ли сейчас тратить суммы в несколько раз большие и увеличивать на несколько порядков сроки?
Сомнение все-таки может остаться: а вдруг через неделю о сайте узнают сотни тысяч людей и все на него зайдут. Как показывает практика, всегда есть время на увеличение мощности сайта, даже если наступил пиковый момент. Когда наступает критическая необходимость, то все решения принимаются быстрее, и они становятся более эффективными, чем те решения, которые были приняты заранее «на будущее».
Даже такие сайты как twitter.com, в которых посещаемость росла и возможно до сих пор растет каждый день в два раза, все равно умудряются полностью перестраивать архитектуру, искать оптимальные решения, снижать нагрузки. И ничего смертельного не происходит. Если бы изначально twitter делали для миллиона посещений в сутки, он бы никогда не был запущен.
Запуск высоконагрузочных сайтов, да впрочем, и любых других, должен происходить поэтапно, например:
Поддержка и развитие
Абсолютно любой сайт нужно поддерживать. Это простая аксиома, но, тем не менее, в головах будущих владельцев проектов настолько глубоко сидит понятие о сайте, как о чем-то простом и сделанном на коленке студентом, что часто напрочь отсутствует вопрос: «А что собственно будет с сайтом после запуска?».
Есть три основных статьи расхода для существующего сайта:
Сайт — это бизнес. Сайт может приносить прямой доход, может косвенный, но в любом случае владение им подчиняется таким же законам, как и в любом другом бизнесе. Если у вас есть продуктовый магазин: вы платите аренду за помещение, платите зарплату продавцам, платите за обслуживание помещения и в целом за обслуживание бизнеса.
Если перед созданием проекта учитываются расходы на поддержку, на развитие, составляется хотя бы минимальный бизнес-план и план развития, то есть большой шанс, что проект станет эффективным и будет приносить прибыль, если нет, то, скорее всего проект уже мертв до запуска.
Извлечение прибыли
Как было сказано выше: сайт — это бизнес. Бизнес должен быть эффективным и приносить пользу.
Вариантов извлечение прибыли с сайта не много, но каждый из вариантов имеет свою специфику, свои сложности и требует обстоятельного планирования. Поставить на сайте рекламные баннеры или контекстную рекламу — просто, но эффект будет случайным и зачастую недостаточным. На сегодняшний день не существует правил, по которым можно сказать, что нужно поставить баннер, и он будет приносить столько-то денег в месяц. Вопрос по извлечению прибыли с сайта индивидуален в большинстве случаев и зависит от целого ряда параметров, которые может учесть только специалист, т.к. он знает цифры и расклады.
К примеру, в нашей компании было проведено исследование по различным вариантам извлечения прибыли: платный контент, платные функции, реклама, скрытый маркетинг и т.д. Это информация собственных проектов, проектов сделанных для наших клиентов, чужой опыт, открытые аналитические источники и отчеты о финансах некоторых сайтов. Все это позволяет оценить будущую прибыль от различных способов монетизации. Понять стоит ли в принципе создавать тот или иной проект и во что это выльется через полгода, через год. Оценить ключевые моменты эффективности: наступление точки самоокупаемости, точки выхода на прибыльность, этапы инвестиций.
Это серьезная аналитическая работа. Без нее на проектах ставят стандартный баннер, занимающий не странице значительное место и на самом деле почти всегда не приносящий ничего. Для того, чтобы баннер работал, нужно одно из двух условий: либо узкая и четкая специализация проекта, либо определенное количество посещений на сайте, обычно от 30 тысяч уникальных посетителей в сутки. В других случаях эффект будет стремиться к нулю. Тоже касается и контекстной рекламы, но условия несколько другие и их гораздо больше.
Баннерами и контекстной рекламой пути извлечения прибыли далеко не ограничиваются. Это могут быть и другие варианты, а также способы, которые придумываются именно для конкретного проекта и работают только на нем.
Как и в случае с поддержкой и развитием о путях извлечении прибыли нужно задуматься до начала работ по созданию сайта. Иначе в дальнейшем это станет почти невыполнимой задачей без внесения серьезных изменений на сайте, а это в итоге может стать просто невыгодным мероприятием даже с учетом придуманных способов монетизации.
--------------------
Источник: http://lessio.ru/articles/41/
Сроки
В мире программного обеспечения сроков разработки нет. Сайты и программы разрабатываются, дорабатываются в течение всего цикла жизни. Даже небольшой личный сайт требует постоянного внимания и времени на улучшения или дополнения. Процесс бесконечен.
Но, тем не менее, есть одна стадия, которую нужно держать в жестких рамках — это первая работающая версия. Такая версия сайта, которая может выполнять свою основную задачу. Границы этой версии определяются в каждом конкретном случае. Например, для интернет-магазина критичны: возможность выбора товара, возможность оплаты и доставки. Если в магазине это сделано и выполняется основная задача: идут продажи, то сайт можно считать работающей версией.
Тонкость состоит в том, чтобы сроки создания первой работающей версии не превышали определенных пределов. Например, для крупных веб-проектов это 4-5 месяцев разработки, для небольших и средних 1-2 месяца. Если проект делается большее время — можно считать, что сайт уже умер и начинать заново, это обойдется дешевле.
Почему? Потому что превышение средних сроков создания, возникает не из-за отличных результатов, не из-за успешных решений, а из-за проблем, допущенных в процессе: начиная от выбора исполнителя, излишнего энтузиазма заказчика и заканчивая ошибками в самой разработке. И большая часть времени будет уходить не на саму работу, а на исправление ошибок и на решение проблем. Это попытка строить дом на болоте, которое внезапно обнаружилось после закладки фундамента; это обед на палубе корабля за столом, с приборами, с бокалами вина, во время шторма.
Нет ничего печальнее, чем разработка проекта, который уже до запуска умер. При превышении средних и разумных сроков, вложения в дальнейшую работу начинают расти в геометрической прогрессии, моральные силы покидают, мотивация уходит. Если вы делаете сайт больше года — начните все заново.
Итак, средние сроки: 4-5 месяцев для крупных проектов (интернет-магазины, социальные сети, большие корпоративные сайты), 1-2 месяца для небольших и средних проектов (личные сайты, промо-сайты, сайты небольших компаний). Это не случайные цифры, а свой и чужой опыт разработки. В своей компании для крупных проектов мы ставим рамку: 4 месяца. В это время входит и проектирование, и дизайн, и программирование.
Как же избежать срыва сроков и выпустить работающую версию?
- привлечь дополнительные рабочие ресурсы;
- оптимизировать процессы разработки;
- отсечь все лишнее.
Отсечение лишнего
Не надо стремиться сделать все и сразу. В проектах, которые я делаю обычно тысячи мелких задач и сотни крупных. С предложениями клиентов список задач иногда расширяется в два раза. В процессе работы, если не заблокировать добавление новой функциональности, то список вырастет еще в два раза. В итоге получаем коллапс и типичную картину со всеми вытекающими.
Сразу и в сжатые сроки создать надежную систему из сотни задач практически невозможное дело. Чем задач больше, тем больше ошибок, не только в самом коде или других решениях, но в связях системы, в архитектуре. Процесс создания системы из большого количества задач требует итерационного подхода, разработку с учетом версионности от прототипа к постепенному наращиванию функционала. Этот процесс давно отлажен при производстве программного обеспечения, где необходимость в итерациях давно не секрет. При разработке сайтов такой подход практически не применяется.
Откуда появляются тысячи задач и все эти сложности? Это не понимание простого правила: «Больше совсем не значит лучше». Исполнитель предлагает реализовать новые функции, чтобы увеличить стоимость создания и стоимость поддержки, а клиент хочет добавить массу задач, чтобы оправдать свои вложения. И тот и другой ошибаются.
Стоимость чего-либо не зависит напрямую от сложности и функциональности, во всяком случае, в нашем технологичном 21-ом веке. А значит и прибыль от сложной работы не всегда больше, чем прибыль от простого и быстро сделанного проекта.
Для клиента успешность проекта не может измеряться количеством функционала. Успех и прибыльность зависит от других параметров.
Что нужно сделать, чтобы отсечь лишнее:
- четкая и ясная концепция;
- расстановка приоритетов: что важнее прямо сейчас, а что может подождать с реализацией. Какие функции (одна-две) будут ключевыми или продающими;
- блокировка добавления функционала в процессе разработки;
- понимание, что невозможно сделать все и сразу, разработка требует нескольких подходов.
Разработка в два захода
Спроектировать сразу и учесть абсолютно все моменты, в том числе развитие и расширение даже несложного сайта за ограниченное время нереальная задача. Не потому, что у исполнителя может не хватить опыта или знаний, а потому что это действительно сложная работа. Каждый сайт уникален, в каждом сайте решаются задачи, которые не были ранее решены, а, следовательно, не всегда есть стандартные и проверенные решения.
Объем задач, множество связей в системе, разветвленные сценарии работы, бесчисленное множество технических требований — все это характерно для любого сайта. Описать это сразу на бумаге, составить полное техническое задание — невозможно. И уж тем более невозможно сразу реализовать без ошибок.
Еще раз: создание сайта это сложная работа, требующая больших и разносторонних знаний, вовлеченности нескольких высококвалифицированных специалистов.
Решение проблемы давно найдено. Это создание работающих прототипов сайта. Таким образом, оптимальный процесс создания проекта выглядит так:
- составление документации;
- разработка бумажных или нарисованных на компьютере эскизов;
- создание дизайна;
- программирование работающего прототипа;
- тестирование с точки зрения удобства использования и сценариев работы;
- анализ проделанной работы;
- доработка документации;
- внесение изменений в дизайн;
- перепрограммирование прототипа до версии готовой к запуску сайта.
Итак:
- исполнитель должен пояснить клиенту процесс в два захода и выгоду от создания работающего прототипа;
- клиент обязан заплатить за такой подход большую сумму, тем самым сэкономив в дальнейшем на поддержке и на развитии.
Поэтапный запуск и масштаб
Не стоит делать проект с расчетом на миллион посетителей, если в реальности на сайт будет заходить тысяча человек в день. Технически нет особой разницы в том, чтобы разработать сайт для ста посетителей в день или для 20-30 тысяч. Существенное различие появляется, если необходимо обеспечивать сотни тысяч посещений в день, разрабатывая архитектуру проекта, который будет базироваться на нескольких серверах. Это на порядок увеличивает сроки работы, стоимость и сложность работы. Поэтому необходимо тщательно проанализировать возможное количество аудитории, особенно, в первые месяцы работы сайта.
Глупо рассчитывать, что в первый месяц работы сайта будет миллион посещений, если, конечно, не будет проведена невероятно масштабная акция по рекламе. Она естественно проведена не будет в 99% случаев. В итоге нужно задать вопрос, а стоит ли сейчас тратить суммы в несколько раз большие и увеличивать на несколько порядков сроки?
Сомнение все-таки может остаться: а вдруг через неделю о сайте узнают сотни тысяч людей и все на него зайдут. Как показывает практика, всегда есть время на увеличение мощности сайта, даже если наступил пиковый момент. Когда наступает критическая необходимость, то все решения принимаются быстрее, и они становятся более эффективными, чем те решения, которые были приняты заранее «на будущее».
Даже такие сайты как twitter.com, в которых посещаемость росла и возможно до сих пор растет каждый день в два раза, все равно умудряются полностью перестраивать архитектуру, искать оптимальные решения, снижать нагрузки. И ничего смертельного не происходит. Если бы изначально twitter делали для миллиона посещений в сутки, он бы никогда не был запущен.
Запуск высоконагрузочных сайтов, да впрочем, и любых других, должен происходить поэтапно, например:
- сначала только одна языковая версия;
- для одного города;
- для одной страны.
Поддержка и развитие
Абсолютно любой сайт нужно поддерживать. Это простая аксиома, но, тем не менее, в головах будущих владельцев проектов настолько глубоко сидит понятие о сайте, как о чем-то простом и сделанном на коленке студентом, что часто напрочь отсутствует вопрос: «А что собственно будет с сайтом после запуска?».
Есть три основных статьи расхода для существующего сайта:
- поддержка (исправление и решение технических проблем на сайте, наполнение текстовой и графической информацией, анализ статистики сайта, взаимодействие с посетителями). Часто все это периодические платежи, без какой-либо фиксированной стоимости в месяц;
- постоянные ежемесячные расходы (например, хостинг, рекламная поддержка);
- вложения в развитие (создание нового функционала, изменение существующего функционала, расширение под увеличивающуюся аудиторию).
Сайт — это бизнес. Сайт может приносить прямой доход, может косвенный, но в любом случае владение им подчиняется таким же законам, как и в любом другом бизнесе. Если у вас есть продуктовый магазин: вы платите аренду за помещение, платите зарплату продавцам, платите за обслуживание помещения и в целом за обслуживание бизнеса.
Если перед созданием проекта учитываются расходы на поддержку, на развитие, составляется хотя бы минимальный бизнес-план и план развития, то есть большой шанс, что проект станет эффективным и будет приносить прибыль, если нет, то, скорее всего проект уже мертв до запуска.
Извлечение прибыли
Как было сказано выше: сайт — это бизнес. Бизнес должен быть эффективным и приносить пользу.
Вариантов извлечение прибыли с сайта не много, но каждый из вариантов имеет свою специфику, свои сложности и требует обстоятельного планирования. Поставить на сайте рекламные баннеры или контекстную рекламу — просто, но эффект будет случайным и зачастую недостаточным. На сегодняшний день не существует правил, по которым можно сказать, что нужно поставить баннер, и он будет приносить столько-то денег в месяц. Вопрос по извлечению прибыли с сайта индивидуален в большинстве случаев и зависит от целого ряда параметров, которые может учесть только специалист, т.к. он знает цифры и расклады.
К примеру, в нашей компании было проведено исследование по различным вариантам извлечения прибыли: платный контент, платные функции, реклама, скрытый маркетинг и т.д. Это информация собственных проектов, проектов сделанных для наших клиентов, чужой опыт, открытые аналитические источники и отчеты о финансах некоторых сайтов. Все это позволяет оценить будущую прибыль от различных способов монетизации. Понять стоит ли в принципе создавать тот или иной проект и во что это выльется через полгода, через год. Оценить ключевые моменты эффективности: наступление точки самоокупаемости, точки выхода на прибыльность, этапы инвестиций.
Это серьезная аналитическая работа. Без нее на проектах ставят стандартный баннер, занимающий не странице значительное место и на самом деле почти всегда не приносящий ничего. Для того, чтобы баннер работал, нужно одно из двух условий: либо узкая и четкая специализация проекта, либо определенное количество посещений на сайте, обычно от 30 тысяч уникальных посетителей в сутки. В других случаях эффект будет стремиться к нулю. Тоже касается и контекстной рекламы, но условия несколько другие и их гораздо больше.
Баннерами и контекстной рекламой пути извлечения прибыли далеко не ограничиваются. Это могут быть и другие варианты, а также способы, которые придумываются именно для конкретного проекта и работают только на нем.
Как и в случае с поддержкой и развитием о путях извлечении прибыли нужно задуматься до начала работ по созданию сайта. Иначе в дальнейшем это станет почти невыполнимой задачей без внесения серьезных изменений на сайте, а это в итоге может стать просто невыгодным мероприятием даже с учетом придуманных способов монетизации.
--------------------
Источник: http://lessio.ru/articles/41/