Разработка финансового программного обеспечения: полное руководство

Банки терпят крах. Платежные платформы зависают в самый неподходящий момент. Торговые системы отстают во время рыночных скачков. Финансовое программное обеспечение незаметно стало самой важной и самой беспощадной категорией программного обеспечения из существующих. Одна ошибка стоит миллионы. Одно нарушение требований приводит к закрытию компании. В этом руководстве рассказывается, что на самом деле включает в себя разработка финансового программного обеспечения, как выглядит рынок сегодня и как создать что-то, что выдержит контакт с реальностью. Оглавление В JPMorgan работает больше технологов, чем общая численность персонала многих компаний-разработчиков программного обеспечения. Goldman Sachs уже много лет называет себя технологической компанией, и на данный момент спорить с этой формулировкой кажется бессмысленным. Спрос на разработку программного обеспечения для финансовых услуг распространился на три сегмента: розничный банкинг, институциональное финансирование и инфраструктура соответствия. У каждого свои правила. Каждый наказывает за плохие решения по-разному. Этот сдвиг больше не касается стартапов, разрушающих банки. Признанные игроки тоже движутся, и причём быстро. Компании, строящиеся в масштабе предприятия, где платформы, охватывающие технологические решения для финансовых услуг, охватывают все: от основной банковской модернизации до аналитики на основе искусственного интеллекта, сталкиваются с особым давлением: модернизировать устаревшие системы COBOL, не переводя их в автономный режим. Это ограничение определяет почти каждое архитектурное решение. Что сейчас активно прототипируется и тестируется? «Финансовое программное обеспечение» используется так, как будто оно означает одно. Это не так. Базовые банковские системы обрабатывают транзакции, счета и реестры — часто все еще работающие на мэйнфреймах IBM Z в крупных организациях. Их модернизация действительно является одной из самых сложных проблем корпоративного программного обеспечения. Temenos, FIS и Finastra продают комплексные решения. Банки-претенденты, такие как N26 и Revolut, создавались по индивидуальному заказу. Оба пути сопряжены с реальными издержками. Торговая инфраструктура с низкой задержкой работает за микросекунды. Такие компании, как Virtu Financial, заработали репутацию благодаря почти безупречному исполнению на протяжении длительного периода времени — такая последовательность достигается за счет точности программного обеспечения, а не удачи. Здесь доминирует C++, и в некоторых случаях программирование FPGA переносит логику на аппаратное обеспечение, чтобы сократить важную задержку. Aladdin из BlackRock управляет аналитикой рисков для значительной доли глобальных институциональных активов. Создание чего-то сопоставимого — это не простое дело, а устойчивые инвестиции в науку о данных и инфраструктуру. Платежи — это совсем другое дело: каждое считывание карты вызывает авторизацию, проверку на предмет мошенничества, расчет и сверку менее чем за две секунды. Stripe превратил эту сложность в чистый API для разработчиков. Инфраструктура под ним далеко не проста. Здесь нет расплывчатых формулировок типа «Java — надежный выбор». Вот что на самом деле используется. Языки. Java по-прежнему доминирует в корпоративном банкинге — спустя десятилетия он никуда не денется. Python выполняет большинство задач по количественному финансам и машинному обучению. C++ обрабатывает торговлю, чувствительную к задержке. COBOL по-прежнему обрабатывает значительную долю ежедневной глобальной торговли. Да, в 2025 году. Kotlin и Swift будут заниматься мобильным банкингом. Rust набирает обороты в платежной инфраструктуре, где безопасность памяти не подлежит обсуждению. Базы данных. PostgreSQL и Oracle обрабатывают транзакционные данные в соответствии с требованиями ACID. Базы данных временных рядов, такие как kdb+, являются стандартными в торговых средах — шаблоны запросов полностью отличаются от типичных реляционных рабочих нагрузок. Для распределенных систем с высокой пропускной способностью распространенным ответом является Apache Cassandra. Облако. AWS GovCloud, Azure для финансовых услуг, API финансовых услуг Google Cloud — все они конкурируют за одни и те же контракты. Полный переход Capital One на AWS стал широко цитируемым примером. BBVA и Deutsche Bank также взяли на себя значительные обязательства по облачным технологиям. API. Разработка современного финансового программного обеспечения во многом представляет собой интеграционную работу. PSD2 в Европе и CDR в Австралии требуют архитектуры с приоритетом API. Портал для разработчиков теперь есть в каждом крупном банке. Качество значительно варьируется. Большинство команд недооценивают эту работу. Значительно. Обеспечение соответствия с самого начала стоит лишь небольшую часть стоимости его добавления после запуска. Нарушение Equifax и его последствия — масштабное урегулирование, годы репутационного ущерба — по уважительной причине остаются стандартным предостерегающим примером. Стоит разделить эти два понятия. Обнаружение мошенничества действительно является зрелым процессом. Decision Intelligence от Mastercard оценивает транзакции в режиме реального времени с помощью графовых нейронных сетей, которые одновременно взвешивают данные устройства, местоположение, контекст продавца и историю поведения. Технология работает и проверена годами. Кредитный скоринг является более спорным. Модели, основанные на машинном обучении, могут учитывать гораздо больше переменных, чем традиционная оценка FICO, и некоторые кредиторы сообщают о значительном улучшении показателей дефолта. Вопрос о том, выдерживает ли проверка каждая претензия поставщика, остается спорным. Сдвиг в сторону более богатых моделей вполне реален; конкретные результаты варьируются в зависимости от контекста. Алгоритмический трейдинг стал серьезной дисциплиной с конца 1980-х годов. Знаменитый пример — Renaissance Technologies — фонд с длинным замечанием.