Очень часто люди спрашивают, и ищут в интернет - сколько стоит сделать сайт? Однозначных цен и единого прайс-листа нигде нет, где-то предлагают очень дёшево, а где-то можно заказать за дорого. Ни для кого не секрет, что индийские программисты работают за $5 в час, а американские - за $30. И есть ещё много-много факторов которые влияют на цены.
Базовая логикаИтак, вы решили сделать сайт и определились с логикой его работы: "Нажать здесь, выбрать здесь, ввести данные здесь - результат должен появиться вот здесь и в таком-то виде". Так вот, чем сложнее логика, чем больше различных функций - тем дороже.
Обработка ошибокОбычно люди забывают об этом. Корректная обработка ошибок - признак качественной работы, и признак того, что ваш сайт тестировали. Это - дополнительное время, и соответственно деньги.
Приведу пример на пальцах. Вам нужна программа, которая считает сумму двух введённых чисел. Если вы спросите студента, то он скажет вам что сделает эту программу за Х денег, а специалист скажет, что сделает за Х*5 например. Почему дороже?
Потому что программа студента будет выглядеть примерно так:
read A;
read B;
result = A + B;
print result;
Эта программа действительно считает сумму двух чисел. Но в ней нет проверки того, что числа введены правильно, что пользователь действительно ввёл числа а не буквы, что пользователь вообще ввёл хоть что-нибудь. Во всех этих нестандартных случаях программа не будет выдавать никаких особых сообщений, результат скорее всего будет '0' либо программа завершится аварийно и закроется.
Этот вариант вполне приемлем в некоторых случаях. Поэтому, если вам не нужны примочки-заморочки в виде проверок данных и сообщений - закажите программу у студента, и не переплачивайте деньги за то, что вам не нужно.
А когда всё-таки стоит переплатить? Если ваш сайт (программа) позиционирует себя как серьёзный продукт, то стоит переплатить специалисту. Обработка ошибочных ситуаций значит, что:
- посетитель сайта, нечаянно введя букву вместо цифры в номере телефона, не получит пустой экран в браузере - сайт обязательно выдаст соответствующее сообщение посетителю, и он сможет ввести данные корректно
- если у вас на сайте делаются онлайн-платежи, то в случае неудачного платежа, посетитель получит содержательное сообщение о причине ошибки, а не просто сообщение "Failed!". Содержательное сообщение нужно для того, чтобы: пользователь мог предпринять какие-то действия (ввести правильный номер кредитки) или мог скопировать сообщение и обратиться в поддержку либо свой банк.
Таким образом, обработка ошибок существенно влияет на цену программного продукта. В такой же степени, или даже более, чем базовая логика.
Обработка нестандартных ситуаций Почти то же, что и обработка ошибок, но хотелось вынести это отдельно, т.к. об этом часто забывают. Что случится, если на сайт придёт 1000 пользователей одновременно? Что случится, если откажет сервер баз данных? Что случится, когда на сервере на жёстом диске не останется места? Если это вам нужно, и если это критично, обговорите с программистом - предусмотрена ли обработка этих ситуаций? И это .. ещё одна разница между тем, что сделано за дёшево, и тем, что сделано за дорого.
Фрилансер или студия?Почему заказать работу у программиста-одиночки (фрилансера) обычно стоит дешевле, чем у какой-нибудь студии или software-фирмы?
Потому что работа программиста-одиночки выглядит как:
- написал
- протестировал и убедился, что это работает
- протестировал с нестандартными данными, убедился что выдаются сообщения об ошибках, и сайт/программа аварийно не завершаются
Что творится в серьёзных конторах:
- во-первых, там обычно есть стандарты, относящиеся к коду
- программист написал
- другой программист за ним проверил код
- отдел тестирования полностью протестировал
- ещё какой-нибудь отдел качества проверяет продукт перед выпуском
Преимущества серьёзной конторы:
- качественно написанный код, разумно организованная структура кода, соблюдение стандартов и двойная проверка кода удешевляют последующую поддержку и расширение.
Это важно. Потому что, если вам что-то и кое-как написали за Х денег, а через год ваш бизнес вырос, и вы хотите добавить функционал - окажется что проще переписать всё заново (если было сделано кое-как). Заново - это значит ещё Х, а чаще 2Х денег.
- отдел тестирования несомненно лучше протестирует вашу программу/сайт, чем это может сделать один человек, чаще всего не имеющий специальных знаний в тестировании, ибо он изначально программист, а не тестировщик
- отдел качества - это ваша гарантия, что всё будет качественно
Складывается ощущение, что серьёзные конторы - наше всё.
Но нет. Если вам нужен сайт-визитка. Если вам нужен сайт салона красоты. Если вы потом особо не планируете расширять ваш сайт (до интернет-магазина, социальной сети, портала например) - то зачем вам эти контроли качества, стандарты кодирования (хотя хорошо бы!), и отдел тестирования из 20-ти человек?? Просто хочется? Окей, но за это - вы переплачиваете (20 человек в отделе тестирования - это вам не шутки! им всем, как минимум, зарплату платят).
ДизайнХороший дизайн стоит дорого.
Можно найти бесплатные шаблоны дизайна/макеты в интернет.
Но если вы хотите уникальный дизайн - это дорого.
Итого, если вы решаете что вам это нужно - вы платите больше.
А если нет, - не стоит.
Я знаю несколько очень посещаемых и популярных сайтов с совершенно незамысловатым или вообще отсутствующим дизайном.
Lib.ru например. Или
bash.org.ru.
Итого:
- определитесь с логикой работы вашего сайта
- решите, нужен ли вам уникальный дизайн
- решите, насколько серьёзным будет ваш продукт и планируете ли вы его развивать в что-то большее - по итогу выберите между студией и заказом у фрилансера
- обговорите заранее с фрилансером, какие нестандартные ситуации должны быть обработаны (особо критичные - укажите). Простенькие, конечно, он и сам обработает (невведённые данные например), а вот те, что посложнее и нестандартные - укажите и обговорите.
Желаю удачи. Надеюсь этот обзор поможет. Не переплачивайте за то, что вам не нужно, и знайте, за что вы платите, когда платите много.