Записки программиста. Как не ошибиться в выборе исполнителя
Вначале немного о сути вопроса. Довольно часто я нахожу или меня находят заказчики, у которых уже есть некий сайт или web-система (далее просто сайт) и которую нужно доработать или взять на поддержку. И вот открываю я этот сайт в браузере и вижу (не всегда правда) красивый дизайн, функциональный, современный интерфейс. Думаю, вот хорошо то, попался серьезный проект, с которым будет интересно работать. Ан нет, ничуть не бывало. Смотришь в код, а там какой-то жуткий "самопис", все в одном фале, шаблонами и не пахнет, никакого кодинг стайла, php вперемешку с кусками html кода, форматирование кода тоже отсутствует, отступы какие хочешь, ну в общем мрак. При этом сам заказчик совершенно адекватный человек (правда тоже не всегда), с нормальным бюджетом и сроками.
Сидишь потом и думаешь, стоит ли браться за доработку такого кода, окупятся ли труды по разгребанию вот этого? Лично я часе всего отказываюсь, но не в этом суть. Суть в том, что хотелось бы дать пару советов заказчикам, как правильно выбрать исполнителя для вашего сайта.
1. Не поддавайтесь стереотипам. Одинокий фрилансер не обязательно синоним безответственного типа, который хочет взять предоплату, а потом вас кинуть. Ровно так же как и IT контора с блестящим офисом и красивыми картинками сайтов в портфолио не означает, что вы получите профессиональную разработку.
2. Если заключаете договор на разработку то:
2.1 Всегда разделяйте бюджеты заложенные на дизайн, верстку и собственно само программирование. Это нужно для того, чтобы потом вам не могли сказать нечто подобное: "У вас очень крутой дизайн и почти вся сумма пошла на дизайнера, а программирование остались копейки, потому и код страшный как Баба Яга".
2.2 Включите пункт о том, что код должен быть легко читаем, визуально нормально отформатирован, что количество комментариев должно быть не ниже 5-10% от объема самого кода, что комментарии должны быть написаны на английском языке и соответствовать стандартам phpDocumentor-а.
2.3 Очень, ну вот просто очень вам советую включить пункт о том, что разработка должна вестись при помощи современных инструментах. Подробнее об этом ниже.
3. Не дайте себя одурачить блеском красивого фантика. Я осознаю и полностью согласен с тем, что сайт в основном встречают по "одежке", т.е. по дизайну. Конечно не всегда это утверждение истинно, но в основном дела обстоят именно таким образом. При всем при этом не стоит забывать что на дизайне ваш сайт не заканчивается, особенно если это не домашняя страничка или блог. Пусть на первый взгляд и не заметно, что там у сайта "под капотом", но это не менее важный момент, чем визуальные красивости. Правильно выбранный инструмента, оптимально спроектированная структура системы, вот та основа, которая в дальнейшем позволит вам легко наращивать функциональность.
4. Подбор инструментов. Тут я могу порекомендовать следующее, убедитесь что разработчики используют современные инструменты. Да, для далекого от разработки заказчика это представляется непростой задачей, но есть множество способов ее решения. Почитайте в интернете на чем были реализованы сайты, близкие к вашему. Почитайте про отдельные инструменты реализации. Наконец проконсультируйтесь на любом профильном форуме или в другой фирме, у другого программиста. Скажите: "Мне вот предлагают разработать такой-то сайт при помощи таких-то инструментов. Нормальный ли это выбор, будет ли мне потом легко наращивать функционал?".
5. Портфолио разработчиков не оканчивается набором красивых скринов сделанных ими сайтов. Поймите, вы заказываете не полиграфическую продукцию, а довольно сложную вещь, по этому очень важно узнать какое качество кода может вам предложить разработчик. Опять же, сами вы вряд ли сможете оценить качество кода, но тут опять можно воспользоватся консультацией независимых экспертов. Хотя все же кое-что вы в состоянии оценить и сами, а именно форматирование кода. Для аналогии возьмем какой-нибудь документ на иностранном языке, да еще и жутко специализированный. Суть его понять будет очень сложно, но вот то, как он отформатирован понять довольно легко. Вы ведь визуально можете отличить текстовый документ с аккуратными отступами, от разъехавшейся разметки?
6. "Самописный" движок. На данный момент существует довольно большое количество популярных и хорошо зарекомендовавших себя движков для сайтов, это может быть как CMS (если функционал вашего сайта укладывается в ее функционал) или фреймворк (если ваш сайт узкоспециализированный и логика его работы не укладывается в распространенные CMS). Если же исполнитель сообщает вам о том, что он ведет разработку на своем "самописом" движке, то это может означать одно из двух. Или разработчик(и) очень талантливые программисты и действительно разработали движок, который работает быстрее и лучше популярных (очень небольшая вероятность), или же он(и) вчерашние, а может и сегодняшние, студенты, которые не освоили ни одного популярного инструмента (более вероятный вариант). В случае с IT компанией все может быть намного прозаичнее, основная часть ваших денег пойдет руководителям фирмы, а программист получит копейки. следовательно никто толковый там работать не будет и следовательно набирают новичков, для которых фреймворки и CMS это китайская грамота.
В таком случае нужно попросить у исполнителя обоснование отказа от популярных инструментов, а затем пару примеров кода из его движка. Вооружившись этими данными опять таки идти на консультацию к независимым экспертам.
Все эти советы конечно не дают гарантии, но помогут вам отсеять большинство некомпетентных исполнителей.
P.S. Да, да, я отдаю себе отчет в том, что вероятность возникновения холивара в комментариях довольно высока :)
Сидишь потом и думаешь, стоит ли браться за доработку такого кода, окупятся ли труды по разгребанию вот этого? Лично я часе всего отказываюсь, но не в этом суть. Суть в том, что хотелось бы дать пару советов заказчикам, как правильно выбрать исполнителя для вашего сайта.
1. Не поддавайтесь стереотипам. Одинокий фрилансер не обязательно синоним безответственного типа, который хочет взять предоплату, а потом вас кинуть. Ровно так же как и IT контора с блестящим офисом и красивыми картинками сайтов в портфолио не означает, что вы получите профессиональную разработку.
2. Если заключаете договор на разработку то:
2.1 Всегда разделяйте бюджеты заложенные на дизайн, верстку и собственно само программирование. Это нужно для того, чтобы потом вам не могли сказать нечто подобное: "У вас очень крутой дизайн и почти вся сумма пошла на дизайнера, а программирование остались копейки, потому и код страшный как Баба Яга".
2.2 Включите пункт о том, что код должен быть легко читаем, визуально нормально отформатирован, что количество комментариев должно быть не ниже 5-10% от объема самого кода, что комментарии должны быть написаны на английском языке и соответствовать стандартам phpDocumentor-а.
2.3 Очень, ну вот просто очень вам советую включить пункт о том, что разработка должна вестись при помощи современных инструментах. Подробнее об этом ниже.
3. Не дайте себя одурачить блеском красивого фантика. Я осознаю и полностью согласен с тем, что сайт в основном встречают по "одежке", т.е. по дизайну. Конечно не всегда это утверждение истинно, но в основном дела обстоят именно таким образом. При всем при этом не стоит забывать что на дизайне ваш сайт не заканчивается, особенно если это не домашняя страничка или блог. Пусть на первый взгляд и не заметно, что там у сайта "под капотом", но это не менее важный момент, чем визуальные красивости. Правильно выбранный инструмента, оптимально спроектированная структура системы, вот та основа, которая в дальнейшем позволит вам легко наращивать функциональность.
4. Подбор инструментов. Тут я могу порекомендовать следующее, убедитесь что разработчики используют современные инструменты. Да, для далекого от разработки заказчика это представляется непростой задачей, но есть множество способов ее решения. Почитайте в интернете на чем были реализованы сайты, близкие к вашему. Почитайте про отдельные инструменты реализации. Наконец проконсультируйтесь на любом профильном форуме или в другой фирме, у другого программиста. Скажите: "Мне вот предлагают разработать такой-то сайт при помощи таких-то инструментов. Нормальный ли это выбор, будет ли мне потом легко наращивать функционал?".
5. Портфолио разработчиков не оканчивается набором красивых скринов сделанных ими сайтов. Поймите, вы заказываете не полиграфическую продукцию, а довольно сложную вещь, по этому очень важно узнать какое качество кода может вам предложить разработчик. Опять же, сами вы вряд ли сможете оценить качество кода, но тут опять можно воспользоватся консультацией независимых экспертов. Хотя все же кое-что вы в состоянии оценить и сами, а именно форматирование кода. Для аналогии возьмем какой-нибудь документ на иностранном языке, да еще и жутко специализированный. Суть его понять будет очень сложно, но вот то, как он отформатирован понять довольно легко. Вы ведь визуально можете отличить текстовый документ с аккуратными отступами, от разъехавшейся разметки?
6. "Самописный" движок. На данный момент существует довольно большое количество популярных и хорошо зарекомендовавших себя движков для сайтов, это может быть как CMS (если функционал вашего сайта укладывается в ее функционал) или фреймворк (если ваш сайт узкоспециализированный и логика его работы не укладывается в распространенные CMS). Если же исполнитель сообщает вам о том, что он ведет разработку на своем "самописом" движке, то это может означать одно из двух. Или разработчик(и) очень талантливые программисты и действительно разработали движок, который работает быстрее и лучше популярных (очень небольшая вероятность), или же он(и) вчерашние, а может и сегодняшние, студенты, которые не освоили ни одного популярного инструмента (более вероятный вариант). В случае с IT компанией все может быть намного прозаичнее, основная часть ваших денег пойдет руководителям фирмы, а программист получит копейки. следовательно никто толковый там работать не будет и следовательно набирают новичков, для которых фреймворки и CMS это китайская грамота.
В таком случае нужно попросить у исполнителя обоснование отказа от популярных инструментов, а затем пару примеров кода из его движка. Вооружившись этими данными опять таки идти на консультацию к независимым экспертам.
Все эти советы конечно не дают гарантии, но помогут вам отсеять большинство некомпетентных исполнителей.
P.S. Да, да, я отдаю себе отчет в том, что вероятность возникновения холивара в комментариях довольно высока :)