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

Почему так?

Это лично мое предположение. 

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

  2. Маленький бюджет. Зная, что у подрядчика есть более денежные проекты – вполне логично, что все лучшие силы брошены туда. Для любопытных:  мы заплатили подрядчику 1 600 000 руб.

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

Сотрудничество с этим подрядчиком стало дорогим опытом. Про это сотрудничество как-то сказал сам Архимед: "Когда человек с деньгами встречает человека с опытом, человек с опытом уходит с деньгами, а человек с деньгами уходит с опытом". 

Отдавать повторно разработку ПО на аутсорс я не захотел. 

В процессе вытягивания из подрядчика написанного, решил, что мне нужно искать технического директора. Под техническим директором подразумевался человек, способный организовать работу команды разработчиков. Корректно оценивать, ставить и контролировать выполнение ими задач. К моему удовольствию, такой человек появился довольно быстро. Нашлись через общего знакомого по рекомендации. Так появился первый сотрудник нового отдела. Принимали код у наших гореподрядчиков мы уже вместе. Параллельно начали подбирать сотрудников в штат: теперь и критерии отбора, и задачи, под которые берем специалистов, уже были понятны. Вскоре собрали команду из 4-х человек: тех директор, 2  бэка (Python и PHP) и 1 фронт. Важно отметить следующее: Только технический директор был нанят на полный рабочий день. С разработчиками(на тот момент) мы договорились о работе по 3 часа в день. Ибо написание своего ПО – это затратное мероприятие. По сути это стартап, инвестором которого является компания, в рамках которой его делают. 

Команда появилось, надо браться за дело. Бывшие подрядчики писали на Python без соблюдения PEP 8 и с минимум комментов. Поэтому первые пару месяцев мы все вместе просто приводили в порядок написанное, чтобы потом начать допиливать. Некоторые модули мы переделали, другие было проще удалить и добавить свои. 

После того как разобрались в коде, начали его переписывать. Рефакторинг во всей красе. Проект разрабатывался на языке Python с использованием фреймворка Django. Данный фреймворк имеет свои плюсы и минусы. Из минусов, с которым мы столкнулись, проблемы работы со Swagger, который не совсем корректно генерировал API спецификацию. В итоге у нас ушел еще примерно месяц на то, чтобы создать работающий функционал. То, чем реально можно было пользоваться: регистрация, создание различных задач, использование календаря, вход в раздел «Техника», отслеживание изменений каждой единицы техники, использование qr-кода для создания задач.  

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

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

По срокам получилось следующее:

  1. 3 мес. писал подрядчик.

  2. 3 мес. мы пытались получить от него написанное.

  3. 3 мес. формирование собственной команды и прием кода + рефакторинг

  4. 2 мес. допиливание до рабочей версии

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

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

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


  1. Apoheliy
    24.11.2022 11:41

    Вам нужно менять не только деньги на опыт, но и менять философию:

    6 из который были потрачены впустую

    Это не впустую, это обмен. Без него не получилось бы

    рабочая версия ПО, новый отдел и знания

    Удачи Вам на этом пути.


    1. AlexAura Автор
      24.11.2022 19:26

      Спасибо!


  1. micronull
    24.11.2022 13:47

    Я думаю первую версию стоит воспринимать как MVP, а вторую версию уже как релиз 1.0.

    подрядчик 3 месяца передавал нам написанное ПО

    Не понимаю, почему так долго?


    1. AlexAura Автор
      24.11.2022 19:33

      Потому что сделали очень коряво, а мы принимать не хотели. Получилось, что на 1,5мес они опоздали со сроками написания. А потом еще 1,5мес мы упрашивали их, что бы продукт заработал) Потом надоело и просто забрали своими силами писать.