удалённо·три индивидуальных предпринимателя·вместе с 2012 года

То, на чём держится
ваша работаРазработка веб-приложений и внутренних систем

Работаем удалённо, для клиентов в любой стране. Учётные записи, данные, права доступа, отчёты. Система, в которой каждый день сидят ваши люди, — автоматизация той работы, от которой зависит, сколько времени уходит на то, что можно было не делать руками.

02 — как это устроено

Архитектуру ставит человек с 19 годами опыта

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

У сайта ошибка стоит визита. У внутренней системы — рабочего дня, а иногда и данных, которых больше нет. Поэтому здесь порядок другой: сначала решают, как это устроено, и только потом пишут. Андрей — CTO с 2009 года в двух компаниях, и разговор о вашей системе начинается с него.

сколько занимает разработка системы

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

Внутреннюю систему почти никогда не делают целиком и сразу: сначала выходит та часть, без которой нельзя, остальное добавляется по мере того, как становится понятно, чем люди на самом деле пользуются. Мы считаем часы на первую версию по ТЗ, а дальше работаем помесячно.

почему это можно отдать нам

Внутренняя система живёт годами и переживает того, кто её написал. Это ровно то место, где одна пара рук становится риском.

Нас трое, и двое работают на одной бэкенд-территории: если один выпадает, другой подхватывает не с чистого листа. Мы знаем, кто над чем работает, потому что разговариваем постоянно.

03 — состав работ

Что входит в работу над системой

Учётные записи и права. У каждого свой личный кабинет: кто что видит и кто что может — и что происходит, когда человек уходит или меняет роль. Права закладываются в основание, а не прикручиваются потом поверх готового.

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

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

Связь с тем, что у вас уже есть. Бухгалтерия и 1С, склад, почта, платежи, CRM или ERP — интеграции здесь соседняя специализация внутри той же команды.

История действий. Кто что поменял и когда. На внутренней системе это не роскошь: без журнала спор «оно само» разрешить нечем.

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

04 — доказательства

Веб-приложения и системы, которые мы ведём

iTicket — билетная платформа, которую мы ведём десять лет iTicket — каталог событий с фильтрами по категории, дате, месту и цене iTicket — страница события с датами, местом, ценой и покупкой билета iTicket — магазин подарочных ваучеров партнёров iTicket — приложение покупателя, главный экран iTicket — приложение покупателя: список событий с датами и площадками iTicket — приложение покупателя: страница события с датой, залом, ценой и покупкой билета iTicket — приложение покупателя: фильтры по категории, месту, цене и порядку сортировки

iTicket

Билетная платформа Молдовы и Румынии — не сайт, а система: продажи, несколько городов, портал организатора, касса, персонал площадок, проход через турникеты. Публичный сайт, приложение покупателя, приложение сканирования. Проект начали не мы; ведём его десять лет, в активной разработке и поддержке до сих пор.

вебприложение покупателяприложение сканированиятурникетыведём 10 лет
servicii.immromania.eu — каталог услуг для предприятий-членов servicii.immromania.eu — проверка членства фирмы по коду CUI

CNIPMMR — портал патронального союза

Портал патрональной структуры малых и средних предприятий Румынии на три уровня: конфедерация → патронаты → фирмы-члены. Сложность не в содержимом, а в том, кто что видит: патронат — только свои фирмы, федерация — только подчинённые структуры. Правило доступа написано один раз и применяется в запросе к базе, поэтому не обходится ни списком, ни фильтром, ни выгрузкой. Плюс служба консультаций и архив отчётов по комитетам.

реестр членовдоступ по уровнямконсультацииотчёты по комитетамимпорт из Excel
разработка в составе команды партнёра, в консорциуме с Blue Twin Bit
Foi de parcurs — публичная страница приложения путевых листов Foi de parcurs — пошаговое руководство с кадрами из приложения

Foi de parcurs

Путевые листы, которые сходятся сами. Сумма поездок в точности равна разнице показаний одометра, расстояния — из сервиса маршрутизации, а не «на глаз», маршруты не повторяются месяц в месяц. Финализированный документ не меняется задним числом: правка создаёт новую версию, у каждой цифры есть источник, у каждого действия — след в аудите.

генерация документовмаршрутизацияаудитнесколько фирм и ролиDOCX и PDF
разработка в составе команды Blue Twin Bit
Экран кассы: поиск товара, корзина, выбор клиента, итог Вход в кассовую систему магазина с его логотипом

Кассовая система для розницы

Открытое решение точки продаж, доведённое до маленьких магазинов Молдовы: фискальный чек с правильным типом оплаты, электронные весы, у которых номенклатор не расходится с кассовым, приёмка товара импортом вместо ручного набора, ценники из той же накладной. Дорабатывали по тому, что просили кассиры и бухгалтеры. Четыре магазина, у каждого своя копия — ставим и поддерживаем сами.

фискальный принтервесы и штрихкодыприёмка из XML4 магазина

Значительная часть наших работ закрыта NDA агентств. Примеры — по запросу.

05 — процесс

Как идёт разработка веб-приложения

  1. 01Вы приходите с техническим заданием.Что за система, кто в ней работает, что она должна делать. Это ваша часть: без неё считать нечего.
  2. 02Мы его анализируем.Приводим к документу, в котором не остаётся вопросов и двойных прочтений: что именно строим, а что — нет. Для системы это прежде всего роли: кто что видит, кто что может и кто отвечает за то, чего не может никто.
  3. 03Оценка в часах — по готовому ТЗ.Цифры считаются по документу, который вы прочитали и утвердили. Считать часы по описанию идеи — это гадание, за которое платите вы. Здесь считается первая рабочая версия, а не система целиком: то, что вырастет за годы, посчитать вперёд нельзя честно.
  4. 04Вы рано видите работающее.Не отчёт о статусе, а систему, в которую можно зайти и потыкать. Передумать на этом этапе дёшево — на внутренней системе дешевле, чем где бы то ни было ещё.
  5. 05Вы видите, куда идёт время.Учёт в Toggl, отчёт открыт вам: раз в месяц — часы по задачам, что сделано, что идёт следующим. Счёт за отработанное, а не вперёд.
  6. 06Запуск — и дальше поддержка или передача.Система может остаться у нас на ежемесячной поддержке, а может уйти к вашей команде. Репозиторий и доступы ваши в любом случае.
06 — честно

Чего мы не делаем во внутренних системах

Не берёмся за систему, которую некому будет вести. Если после запуска её никто не откроет и не обновит, это не экономия, а отложенная поломка.

Не называем цену до ТЗ. Сумма по описанию идеи — это не оценка, а число, которое потом всё равно поменяется. Мы предпочитаем менять его до того, как вы на него рассчитывали.

Буферное время попадает в оценку, но не в счёт: платите вы за отработанные часы. Работа заняла меньше — вы платите меньше. Подробнее о том, как считаются часы, — на главной.

07 — частые вопросы

Частые вопросы о разработке веб-приложений

Сколько стоит такая система?

Цена считается в часах, и их количество мы называем заранее, по техническому заданию. Без этого документа никакой цифры не даём: сумма «на глаз» по описанию идеи была бы гаданием.

Сколько времени занимает разработка?

От трёх месяцев до первой версии, в которой можно работать. Точный срок — по готовому ТЗ.

Чем веб-приложение отличается от сайта?

Сайт рассказывает, приложение работает. На сайте человек читает и уходит; в приложении он заходит под своей учётной записью и что-то делает — оформляет, считает, ведёт, согласовывает. Отсюда всё остальное: права доступа, состояния, история действий, нагрузка. И отсюда же разница в цене, которая иногда удивляет.

Делаете ли вы CRM или ERP на заказ?

Делаем, но сначала стоит спросить, нужна ли своя. Готовые CRM дешевле и быстрее ровно до того момента, пока ваш процесс совпадает с их представлением о нём. Своя система оправдана тогда, когда процесс — ваше преимущество, а не общее место. Сюда же относится портал или личный кабинет для ваших клиентов: там готовое решение почти всегда упирается в то, что ваш клиент делает не то же самое, что клиент соседа. Мы скажем, что видим, до начала работы.

Можно ли доработать то, что у нас уже есть?

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

Где будет работать система?

Там, где вам нужно: на вашем сервере, на арендованном или на вашем железе внутри офиса, если данные не должны его покидать. Инфраструктуру ведёт Андрей — это его территория, а не задача, которую отдают на сторону.

На чём вы это пишете?

Бэкенд — чаще всего PHP с Laravel или Node.js с NestJS, база — MySQL или MongoDB, всё это в Docker на Linux. Полный список того, на чём мы работаем, — внизу страницы. Если ваша система держится на технологии, которой в этом списке нет, честнее сразу сказать, что это не к нам.

Что будет, если один из вас пропадёт?

Работу подхватывает второй: одну и ту же бэкенд-территорию у нас держат двое, и оба постоянно в курсе чужих задач.

Кому принадлежит код?

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

Подпишете ли вы NDA?

Да. Значительная часть наших текущих работ и так под ним.

В каком часовом поясе и на каком языке вы работаете?

Работаем удалённо с клиентами откуда угодно, часовой пояс EET. Говорим и пишем на румынском, русском, английском и болгарском.

08 — дальше

Расскажите, что вы хотите построить

Приходите с техническим заданием. Мы переработаем его так, чтобы в нём не осталось вопросов, и уже по нему посчитаем часы.

один адрес, все трое

[email protected]

Это точка входа. По внутренним системам разговор начинается с Андрея: сначала архитектура, потом всё остальное.

Написать кому-то из нас напрямую — контакты на главной.

Если задача другая: API, интеграции и платежи, приложение для iOS и Android, интернет-магазин, сайт или лендинг, подхват чужого проекта, адаптация готового сайта под телефон.

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