Все события вымышлены, любые совпадения с реальными именами или названиями - случайны.
Друзья, сегодня я расскажу вам историю, которая началась с невинного звонка из Минцифры и закончилась... впрочем, она ещё не закончилась. Меня зовут Павел, и я тот самый идиот, который согласился создать отечественный аналог Speedtest.
День первый: "Вы выиграли тендер!"
-Павел Сергеевич? Поздравляем, ваша компания 'ИнноТех Солюшнс' выиграла государственный тендер на создание СуверенногоИзмерителяСкоростиИнтернет-СоединенияОтечественногоПроизводства, сокращённо — RuSpeedTest!
Я чуть не подавился кофе. Мы вообще-то делали приложение для заказа пиццы.
-Но мы не участвовали ни в каком тендере...
-Это несущественно. У вас есть ООО и вы умеете программировать. Техническое задание пришлём в течение 48 рабочих часов.
Техническое задание: Добро пожаловать в ад
Когда я открыл ТЗ, мой junior-разработчик Миша побледнел и спросил, можно ли ему уволиться задним числом.
ТРЕБОВАНИЯ К ФУНКЦИОНАЛУ:
- Измерение скорости должно производиться в верстах в час (1 Мбит/с = 1066,8 версты/час по ГОСТ Р 58144-2018)
- Вместо "пинга" использовать термин "отклик отечественный" (ОО)
- Обязательная проверка на "скрепность соединения" — соответствие традиционным ценностям трафика
- При скорости ниже заявленной провайдером выводить сообщение: "Возможно, это связано с внешними санкциями"
-Павел Сергеевич, а что такое скрепность соединения? — робко спросил Миша.
-Понятия не имею, но у нас есть 14 дней на разработку.
День пятый: Конкуренты не дремлют
Пока мы ломали голову над алгоритмом перевода мегабитов в версты, на рынке появились конкуренты.
"ПравославныйSpeedtest" от РПЦ-Софт обещал не только измерять скорость, но и освящать интернет-соединение. При каждом тесте проигрывался колокольный звон, а результаты выдавались в "кириллобайтах в крестный ход".
"СкрепоМетр" от компании "Традиционные Ценности Диджитал" пошёл ещё дальше. Их приложение проверяло не только скорость, но и "патриотичность пакетов данных". Если больше 30% трафика шло через западные сервера, пользователь получал предупреждение о "низкой духовности соединения".
-Нам конец, — сказал Миша, листая Хабр.
-Не паникуй. У нас есть преимущество — мы единственные, кто получил госзаказ. И потом, ты видел их код? Они используют jQuery в 2025 году!
День десятый: Новые требования
Утренняя почта принесла Дополнение №1 к ТЗ:
СРОЧНО! ВНЕСТИ ИЗМЕНЕНИЯ:
- Добавить режим "Боевой тест" — измерение скорости в условиях "особой сетевой операции"
- Интегрировать с Госуслугами (причину не объяснили)
- При обнаружении VPN автоматически отправлять данные в... [зачёркнуто] выводить воспитательное уведомление
- Латентность переименовать в "задумчивость", джиттер — в "трепетание патриотическое"
-Павел Сергеевич, я не понимаю, как интегрировать измерение скорости с Госуслугами," — Миша выглядел так, будто не спал три дня.
-А ты пробовал?
-Да! Теперь при каждом тесте скорости пользователю предлагают записаться к врачу!
-Отлично, оставляем как фичу.
Презентация в министерстве: Театр одного абсурда
-Итак, господа, представляем вам RuSpeedTest 1.0!
В зале сидели люди в одинаковых серых костюмах. Их лица не выражали ничего. Это было страшнее любого баг-репорта.
-Почему скорость отображается зелёным цветом?" — спросил человек с бейджиком "Заместитель по цифровому суверенитету.
-Это... это просто цвет. Зелёный означает хорошую скорость...
-Зелёный — цвет доллара. Переделать на триколор.
-Но как отобразить скорость триколором?
-Это ваши проблемы. Следующий вопрос — почему вы используете термин "сервер"? Это же английское слово!
-А как называть?-
-Цифровой услужитель. И вообще, Павел Сергеевич, мы тут посовещались...
Дальше началось самое интересное.
Битва титанов: RuSpeedTest vs ПравославныйSpeedtest
"Ваше приложение недостаточно патриотично!" — заявил представитель РПЦ-Софт. — "Наш ПравославныйSpeedtest не просто измеряет скорость, он спасает души пользователей!""Это как?" — я старался сохранять спокойствие."При низкой скорости мы предлагаем помолиться. Статистика показывает улучшение на 15% после молебна!"
Представитель СкрепоМетра не остался в долгу:
-А наше приложение блокирует бездуховные байты! Только представьте — ваш интернет очищен от тлетворного влияния запада!
-Но это же просто единицы и нули...
-Именно! Западные единицы и нули! Мы заменяем их на отечественные!
Апокалипсис спецификаций
К двенадцатому дню требования превратились в сюрреалистическую поэму:
- Скорость загрузки переименовать в "стремительность получения"
- Скорость отдачи — в "щедрость цифровую"
- Добавить кнопку "Пожаловаться на провайдера в Роскомнадзор" (делает скриншот и отправляет автоматически)
- При скорости выше 100 Мбит/с показывать предупреждение: "Вы уверены, что вам нужна такая скорость? Подумайте о духовном!"
- Интегрировать с системой "Честный ЗНАК" для маркировки каждого мегабайта
-Миш, ты ещё жив? — я заглянул в комнату разработки.
-Я написал функцию, которая конвертирует пинг в православные миллисекунды. Не спрашивай как.
Финальная презентация: Deus Ex Machina
"Господа, представляем финальную версию RuSpeedTest!"
Приложение выглядело как помесь космического корабля и сельского клуба. При запуске играл гимн, скорость отображалась тремя разными способами (версты/час, кириллобайты/момент и "условные единицы патриотизма"), а вместо рекламы показывались цитаты о важности цифрового суверенитета.
"Великолепно!" — воскликнул чиновник. — "Но есть одна проблема..."
Моё сердце упало.
-Роскомнадзор только что заблокировал все сервисы для тестирования скорости. Включая наш.
-Но... но как же пользователи будут проверять скорость?
-Никак. Зато суверенно.
Эпилог: Версты в никуда
Сейчас я пишу эти строки из нового офиса. Мы делаем RuPing — суверенный измеритель отклика. В ТЗ сказано, что отклик должен измеряться в "долях мгновения ока".
Миша уволился и уехал делать нормальные приложения. Последнее, что он сказал: "Паш, а помните, когда мы просто пиццу заказывали?"
Помню, Миша. Помню.
Вместо заключения: когда пинг становится "откликом отечественным", а мегабиты измеряются в верстах, единственная константа — это абсурд. И госзаказы. Госзаказы вечны.