CTaPuKuMopE

CTaPuKuMopE

На Пикабу
поставил 36 плюсов и 21 минус
200 рейтинг 3 подписчика 7 подписок 3 поста 0 в горячем

Борьба с паразитным трафиком на сайте

Для ЛЛ: мой опыт борьбы с ботами на сайте. Старался кратко, но тема большая. Поэтому только основное и то много получилось.

Хотелось бы затронуть тему паразитного трафика на сайтах. Те, кто работают с вебом, периодически бывают по обе стороны «добра» и «зла»: то защищаемся от разного рода трафика, то наоборот его создаем (например, парсим данные). Последние месяцы мне приходится как раз бороться с теми, кто не является людьми, но постоянно создают пустую нагрузку на проектах.


Сразу скажу, что имею дело с разными серверами: массхостинг, vps и собственные. Инфраструктуры разные, подходы у админов тоже. Поэтому рассказываю про самый обычный способ: как найти ботов и заблокировать их на уровне веб-сервера. Под ботами имеются в виду любые автоматические системы, а не только те, которые открыто говорят про себя, что они роботы. Вряд ли открою какие-то тайны, просто расскажу свой подход. Опишу только основные моменты. Я уже и так понял, что кратко писать не умею, а тема очень объемная.

И сразу про защиту через CloudFlare. Её не рассматриваю по своим причинам, это не тема для данного поста. Но да, кто хочет, тот использует этот сервис.

Один из частых советов, которые дают при вопросе о защите от ботов - это создания списка этих самых ботов. Поэтому на поисковиках ищут ссылки на гитхаб репозитории со списком «плохих ботов». Примеров много (вот раз, вот два). Можно ли использовать эти списки? И да, и нет. Не все роботы из них перейдут на ваш сайт, а те, кто действительно создает трафик, могут и не быть в этом списке. Поэтому, если хочется, то копируем данные по ботам и добавляем в свой конфиг (или .htaccess, если у вас Apache). Но не останавливаемся на этом.

Далее нам нужны логи нашего веб сервера. Лучше всего, если у нас их много – данные от двух недель и более. Если меньше или их вообще нет, то идем в настройки веб-сервера и указываем ему, что логи надо хранить. Для посещаемых проектов лучше сразу еще настроить logrotate, чтобы ежедневно ваши лог-файлы сжимались в свой архив. Так удобнее будет их скачивать и хранить.

Допустим, логи у нас есть. Работать мы будем с access.log (далее – лог-файл), а error.log, если он не пустой, просматриваем на наличие ошибок, которые могли допустить в своих скриптах. Больше он нам не понадобиться.

Если у вас в счетчике посещаемости (пусть это будет Яндекс.Метрика) ноль посещений, то это не значит, что на сайт никто не ходит. Открываете лог-файл и видите, что сайт постоянно отдает данные всяким автоматическим системам. Плохие мы уже могли забанить (см. выше) и им на их запросы отдается 403 ошибка. С этим разобрались. Остались те, которые вроде бы пользователи, но в Метрике их нет или они помечены как роботы, а может быть и приняты за реальных людей. Часто это накрутчики поведенческих факторов. Ваш сайт может и не быть их целью, но на нем они учатся, а также прокачивают себя. Многие из них довольно примитивны. Их мы отфильтруем.

Для этого воспользуемся анализатором логов. Их много, можете взять любой. Мне, как разработчику, зашел GoAccess, т.к. я могу запустить его через Docker и мне не нужно ставить никаких дополнительные программы.

Пишем в консоле команду (взял из мануала, для базовых данных годится):

cat access.log | docker run --rm -i -e LANG=$LANG allinurl/goaccess -a -o html --log-format COMBINED - > report.html

На выходе у нас html файл с полным отчетом. Ради интереса вы можете подробно изучить статистику и сравнить ее с той же Я.Метрикой. Но для практической части нам сейчас нужен блок «Visitor hostnames and IPs». Сортировку в таблице делаем по убыванию в поле Visitors и ищем те адреса, у которых много hits и много visitors (можно и по Visitors отсортировать, если вам так удобнее).

Борьба с паразитным трафиком на сайте Личный опыт, Сайт, Боты, Блокировка, Проект, Длиннопост

Например, первая строка не удовлетворяет этим условиям, но мы ее все равно смотрим и видим, что это любопытный crawler, который нам не нужен и он точно будет забанен. На четвертой строке как раз нужный пациент. С одного IP много разных «браузеров». Такое бывает. Поэтому берем IP и смотрим, что это вообще такое.

Борьба с паразитным трафиком на сайте Личный опыт, Сайт, Боты, Блокировка, Проект, Длиннопост
Борьба с паразитным трафиком на сайте Личный опыт, Сайт, Боты, Блокировка, Проект, Длиннопост

Получаем, что это прокси из Люксембурга. Банить ли такой адрес? Решать вам. Как показала моя практика и анализ нескольких десяткой сайтов, за такими проксями реальных людей очень мало. Через Метрику можете найти визитеров с этого прокси и увидеть, что на сайте они почти ничего не делали, или же их действия носили исключительно автоматизированный характер.
Прокси точно стоит забанить, если его клиенты одни мобильные устройства. Вот тут с 99% работа ботов.
Советую также обратить внимание на то, сколько трафика эти клиенты забрали с сайта. Если мало, то это вряд ли были люди.

С большой вероятность стоит банить IP разных хостинг провайдеров: Amazon, iHor, VPSville, Cloud Networks, WestHost и прочих игроков рынка, которые пачками продают IPv6 адреса. Если ваш сайт поддерживает IPv6, то в логах вы увидите уникальную картину, когда от таких провайдеров массово ломятся всякие мобильные устройства на ваш сайт. Блокировать этих провайдеров надо не по одному IP, а блокировать все их сетки с указанием CIDR в том же .htaccess (например, deny from 2a05:fb41::/32)

Замечу, что блокировать все подряд без анализа не стоит! Во-первых, ряд прокси относится к серьезным компаниям, которыми пользуются обычные пользователи. Во-вторых, имеет место быть тенденция поднятия своего прокси/vpn на хостинге. Так что IP будет от хостинга. И если клиентов с такого IP несколько устройств, то вряд ли стоит блокировать такой адрес. Другое дело, если через него ломится целый зоопарк устройств от старых iPod и Windows 7 машин до чего-то совсем экзотического типа Wii.

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

Вопрос: почему это дерьмо вообще появляется на вашем сайте? Как я уже сказал ранее, не всем нужен конкретно ваш сайт. Да, конечно, может кто-то из конкурентов пытается за счет ПФ завалить ваш сайт в поисковой выдаче. Но вроде как эта тему уже не так актуальна и для Яндекса, и для Гугла. Но вот тема с прокачкой ботов, получения ими хорошего «fingerprint» для них важна. Да и смежная тема скликивание рекламы актуальна, где боты должны доказывать проверяющим системам, что они типа люди. Так что если у вас есть сайт, то боты к вам придут. Особенно, если сайт попал в базу тех, кто отдает этим ботам адреса. Например, есть один такой сайт в России, у которого есть свое API, за счет которого он живет, и отдает ботам домены для посещения. Сайты каталогизированы по тематикам, так что бота можно натравливать и прокачивать прямо по тематическим ресурсам. Конечно, у себя вы тоже можете забанить по referrer таких «посетителей» (в логах увидите адрес api.pf….). Но только совсем тупые боты отдают ссылку на этот сервис.

Что происходит после блокировок.

Для сайта с нормальным органическим трафиком происходит увеличение количества просмотров и визитов. Так же растет метрика «время на сайте». Все остальное почти не меняется. Да, значение посещаемости тоже просядет, но очень несильно.

Борьба с паразитным трафиком на сайте Личный опыт, Сайт, Боты, Блокировка, Проект, Длиннопост

Как пример, четыре дня назад обновил фильтры у одного сайта. Виден только рост метрик, проседания посещаемости почти нет.

Замечу, что «Доля визитов роботами» почти не снизится (в среднем станет меньше примерно на 5%), не ждите здесь прорыва. На это есть несколько причин. Одна из них в том, что боты все равно вернутся с других адресов. Вы просто сейчас отфильтровали один пул, но скоро появится другой. Так что это постоянная работа. Еще одна причина – вы блокировали только самых простых. Самый жир не палится так просто. У них или хорошие прокси (например, от Мегафона), где нельзя заблокировать всего провайдера, т.к. точно под замес попадут реальные пользователи, или уже хороший уровень прокачки, при котором имеем сложные движения мыши, свои локальные прокси на не стандартных портах и прочее, прочее. И есть разумные сомнения: «А бот ли это?»

Для сайтов, у которых трафик только из «людей», придется увидеть реальную картину:

Борьба с паразитным трафиком на сайте Личный опыт, Сайт, Боты, Блокировка, Проект, Длиннопост

Ночью обновил на одном из проектов .htaccess со своим списком фильтров. Видно, что идет просадка по посещаемости.

Это может быть грустно. Особенно, если вы запустили проект не так давно и уже думали, что ваш проект набирает обороты. Но нет, не все так хорошо, как могло показаться.

Работать с логами лучше не менее раз в неделю-две. Актуализируйте IP адреса, список ботов и сайт будет бороться с разного рода паразитным трафиком.

Показать полностью 5

Наш паровоз вперед летит

В своем предыдущем посте я рассказал про проект, который сделал чтобы (в том числе) доказать самому себе, что могу что-то сделать с нуля и до конечного результата. Прошло 6 месяцев с начала запуска и решил подвести некоторые итоги. К тому же и год заканчивается – тоже повод.

Для ЛЛ: сделал сайт и рассказываю с какими проблема столкнулся, какие ошибки допустил, чего добился.

Как не старался написать кратко, но все ровно вышла «простыня». Видимо, нет у меня таланта излагать свои мысли кратко. Пардоньте.


Начну с проблем. Все же писать про позитив легко, а признавать ошибки бывает сложнее.

Проблемы

Как я рассказал ранее, я сильно упростил первоначальную идею и сделал почти классический «джоббоард» (оказывается, есть такой термин среди HR). Так вот, для тех, кто хочет создать подобный проект, знайте – это не лучшая идея. Пообщавшись с HR скажу, что это даже глупая идея в 2023 году. Если уж так хочется играться с вакансиями, то смотрите в сторону HR-агентства. Хотя и там полно своих подводных (и порой острых) камней. В джоббоард большая конкуренция и очень сложно отожрать хотя бы какой-то значимый кусок. Мой западный аналог имеет донора в виде мощной рассылки на десятки тысяч подписчиков. Наличие такого ресурса позволяет работодателю получить не только размещение на сайте, но еще и быть прорекламированным в профессиональном сообществе. За что, кстати, готов произвести оплату. У меня такого ресурса нет и на его построение уйдут годы, если вообще получится сделать нечто подобное.

Признаюсь, что был сильно удивлен тому факту, что буквально через пару дней на сайт полезли боты. Нет, я был готов к тому, что придут всякие поисковики, но вот они как раз и не пришли сразу. А налетели всякие сканеры, накрутчики и прочая мерзость. Через неделю доля паразитного трафика была примерно под 98%. Пришлось заниматься не свойственной для себя работой – «сисдаминством». Поставил и настроил fail2ban, прикрутил к нему несколько фильтров, допилил движок проекта под перманентные баны всех, кто запрашивает страницы, которых у меня нет и никогда не будет, но которые используются для взлома или аутентификации на сайте.
В целом, много кого победил, но искоренить зло полностью не получится. Есть море упертых ботов, которые лезут через прокси и пытаются что-то сделать.

Разочаровал Яндекс, который совсем не борется или хотя бы фильтрует роботов, которые работают на понижение поведенческих факторов. В Метрике куча левака, которое можно было бы отсеять. Уходить за Cloudflare не хочется. Тоже надо думать, что с этим делать (или не делать).

Пережил многодневную «атаку» со стороны какого-то левого скрипта, размещенного на Амазоновских серверах. Почему я был ему интересен до сих пор не понимаю. Паразит каждую минуту выкачивал весь сайт с разных ip или долбил его разными запросами. Это на DDOS не похоже, сервер нагрузку держал без проблем, но к чему была такая активность – не понял. Написал саппорту AWS, приложил логи, но там сказали, что ничего криминального не видят. На второй день снова им написал, что скрипт работает по расписанию, что выкачивает весь сайт и все это не нормально. Ответили вопросом, о том, что я хочу от них услышать? Попросил их проверить, что это за ерунда такая и вообще надо бы на кол посадить того, кто так делает. Обещали подумать и разобраться. Я же задолбался смотреть логи с IP от AWS и забанил все их сетки, которые нашел. Через несколько дней трафик от AWS исчез, а саппорт отписался, что поговорил со своим клиентом. На этом все закончилось.

Наш паровоз вперед летит Личный опыт, Веб-разработка, Онлайн-сервис, Javascript, Длиннопост

Запросы, которыми был забит почти весь лог-файл.

Идем далее, от нытья к реальным проблемам. Одна из них – нет полной автоматизации по поиску и размещению вакансий. На размещение/модераторство у меня уходит не более 30 минут в день. Тем не менее, я думаю над тем, чтобы тратить на это не более 5 минут в день. Добиться не просто, так как часто цепляю реально не интересные вакансии, в которых нет описания того, что будет делать кандидат или нет вообще информации о работодателе/проекте. Бывают дни, когда вообще нет ничего интересного и это проблема, которую я решил, но пока в ручном режиме и способа автоматизации пока не вижу.

Вообще, я думал, что проект будет интересен компаниям, т.к. они бесплатно смогут разместить свои вакансии, но они на проект не пришли. Хочется надеяться, что пока не пришли. Если придут, то это решит проблему, описанную чуть выше.
Повторю все же то, что написал выше: высокая конкуренция и определенная ниша – это не всегда способствует росту. Тот же hh будет интересен работодателю куда больше, чем мой специализированный проект пусть и с полностью целевой аудиторией. Пока компании не могут оценить потенциал моей аудитории и не готовы тратить на нее даже время, не говоря уже про деньги.

Отсюда получаем еще одну задачу: надо раскрутиться! Банальный совет, который лежит на поверхности и который так же банально требует денег. Я делал разные прикидки по бюджету, но в согласие с самим собой пока не пришел. Впереди 2-3 месяца стагнации на рынке труда из-за праздников. Так что пока активно в рекламу вкладываться не хочу. К тому же, я не маркетолог и слить первый бюджет это «как два пальца об асфальт». Много чего уже прочитал, посмотрел Ютуб (а где же еще учиться?) и пока раздираем сомнениями. У кого-то есть идеи на этот счет? Только условия как всегда самые лучшие: денег нет, а результат нужен =)

Ошибки

Когда делал дизайн первой страницы, то ориентировался больше на западный аналог. Проблема только в том, что ресурс у них уже раскрученный и они не нуждаются в некоторых вещах, которые нужны мне для нормальной индексации поисковиками или чтобы пользователи проходили в глубь сайта. Так что первую страницу я загубил, сам занизил ее роль для всех, кто приходит на сайт. Уже внес некоторые корректировки в дизайн, навигацию, но считаю это не достаточным. Здесь еще нужно хорошенько поработать.

Я не делал акцент на телеграм-канале. Считал его нечто дополнительным к сайту. По факту, посмотрел конкурентов из похожих тематик и у многих все наоборот: сайт – это дополнение к телеграм-каналу. Например, у больших тг-кагалов по нескольку постов в день, информация в таком потоке теряется. А на сайте легко найти какую-то статью, она же индексируется поисковиками, ее можно положить в закладки, ее же рекламируют в телеге. И при этом она же может быть и трафиком для тг-канала. Так что и здесь надо поработать. Правда нагрузка вырастает, т.к. вести тг-канал – это, как оказалось, тоже весьма затратное по времени дело. Меня пока спасает автоматизация, т.к. все вакансии с сайта автоматом идут в телегу.

Наш паровоз вперед летит Личный опыт, Веб-разработка, Онлайн-сервис, Javascript, Длиннопост

Скромные результаты телеграм-канала.

Далее напишу важную, как мне кажется, вещь. Она тоже на поверхности и описана во многих книгах в том или ином виде. Я ее озвучу так, как это получилось со мной. И я считаю, что ошибка мне сейчас обходится дороже всего.
Напомню, что проект мы хотели сделать вчетвером: менеджер и три программиста (фронт и два быка бэка). Менеджер не только принес идею, но еще имел знания по раскрутке проектов, их продвижении. Да и язык у него подвешен правильно. Если надо, то мог уговорить сделать что-то нужное, а может и про инвестиции что-то в голове имел, мог что-то придумать и на этот счет. Фронт мог колдовать не только с кодом, но и с SEO. Ну, а остальные два мушкетера могли и с основным кодом шаманить, и немного в админство поиграть. Что в итоге: проект сделал один человек, который не может сразу заменить всех четверых. Я, конечно, мудак молодец, что сделал проект в одиночку. А как теперь его тянуть одному? Осознание этого приносит понимание того, что проект будет долгим. Просто потому, что ты один впахиваешь за четверых. Поиграть в Д'артаньяна, конечно, получилось. Но без команды все куда сложнее. И моя ошибка в том, что не поговорил хотя бы еще с одним из членом нашей могучей кучки и не предложил ему присоединиться, когда заканчивал проект. Так что вывод: если хотите сделать проект, то не старайтесь все делать в одиночку. В книжках пишут про то, что должно быть минимум 3 человека в команде с разными компетенциями и я с этим сейчас (потирая шишку на лбу) полностью согласен. Да, я делал проект чтобы доказать одно. Но по факту шагнул немного дальше и теперь имею все шансы заработать «орден сутулого».
А знаете, что еще плохо в работе одного человека? Тебе не с кем обсудить идею! Второе или третье мнение могут как-то трансформировать идею или вовсе ее отбросить. Иначе ты что-то придумываешь себе, веришь в это, убеждаешь себя в этом, тратишь силы на реализацию, а по факту это все никому не нужно. Некому тебя оставить, одернуть или наоборот - предложить что-то такое, о чем ты сам не думаешь.

Так же сейчас задаюсь вопросом про окупаемость проекта. Раньше думал, что надо просто сделать сайт. Теперь же хочется добиться самоокупаемости. Звучит как очередной вызов, получение некой ачивки. Это не очень больше деньги, так как основные траты — это оплата хостинга. Свою работу пока не считаю. Пожалуй, размещение рекламы спасло бы ситуацию, но трафика не хватает, чтобы получить прописку на приличной площадке для контекстной рекламы. А продавать всякие «казино» совсем не хочется.

Позитив

То, что есть позитив – это основное, что позволяет не бросить это все в корзину.

Главное - проект работает. И даже есть свои достижения. Например, аудитория телеграм-канала выросла в 3 раза! Согласитесь, звучит солидно. Есть только одно маленькое «но»: (Гусары! Не ржать!) рост составил с двух человек до шести =) Прямо так и вижу слайд какой-нибудь мощной презентации с графиком о трех кратном росте и маленькой подписью внизу о реальных цифрах. Все как в рекламных проспектах.

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

Из последних крупных обновлений в этом году – раздел с тестами по HTML, CSS, JavaScript и фреймворкам. Еще нужно поработать над несколькими вопросами, возможно, что-то добавить или заменить. Но в целом считаю, что раздел получился. Вопросов достаточно, чтобы они не повторялись, а ответы не идут по порядку. Так что можно проходить тест несколько раз подряд. База вопросов может без проблем дополняться или изменяться. У вопросов есть уровень сложности, но я пока это выключил. Надо над сложными вопросами подольше поработать, чтобы они больше соответствовали уровню знаний сильного кандидата.
Из минусов, пожалуй, то, что не показываю правильных ответов. Решил сейчас этого не делать. Бонусом добавил две мульки, которые не видел у других: во-первых, я считаю время, которое потратил человек на тест, а во-вторых, если тестируемый уходит с активной вкладки браузера, то я это фиксирую и в конце теста выдаю ему сообщение. Это все мелочи, но лучше с ними, чем без них.

От проекта получил отклик, который вообще не предполагал. Дело в том, что с текущим местом работы прощаюсь. Это никак не связано с описываемым сайтом. Просто пришло время двигаться дальше (и глубже, ага). И вот один из коллег узнал о моих планах и посоветовал меня знакомым, которые ищут разработчика. Договорились просто устроить разговор между технарями (мной и их тимлидом), а если все срастется, то уже еще раз встретится и сделать все, как полагается. В подробности разговора вдаваться не буду, тут ничего интересного кроме того, что спросили (а кого из нас не спрашивали), что ты делал ранее и можешь ли ты показать свой код. Не будь у меня этой джобборды, я бы показать ничего не мог. Просто потому, что последние годы работы — это все то, что не видят простые люди (т.е. внутренние разработки компании). А код так вообще под всякими NDA и за закрытыми Git’ами живет. Так что показал то, что сделал. Дал доступ к своему гиту, показал код. Тимлид по нему побегал, задавал вопросы по типу «почему здесь так, а не иначе?». После просмотра проекта даже других вопросов не было. Тем более, что ответы мои были не только с позиции разработчика, но и менеджера, сисадмина. Возможно, что ничего в этом такого нет. И обычный фулл-стак разраб легко ответит на все вопросы и по фронту, и по бэку. Но все же мне хочется верить, что мои знания не так безнадежны, как я думал о них ранее. Это интервью несколько подняло (в очередной раз) мою самооценку. В любом случае, очень приятно рассказывать о том, что ты сделал сам и это оценивают те, кто тебя слушают. Жаль только мы по зарплате не договорились: предложили меньше, чем я зарабатываю сейчас. Рынок уже как-то остывает к большим з/п программистам, если смотреть вакансии на сайтах.

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

Хочу сказать огромное спасибо всем пикабушникам, которые перешли по ссылке на сайт из прошлого поста (вас было 64 человека), и кто написал комментарии с советами. Первые показали мне ошибки в навигации сайта и прочее, о чем я писал выше. Вторые дали дельные советы и я к ним прислушался. Мерси вам всем от (так по тексту получилось) Д’артаньяна и его проекта!

P.S. мой единственный (первый) подписчик, кто бы ты ни был, тебе отдельная благодарность просто за то, что ты есть =)

Показать полностью 2

Паровозик, который смог

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

Собственно, а о чем история? Да все банально: о том, как создаются некоторые интернет-проекты.

В один солнечный летний день в нашу комнатушку, где сидит несколько программистов, пришел молодой менеджер проектов и позвал некоторых из нас в другое помещение, дабы поведать что-то очень важное. На повестке дня оказался очередной «мега-проект», который менеджер подсмотрел у забугорного коллеги и чьей идей он проникся (хотя программисты сами ему ссылку когда-то сбросили). Но, как и большинство менеджеров, программировать он не умеет, а поэтому кто-то за бесплатно должен воплотить его гениальный план за мзду малую, когда деньги польются рекой. Поэтому отобрал он троих помощников: меня, как самого надежного (он сам так решил), и еще двух ребят помоложе, которые «бьют копытом» и ждут интересных идей.

Был представлен план на пяти листах, как и что будет выглядеть, когда проект будет готов. Функционал расписан просто, без лишних деталей, но он хотя бы как-то обозначен. Даже проблемы смог озвучить: например, как бесплатно получить красивый дизайн. И как первую монетизацию проекта сделать тоже не имели понятия. Признаюсь, идея не воодушевила меня. Такого на просторах интернета океан в том или ином виде. Мы постоянно что-то изобретаем старое и считаем это новым. Что-то становится автоматизированным и поэтому кажется инновационным, а что-то просто приобретает новую форму и поэтому кажется уникальным. Но не суть. Меня, старого, идея не сильно привлекла, но и роль моя в проекте была не столь большой: просто держать коллег в тонусе, помогать решать какие-то проблемы. На такое я был согласен. Тем более, я же мог ошибаться: проект окажется интересным, возьмет и выстрелит. Вдруг и копейку какую-то принесет.

Молодые же загорелись сразу. Назвали 5 страниц крутым словом «стартап» и принялись рассуждать, что да как можно сделать. В их словах было и рациональное зерно: стек выбрали, основные проблемы сформировали, с чего начинать делать тоже стало понятно. А раз направление задано, то берем лопату в руки и копаем: вот отсюда и до больших денег, ага. Все же опыт у нас всех какой-то есть, не новички в своем деле, поэтому быстренько подняли тестовый сервер, запушили в git первый коммит и сотворили прочие безобразия.

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

Во второй раз собрание акционеров утвердило еще несколько крутых и важных фишек на проект. Они, безусловно, должны были сделать проект еще круче. Проблема только в том, что мы тогда еще даже основной функционал толком не реализовали. Работа над «стартапом» велась в свободное от работы время, по вечерам и ночам, и не всегда все успевали делать свою часть работы. Так что отставание от графика пошли уже недели через две.
Потом та самая первая фишка, которую предложил один из программистов, была реализована не совсем так, как планировалось. А главное то, что работала она так себе, а еще и в основной код влезла, что заставляло ее дергать даже тогда, когда она не нужна. Тут уж мне пришлось сказать свое несогласие с таким подходом и было произнесено страшное слово – «переделывай».

Поскольку все мы сели в одну лодку, то бросать товарища с его проблемой не стали. Помощь коллеге была оказана и с переделыванием, и с реализацией других вещей, но на третьем парт.собрании огонь в глазах коллег поугас. Мы потратили время на создание и переделку, а «новые классные фичи» еще маячили где-то там на горизонте. Тем более, что бэклог ломился от предложений и идей. Менеджер же ждал то, что «можно пощупать руками», т.е. дизайн. А какие из программистов дизайнеры? Думаю, что многие про этот момент в курсе. Так что было предложено нам немного отвлечься от кода и сосредоточиться на том, чтобы как-то решить вопрос. Например, поискать кого-то из окружения, кто готов бесплатно нарисовать, сверстать, натянуть на шаблоны и вообще сделать все красиво. Всем известно, что таких людей очень много, они прямо в очереди стоят (сарказм). Так что история с дизайном была грустной, я предлагал не суетится, просто взять обычный шаблон по тематике сайта и переделать его под наш проект. Как по мне, идея не плохая и в чем-то даже очень стандартная. Только нужно и к этому делу подходить с умом. Мы же немного увлеклись, таская понравившееся блоки с разных сайтов. Поэтому по итогу получили историю с пиджаком, к которому нет претензий по пуговицам, рукавам, карманам, но сам такой пиджак носить не станешь. Дизайн у сайта был довольно ужасный даже по меркам программистов. Предложил было просто скопировать просто изначальный сайт, но не был услышан: мы должны быть оригинальны и не повторимы.

Примерно где-то в этот момент один из программистов сказал, что все это интересно, но мы уже второй месяц делаем простой проект и поэтому он больше в нем не заинтересован. Деньги с неба не полились, работы стало больше, свободного времени меньше, а пиво и женщина требуют внимания. Я не пророк, но для меня это было весьма ожидаемо. Ровно как и то, что весь придуманный, но еще не сделанный функционал придется поделить на двоих. А значит и сроки запуска ползут дальше, и работы больше, и команда проекта (замечу) меньше.
Менеджер еще раз попробовал скорректировать идею, даже согласился от чего-то отказать, но за идеальный и неповторимый дизайн стоял на смерть: «Должны мы все сделать сами и красиво!» Кто именно это должен был сделать он не уточнял.

Дела шли не быстро, часть функционала была создана, оставалось еще что-то докрутить, там добавить проверок и еще кое-что кое-где довести до ума. Но тут и второй программист дал слабину: проект уже не интересный, делаем долго, денег нет и продать мы ничего не сможем. Почти все тоже самое, что и у первого нашего коллеги, только другими словами без пива и женщины. На последнем (не крайнем, нет) собрании было озвучено, что все это фигня и сделать мы это не сможем. Еще в разговор были добавлены личные претензии, что повысило градус межличностного отношения друг к другу. На один из таких выпадов мне пришлось ответить, что такой проект вообще можно сделать одному, надо только уменьшить аппетиты, не делить деньги, которых нет, и не заниматься придумыванием фич каждую неделю. За эти слова я получил команду единомышленников, т.е. борцов против меня, и конечно же уколы типа «ну вот сделай сам» и все такое. Разговор перешел в стадию, когда оппоненты друг друга уже не хотят слышать и в целом остаются только эмоции. Так что я просто сказал, что возьму и сделаю.

Часто на этом история подобных «стартапов» заканчивается. Потому что все разочарованы и все это полная ерунда, никому не нужная. Признаюсь, что раньше тоже бросал такие вот вызовы себе и не вытягивал проект. Но сейчас внутри проснулся злобный хомяк, который сказал, что перчатка брошена, вызов принят и внутри меня живет опасный зверь, готовый стать акулой бизнеса. Так что я был замотивирован (на самом деле не очень) сделать все в одно лицо.

Заметьте, я нигде не говорил, о чем проект. Собственно, это не важно, так как подобных историй миллион, если не больше. Просто заканчиваются они по-разному: иногда ничем, порой потерей денег, больших или даже очень больших. Нам повезло, что кроме перехода на личности и натянутых отношений мы ничего не потеряли. Да, есть еще время, но опыт за деньги не купишь, так?

Какие могут быть выводы. Начинайте с малого, запустите основную идею в работу, а обрасти фишками успеете. Концентрируйтесь на главном: если придумали функционал, то плохой дизайн потом поправите. Верьте в тех, с кем работаете. Не вывозите, устали? Отдохните, но не уходите из проекта. Хорошая команда способна многое сделать и даже продавая свой проект некоторые захотят купить именно вас как команду, а не код.

А что до проекта, то я его сделал. Конечно, не таким, каким его видел менеджер и без многих идей коллег-программистов. Но я решил подойти к проекту по-своему. Так сказать, написал свой устав и пошел с ним в свой монастырь. Во-первых, я сделал базовый функционал, который дает возможность проводить основные действия с записями. Прикрутил регистрацию, сделал права и роли, так как это один из основных кирпичиков, позволяющих и разные доступы делать, и монетизацию прикрутить для отдельных граждан. Во-вторых, подсмотрел у аналогичных проектов некоторые небольшие фишки и реализовал их. Исходил не столько от сложности задач, сколько от затраченного времени. Здесь же упомяну то, что есть автопост в телегу. Поэтому есть альтернатива сайту: не хочешь каждый день ходить на сайт – подпишись на канал. У оригинала большой лист рассылки. Мне такое пока не светит. В-третьих, залез на поляну менеджера и изучил какие штуки интересны пользователям, некоторые ранее созданные убрал, а что-то все же добавил. Вот с RSS лентой так и не понял, что делать: надо ли это кому-то или нет?  Да и вообще, тема проекта хоть и родственная мне, но все же не мой стек. И, конечно, пришлось повозиться с дизайном. Он не уникальный в визуальном плане, но весьма симпатичный (конечно же, на мой вкус), к тому же лаконичный и, надеюсь, функциональный.

Если дочитали о конца и хочется посмотреть, что же это такое мы делали, то вот мой результат – jsjob.ru. Идея была сделать про другой стек технологий, но домен умный менеджер зарегистрировал ранее и отказался отдавать/продавать. Так что я взял тот, что был свободный. Оригинальный англоязычный ресурс публиковать не буду, но те, кто крутится в мире разработки сайтов, могут увидеть что-то знакомое. И пусть у оригинала больше посещаемость и куда круче база подписчиков, «мой маленький плот» только спущен на реку. Если развалится, то не страшно. Я все равно сделал важную для себя вещь – сдержал обещание данное себе. Коллеги вынуждены были признать, что это хоть и не совсем то (ага, я хх.ру в одни лицо не собирался переписывать, как некоторые из них думали), что ожидали они увидеть в своих мечтах, но это более чем рабочий проект с баром и шлюхами от дизайна до автодеплоя.

Показать полностью
Отличная работа, все прочитано!