В этом посте хочу поделиться с вами опытом разработки одного большого проекта. В ходе его создания навсегда удалилось 100 000 пользователей, которых пришлось восстанавливать.



Для молодых разработчиков это будет история, которая позволит не совершить моих ошибок в будущем, а более опытные чуваки смогут просто посмеяться и прокомментировать, что они никогда в жизни не допустили бы такой ситуации).

История началась в апреле 2015 года. В начале все было стандарту. Заказчик (я умышленно не буду говорить имен и названия компании) написал в вконтакте, спросил че по чем, скинул примерное тз, встретились, поговорили, понравились друг другу, решили делать.

Идея проекта следующая:

Есть компании, которые публикуют на сайте скидки от себя. Ну, например, кеды с скидкой в 20%. Пользователи покупают месячный абонемент и могут пользоваться скидками всех представленных компаний.

Так же, на сайте есть партнерская система, которая позволяет приглашать людей. Если приглашенный тобою человек оплачивал абонемент, то тебе идет процент. Логика прохода процентов довольно сложная, но заказчик объяснил следующим образом: «Ну там ничего сложного, только небольшие формулы прописать».

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

Стоит уточнить, что я до этого подобных проектов не делал и для меня это было что-то новое и неизведанное. Поэтому я изначально не понимал сколько объективно придется это делать. Учитывая, что дизайн уже был нарисован, надо было только сверстать и поставить на back-end, я запросил 65т.р. и 2 месяца работы. Обе последние цифры оказались фатальными. Мало было и денег и времени) Надо было брать больше. Но… отсутствие опыта есть отсутствие опыта…

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

В итоге, по закону жанра, пока я транжирил предоплату, работа не шла и началась только через месяц) Поэтому был введен ночно-дневной режим работы и за три недели я сделал все, что требуется, кроме логики партнерской сети. Сдавать надо было 1 июня и как раз где-то в 20-х числах я взялся за ее реализацию.

За неделю было написано все точно по ТЗ. Но не тут то было… при встрече и тестировании оказалось, что они мне многого не рассказали! И есть еще много нюансов в логике, которые надо сделать… Ну, думаю, ладно… сделаем. А дедлайн, тем временем, уже летел в тартарары.

Короче… так прошел месяц.

Весь июнь мы правили и доделывали это чертову логику. То деньги не туда уходят, то приглашенный человек становится не под того человека… это была жесть. Сейчас я послал бы их куда подальше и попросил доплаты… но тогда я был моложе, сопливее и не мог позволить себе такой роскоши.

В конце месяца я был выжат как лимон. Мне не хотелось жить… мне надо было отдохнуть. Я сказал заказчику, что все… надо паузу. И свалил на две недели загород.

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

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

Спустя какое-то время они перестали меня искать и звонить) Подумал, что все нормально. Может, нашли другого разработчика, может еще что-то. Но меня больше никто не тревожил. Рай.

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

За время затишья я устроился работать в веб-студию. В начале августа мне начали снова звонить, а я начал снова не отвечать. В итоге заказчик сам лично приехал ко мне на работу) Попросил просто закончить то, что было начато и разойтись. Формат такой: он пишет что надо доделать, я делаю и happy end.

Так же, мы встретились с самым главным в проекте мужиком, который обозначил факт того, что по договору у меня за каждый день просрочки идет процент. В общем счете, я плюсом должен был заплатить еще 180 т.р… Но они были готовы добродушно все простить, если я до осени сделаю все правки и запущу проект, иначе суд. Думаю понятно, что выбора у меня не особо было много.

В конце августа произошел запуск. Прошел он со скрипом. Оказалось, что в коде промелькнуло несколько ошибок, которые несколько десятков тысяч рублей отправили не тем людям…

Тут нужно сделать уточнение. Проект уже существовал и в нем было зарегистрировано 100 000 человек (на самом деле 110 тысяч, но я округлил). Ежедневно на сайт заходило около тысячи. Несколько сотен человек в день проводили транзакции. И вот эти несколько сотен человек оказались весьма недовольными(((

Ну бывает. Что делать… Уведомили на сайте, что можно по этой проблеме можно писать мне в вк. Я руками делал переводы и параллельно понимал где ошибки в коде. Ежедневно у меня висело около сотни непрочитанных сообщений. В течение месяца я просыпался в 7 утра, обрабатывал обращения пользователей, шел на работу, вечером опять обрабатывал заявки.

В целом, люди отнеслись к ситуации с пониманием, поэтому не очень гладко, но ситуацию вырулили. Постепенно ошибок все было меньше и сайт начинал работать как надо.

Но, как говорится, беда не приходит одна!

Как-то вечером в офисе после работы, решил подпилить сайт. Захожу, а он лежит! mysql отвалился. До этого mysql иногда падал, когда сервак не справлялся с нагрузкой и я просто его перезагружал. Но тут был другой случай. Он даже не запускался… весь вечер я просидел на форумах. Тогда я уверовал в Тoster! Какой-то парень просто весь вечер отвечал на мои сообщения и помогал найти ошибку! Я был удивлен, что кто-то безвозмездно может помогать совершенно незнакомому человеку.

Плюс у меня не было тогда особо опыта работы с серверами, поэтому было сложно. Я только знал, что есть терминал и туда команды можно вводить. Я гуглил, искал какую команду можно ввести, вводил и получал результат.

В итоге, я пришел к выводу, что база потеряна… нету… Тогда я узнал, что есть файл ibdata и если он пустой, то значит все данные потеряны. Как вы понимаете, он был пустой. Полностью. 0кб.

А мы с девушкой в этот вечер пошли на Stand-up, наши знакомые ребята выступали. Я не досидел до конца и попросил поехать домой. Именно там, в зале, до меня дошла мысль, что я каким-то образом потерял 100 000 пользователей. Нет ни одного бэкапа. Нет ни одной надежды на восстановление. Что делать? Звонить и говорить, что жопа пацаны, я посеял труд несколько лет вашей работы.

После звонка и разъяснения ситуации был собран консилиум. В 12 ночи. Что делать?
Я впаривал историю о том, что на сервере кончилось место (так и было на самом деле) и поэтому mysql тормознулся. На самом деле, я до последнего был уверен в том, что это так. Так, что, типа, моей вины тут нет.

Думали-думали и решили идти спать и на след. день разбираться, что можно сделать и что на самом деле произошло.

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

Заказчики попросили помощи у веб-студии, в которой программист посмотрел историю команд в терминале и знаете что нашел? Команду, которая стирает файл ibdata! Видимо на форумах кто-то прикольнулся, что надо вводить эту команду если mysql падает, а я в панике не прочитал между строк и ввел эту команду.

Ну, думаю, все. Конец мне. Но заказчики осознавали, что проблему решать надо и если «убьют» меня, то доделывать будет некому. К невеликому счастью, нашелся бэкап старого сайта на котором было 80 000 человек. Класс. Теперь остается восстановить 30 000 человек) Начался новый этап сообщений в вк, восстановлений и паник.

Спасибо моей девушке, которая меня поддержала. Спасибо ей за то, что она вообще меня не бросила) Ибо со мной общаться было тогда не возможно, так как каждый вечер я ныл о том, что мне тяжело и я уже не знаю что мне делать… не люблю ноющих людей. И себя я тогда тоже не любил.

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

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

Между прочим, они мне не доплатили 10 тысяч. Но мне как-то стыдно было их потом просить… поэтому проект обошелся в 50 тысяч рублей и 6 месяцев страданий. После того, как все кончилось я подумал про себя: «Зато опыт огромный получил». И правда… этот проект меня научил очень многому. И будет не правильно, если я не поделюсь им:

1) Внимательно читайте ТЗ и договоры

По факту, веся туса-джуса началась из-за того, что я легкомысленно отнесся к ТЗ. Если бы я внимательнее вчитался в него, понял, что этап с логикой прописан далеко не полно и его надо дописывать, то сроки бы сдвинулись и мы спокойно завершили проект.

Обязательно надо читать договоры, которые подписываете. А еще их обязательно надо составлять!

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

2) Оценивайте проект в плане денег.

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

3) Проговаривайте пути отхода

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

Проговаривайте с заказчиками этот момент на берегу. На переправе коней не меняют.
Сейчас, когда заказчики спрашивают сколько уйдет на проект, говорю минимум и максимум. Например: «Проект реально сделать за 2 недели, но, объективно говоря, мы будем его делать месяц. С учетом правок, дополнений и так далее. ».

4) Делайте бэкапы

Делайте бэкапы, мать их! Делайте! Обязательно делайте!

У меня сейчас бэкапятся на жесткий диск два моих рабочих компьютера. Сервер делал бэкапы каждый день, но после одной ситуации я сделал, чтобы они создавались каждый час и каждый день. В двух словах, не уследил и кончилось место на жестком и mysql сломался (ситуация как в этом проекте), но у меня был бэкапчик и в целом он меня спас).

После этого случая я подумал… А что если на самом деле реально mysql сломался из-за малого места на жестком, но я удалил ibdata и потом было уже ничего не доказать? Если это так, то как-то обидненько даже…

5) Смотрите, что вводите в терминал

Смотрите какие команды, куда и зачем вводите!!! Я теперь если команду не знаю, то гуглю ее прежде чем ввести в терминал).

6) Разграничивайте ответственность

На самом деле ситуация с сервером случилась из-за того, что я полез не в свою вотчину. Если ты делаешь сайт, то делай сайт, а за сервер пусть отвечают те, кто умеют за него отвечать. После этого балагурства они наняли сис-админа, который после рулил серваком).

7) Не нойте

В любой не понятной ситуации не нойте! Ноющие люди кажутся убогими. Можно «поплакаться». Если тяжело, подойдите к близкому человеку, попросите выслушать и вылейте все, что накипело. Но не нойте каждый вечер как вам плохо и тяжело.

Время от времени встречаю людей, которые постоянно ноют. Их невозможно терпеть. С некоторыми я перестал общаться даже из-за этого.

8) Берите ответственность за свои косяки

Накосячил — лови люлей. Если что-то пошло не так, то позвоните заказчику и объясните ситуацию как есть. Они тоже люди и поймут, войдут в ваше положение и даже помогут решить проблему. Не пропадайте) Хуже будет только вам.

Это относится не только к сайтам, на самом деле, но и к жизни.

9) Мы получаем кайф от форсмажоров

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

Подумайте об этом, если постоянно срываете дедлайны.

10) Не беритесь за сомнительные проекты

Фильтруйте ваши заказы. Этот проект изначально был сомнительным. Но мне нужны были деньги и опыт. Сейчас я 70% заказов отсеиваю и говорю что не хочу их делать, просто они мне реально не интересны. Другой вопрос, что я могу себе это сейчас позволить, тогда не мог)

С другой стороны, я взялся за этот проект и получил довольно приличный опыт. Поэтому черт его знает. Наверное, все-таки, беритесь за сомнительные проекты — это опыт. Но только один раз…

11) Вера в Toster

Я поверил в Toster. Я реально был удивлен, когда понял, что люди просто отвечают другим людям просто так. Это был для меня потрясный разрыв шаблона. Теперь я постоянно там задаю свои вопросики и меня постоянно выручают. А по мере возможности, отвечаю другим.

Недавно была даже ситуация, когда я гуглил вопрос, в поиске появилась ссылка на тостер, а там я задаю такой же вопрос и сам же на него в комментарии ответил. Я замкнулся.

Завершение

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

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

Спасибо за прочтение! Надеюсь, было интересно.

Комментарии (49)


  1. Sarymian
    05.10.2017 09:14
    +1

    В ходе его создания навсегда удалилось 100 000 пользователей, которых пришлось восстанавливать.


    Уже после «этого» расхотелось читать статью…
    Как так, при создании у Вас УЖЕ 100 тыс. пользователей?! Что О_о
    Вы понимаете, что такое «навсегда удалилось»???
    Так почему, Вы сразу же пишите «пришлось восстанавливать», т.е. они понарошку «навсегда удалились»?
    Одно предложение — и мозг сломан. А так же понят стиль повествования.


    1. Mirkom63 Автор
      05.10.2017 09:17
      +2

      1) Дальше написано, что уже был сайт, который необходимо было улучшить. На нем как раз и было 100 000 пользователей, которых было необходимо перенести.
      2) Я понимаю, что такое «навсегда удалилось»
      3) Если бы не удалились, то не пришлось бы восстанавливать.
      4) Если стиль не нравится, то можете не читать))) Я пока еще учусь писать и поэтому, может быть, не очень красиво или правильно формулирую предложения. И это, мне кажется, нормально. Если укажите на ошибки и скажите почему не правильно и как надо правильно, то буду благодарен.


      1. Sarymian
        05.10.2017 09:52
        +2

        В этом посте хочу поделиться с вами опытом разработки одного большого проекта. В ходе его создания навсегда удалилось 100 000 пользователей, которых пришлось восстанавливать.

        Пишите «хочу поделиться» опытом разработки (подразумевается нулевая готовность проекта), далее «в ходе его СОЗДАНИЯ» — создание (созидание) это творениче, чего-то чего не было ранее. А раз Вы использовали уже существующий проект, то лаконичней было бы написать:
        В этом посте хочу поделиться с вами опытом участия в одном большом проекте. В ходе его разработки (модернизации) удалилось 100 000 пользователей, которых пришлось восстанавливать.

        Не надо людей вводить в заблуждение. Тех. ресурс, люди с техническим восприятием — т.е. точные факты приоритетней, «красивым словам».


    1. bustEXZ
      05.10.2017 09:18

      Не было бэкапа, данные были лишь старые с 80к пользователей. Те 20к безвозвратно удалились + данные о 80к могли быть устаревшими.
      Статья достаточно интересно описана, с выделением основных проблем, которые встречают новички.


      1. Mirkom63 Автор
        05.10.2017 09:19

        Да, по пользователям все верно!

        Спасибо за комплимент)


  1. AVX
    05.10.2017 10:02
    +7

    Честно, я бы Вас прибил на месте заказчика. А потом засудил. За такие ошибки надо расплачиваться.
    В целом, статья — одно нытьё, хотя сами же утверждаете:

    8) Не нойте

    Что полезного из статьи я почерпнул? Да ничего нового. Выкладки КО. Надо бэкапиться, жизнь сложна, иногда надо думать головой (особенно когда что-то подписываешь). И да, бэкапиться надо не забыть.

    Не увидел, как конкретно были восстановлены 30к пользователей? С каждым переписывались? Логи какие-то обрабатывали? Или что-то ещё?

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


    1. maxlazar
      05.10.2017 15:23
      +2

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

      Так что ошибки с двух сторон — как со стороны разработчика взявшись за контракт без четкого ТЗ и описания зон ответственности, так и со стороны заказчика захотевшим за копейки получить full stack.


      1. AVX
        05.10.2017 21:04

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

        а дальше:
        В общем, так как на я обум подписал, что каждый день просрочки выливается в копеечку, мне это обернулось вышеописанной ситуацией

        Выходит, договор был, в письменном виде, где заказчик подстраховался как-никак.

        То, что ошибки с двух сторон — согласен, изначально в комментарии хотел и это написать, но пришлось бы расписывать что именно, стало лень, и я передумал :)
        У Вас более кратко и ясно (нежели я бы описал):
        Так что ошибки с двух сторон — как со стороны разработчика взявшись за контракт без четкого ТЗ и описания зон ответственности, так и со стороны заказчика захотевшим за копейки получить full stack.


  1. ni-co
    05.10.2017 10:11
    +4

    1001 первая статья о том, что нужно делать бэкапы.


    1. uploadfor
      08.10.2017 08:16

      Это знаменитый цикл заметок смельчаков о себе любимых, настырно не желающих учиться на чужих ошибках, собственной ленью создающих себе проблемы, после чего героически их преодолевающих. Очевидно, руководствуются принципом «страна должна знать своих героев» — иной причины, доступно объясняющей их бесконечные публикации своих факапов, увы, найти не могу…


  1. gritaro
    05.10.2017 10:11

    Спасибо, напомнили как удалил продукты на продакшене. Благо был бэкап, о чём я, вобщем-то, не знал.
    Ощущения непередаваемые! :)


  1. Evengard
    05.10.2017 10:17
    +2

    Статья-исповедь — вот как подобного рода статьи называются.


  1. spendlively
    05.10.2017 10:50
    +3

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

    Рано или поздно наступите на те же грабли. Проверено.


    1. topwebmaster
      05.10.2017 12:27
      +1

      Согласен на все 100%, был друг, знали друг друга с детства. Делал ему e-commerce проект, за 2 месяца, а в это время бизнес их развалился, он сказал сайт не нужен платить не будет и всё исчез.
      Поэтому договор и ТЗ на бумаге!


  1. Dreyk
    05.10.2017 11:16
    +6

    че вы гнобите человека? если для вас это советы КО — это не означает, что нет людей, которым это будет полезно. Статья не только о том, что надо делать бекапы: тут указаны практически все факапы новичка-программиста, прям в одной статье почти все. Помню, как я первые проекты делал, так хорошо, что некоторые из них умерли на этапе планирования (со стороны заказчика), а иначе было бы у меня то же самое


    1. Akdmeh
      05.10.2017 12:48
      +2

      Просто стилистика письма довольно слабая по сравнению с другими статьями на хабре.
      Элементарно не вычитано, ошибки, несогласованность, «вода» в тексте…
      Так-то описывается интересный опыт, вопрос только в том, как это подано


  1. DmOsinkin
    05.10.2017 12:27

    Поучительно. Советы некоторые очевидные, но как новичок кое-что всё же взял на заметку)


  1. dravor
    05.10.2017 12:27
    +2

    Очень интересный заказчик и его описание полностью осталось «за кадром»: сайт, 80к аккаунтов которые ПЕРЕВОДЯТ ДЕНЬГИ, доработку которого дали одному неизвестному и непроверенному фрилансеру и потом без бекапов (у них даже своего сисадмина нет) и тестирования движка денежных переводов выкатили в продакшн (!!!).


    1. Evengard
      05.10.2017 12:46

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


      1. dravor
        05.10.2017 12:56

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


        1. Evengard
          05.10.2017 13:21

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


          1. runapa
            05.10.2017 15:17

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


            1. dravor
              05.10.2017 20:36

              У меня впечатление, что там больше, чем один небольшой город.
              Сайт был уже раскручен, после заказа прошло шесть месяцев и пирамида не просто не развалилась, а ждать стало уже не вмоготу и фрилансера вычислили и заставили срочно сделать «чик-чик и в продакшн». Может эти сто тысяч аккаунтов были сродни брошенным ящикам у мэил ру?


  1. lenvladislv
    05.10.2017 12:43
    +1

    Парень все время пишет, что заказчик такой-сякой, искал его, логика не та, проект плохой и адовый. Так всегда бывает. Но по факту — просто история о том как парень по своей же глупости наделал косяков.


  1. ekadesign
    05.10.2017 12:43

    ха-ха. Всего пол года. Я делал похожую хрень (автоматы по продаже воды) и ковырял ее год вместо месяца, да еще и плюса пришлось учить… Но автору мое искреннее сочувствие


  1. Eldhenn
    05.10.2017 12:44

    Про бекапы и интересную модель управления разработкой уже всё сказали. Я хочу указать только на один маленький момент. Когда «при встрече и тестировании оказалось, что они мне многого не рассказали! И есть еще много нюансов в логике, которые надо сделать» — всё, это расширение требований. Сумма умножается на десять, сроки умножаются на пять. Согласны? Продолжаем разговор.


  1. layne
    05.10.2017 12:48

    30 тысяч пользователей вручную восстановили? Интересненько.


    1. Mirkom63 Автор
      05.10.2017 12:50

      Там по факту обратились для восстановления несколько тысяч человек, но так как за каждым человеком нужно было выстроить структуру еще в несколько человек, то получалось больше.

      По факту, конечно, не 30.000 было. Из них не все активно пользовались сайтов и требовали восстановления. Точное количество не припомню, но их было очень много)


  1. Akdmeh
    05.10.2017 12:49

    Как восстановили остальные 30 тысяч пользователей? Самый интересный момент упустили же!


    1. Mirkom63 Автор
      05.10.2017 12:51

      Так же как и при первом косяке. Люди писали, я восстанавливал данные тому, кто обратился.


      1. Protos
        05.10.2017 15:00

        Наугад верили их словам?


        1. Mirkom63 Автор
          05.10.2017 21:55
          +1

          Приходилось)


  1. evnuh
    05.10.2017 13:22
    +3

    Статья высосана из пальца ради ссылки на ваш сайт с обучением, не так ли?


    1. alexey-m-ukolov
      05.10.2017 14:47
      +1

      Тостер — это так здорово, там так много добрых людей! Вот вам ссылка на мой пустой сайт, который дублирует Тостер, но при этом на нём никого нет, чтобы отвечать на вопросы.


      1. evnuh
        05.10.2017 16:19

        Пошли скорее записываться в модеры)


  1. mordaha
    05.10.2017 13:32
    +4

    Самое печальное, что автор уверен, что он чему-то там научился и уверен настолько, что даже пытается учить других)


  1. andreymal
    05.10.2017 16:19
    +1

    Блин, это с таким-то зашкаливающим незнанием основ человеку доверили денежные транзакции, что ли? Мне бы такую смелость, я со своим шестилетним (или больше, смотря как считать) опытом в бэкенде до сих пор боюсь в деньги лезть >_<

    И да,

    777) Пишите автоматические тесты к своему коду


    1. foxmuldercp
      05.10.2017 18:17

      Вы что, какие тесты, онли "фигак фигак и в продакшен!"


      А насчёт денег соглашусь — я пишу свою панель управления хостингом с элементами биллинга и в это лезть пока боюсь.


    1. Mirkom63 Автор
      06.10.2017 08:57

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

      И молю, не воспринимайте как обиду, если так воспринялось. Желаю вам удачи в развитии и получении опыта работы с деньгами!

      На счет тестов полностью согласен)))))


  1. SunViolet
    05.10.2017 18:28

    Первый звоночек — заказчик нашел исполнителя и написал ему в вк. Все таки для работы нужно пользоваться другими платформами, а из вк лучше удалиться)


  1. resetme
    05.10.2017 21:52
    +1

    Все пункты выводов стоит заменить на один:
    1. Без опыта не берись разрабатывать коммерческие проекты.


  1. Priaz
    06.10.2017 11:12

    К помощи с toster добавлю, что сейчас в телеге есть полезные профильные каналы, где люди охотно помогают друг другу в решении небольших вопросов. Статью интересно было читать.


  1. lomnev
    06.10.2017 11:13
    +1

    Сейчас за такой проект я попросил бы тысяч 200-300.

    Пожалуйста, не демпингуйте больше.
    Судя по описанию проекта, в договоре должно быть:
    — от полугода на запуск плюс полтора года техподдержки
    — сумма договора ОТ 2 миллионов рублей плюс обстоятельства повышения цены


    1. Mirkom63 Автор
      06.10.2017 11:14
      -1

      Не очень понял про демпинг. Поясните?


      1. lomnev
        06.10.2017 13:40
        +1

        Как я понял, вы отработали на заказчика около 300 часов.
        Работали в сложных условиях, без системного анализа и сметы проекта, потрепали себе нервы и здоровье. И полностью упустили этап поддержки — золотое дно для вас и спокойствие для заказчика.
        Другой специалист, работающий по ставке 25USD, используя субподряд системного администратора (например 10 часов по 15USD за несложные операции) потратил бы на проект
        300 * 25 + 10 * 15 = 7650 USD + 350 фонд рисков = ~8000 USD или около 500 000 рублей.
        Такая сумма обеспечила бы достойную жизнь и комфортные условия работы разработчику, подработку системному администратору, а заказчик вероятно получил бы хороший продукт, с профессионально настроенным веб-сервером, бэкапами, мониторингом.
        Часто удаленные проекты сопровождаются растягиванием этих 300 часов как раз на полгода. Успели быстрее — отлично.
        После чего нужно переходить к поддержке и развитию проекта. Это отдельная длинная история, выгодная как разработчику, так и заказчику, описание которой могло бы занять цикл статей.
        В итоге, вы могли бы заработать больше или дать заработать другим и немного приподнять весь рынок разработки, что стратегически пошло бы на пользу большинству присутствующих.


        1. Mirkom63 Автор
          06.10.2017 18:25

          Плюсую за все моменты, но они не стали бы платить 500к) Я им говорил изначально 70к, они снизили до 65к, так как планировали такой бюджет. Ну и для меня тогда это были огромные деньги, а они нашли дешевого чувака который «пообещал» все сделать.

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

          Сейчас, кстати говоря, я работаю по формату описанному вами) Спокойно, размеренно, с нормальным бюджетом. Все обговорено, всех все устраивает и никто никому не делает мозги.


  1. Dashandr
    06.10.2017 18:33
    +1

    Ох, история прям за душу берет!
    Для новичков очень даже полезно. Бекапы научилась делать только спустя несколько неприятных ситуаций, но не таких как у автора, конечно. Остальные моменты на заметку возьму.


  1. dmitry_pacification
    07.10.2017 13:21

    Да, что-то подобное я проходил. Именно в плане неправильной оценки сроков и стоимости. А по поводу бэкапов, вспомнилось))
    www.youtube.com/watch?v=a5Hd-nfCvaw


    1. Mirkom63 Автор
      07.10.2017 13:22

      Научно-технический реп рулит)))) У них много прикольных песен есть.