BurnRate повышает доход с помощью Blazor
Клиент
BurnRate
Продукты и службы
Blazor
ASP.NET
Azure SQL
Промышленность
Программное обеспечение и консультации
Размер организации
Малый (от 1 до 100 сотрудников)
Страна/регион
Соединенные Штаты Америки
Познакомьтесь с Робертом МакЛоузом, ветераном .NET и опытным предпринимателем, который стремится помогать людям добиваться успеха. На протяжении всей своей карьеры МакЛоуз был свидетелем того, как венчурные капиталисты (VC) и их сотни миллиардов инвестиций не смогли значительно улучшить показатели успеха стартапов. Даже после 50 лет венчурных инвестиций по крайней мере 70 процентов компаний по-прежнему терпят неудачу на каждом этапе роста.
Эта статистика встревожила МакЛоуза. Таким образом, он решил помочь основателям и руководителям по доходам систематизировать процесс найма и наметить свой собственный курс роста, не возясь с формулами электронных таблиц. Он увидел возможность для технологий сделать некоторые ценные и конкретные расчеты, которые сделают планирование масштабируемого роста более простым и точным.
Построение человеческого алгоритма
Много лет назад МакЛоуз создал инфраструктуру приложений с использованием ASP.NET для создания продукта финансового анализа в сфере коммерческой недвижимости. Модели наращивания потенциала для жилых комплексов привели его к изучению моделей объема продаж SaaS и того, как трудоспособность человека влияет на способность компании получать доход.
Именно тогда ему пришла в голову идея BurnRate, системы планирования доходов, спроса и численности персонала для команд по выходу на рынок. МакЛоуз считал, что полагаться на интуицию и догадки для определения уровня укомплектования персоналом ключевых команд по доходам, таких как маркетинг, продажи и сопровождение клиентов, не является устойчивым путем к росту.
Вместо этого он считал, что есть научный путь решения этого вопроса: алгоритм, который может помочь компаниям расти умнее, используя то, что он назвал "Алгоритм людей". По его словам, "эти отделы [по работе с клиентами, маркетингу и продажам] отвечают за то, чтобы деньги приходили в компанию в первую очередь, поэтому было важно сделать правильные расчеты и сделать их достаточно простыми, чтобы сотрудники, отвечающие за доходы, могли использовать их интуитивно".
Выбор правильного технологического стека
Опыт МакЛоуза в финансовой математике научил его, что языков программирования, использующих математику с плавающей запятой, таких как JavaScript, недостаточно для построения финансовых систем. Основа для этого алгоритма должна быть на C#, чтобы обеспечить надежные результаты, которые можно было бы последовательно проверять.
Когда он покинул свою предыдущую компанию, чтобы основать BurnRate, ему пришлось оставить свою структуру приложений и заново изобрести ее с нуля. Первый выпуск .NET Core только что был выпущен, поэтому это было идеальное время для его перестройки для нужд современной эпохи.
Серверная часть была достаточно простой, с Azure SQL и Microsoft Restier более чем способными обеспечить потребности проекта в запрашиваемом API. В .NET Core его развивающийся "Алгоритм людей" был молниеносно быстр и способен выполнять очень сложные вычисления на основе высокоструктурированных данных за доли секунды.
Однако организация финансовых данных компании таким образом, чтобы компании могли создавать несколько сценариев и переключаться между ними, требовала такой архитектурной глубины, которую он не ожидал.
"Наложение сценариев, родительских сценариев, временных шкал и запланированных результатов в сравнении с фактическими [результатами] в одной модели хватало, чтобы возникло головокружение. Требовались месяцы напряженной работы и многократные попытки, чтобы заставить модель работать", — сказал он. МакЛоуз говорит, что количество модульных тестов, которые BurnRate использует в своем алгоритме для обеспечения правильной функциональности, "вероятно, на порядки выше, чем у большинства других компаний, создающих свои приложения. Мы просим компании принимать решения о будущем всего их бизнеса с помощью этой платформы. Мы не можем позволить совершать ошибки".
BurnRate построил всю свою среду тестирования с открытым исходным кодом под названием Breakdance, чтобы повысить производительность модульных тестов и написать более согласованные тесты за меньшее время.
С внешним интерфейсом возникли другие проблемы. МакЛоуз начал создавать прототип пользовательского интерфейса BurnRate, используя комбинацию Webpack, TypeScript и Knockout, но столкнулся с многочисленными препятствиями. В то время в Webpack не было определений TypeScript, чтобы облегчить настройку сборок.
"В JavaScript — языке, где все может быть чем угодно, и все может быть заменено во время выполнения — сбой является настройкой по умолчанию. Успех должен быть заработан, как правило, через обширные душевные страдания", — сказал МакЛоуз.
Когда у него наконец все заработало и появился первый полностью функциональный прототип, команда столкнулась с проблемами масштабирования, особенно при составлении планов найма для компаний с сотнями сотрудников.
"Когда мы пытались понять, как сделать его масштабируемым и обрабатывать обновления пользовательского интерфейса, пересчеты и серверную часть, мы [шли] назад", — сказал он. "В браузере происходило все больше и больше рывков при попытке преобразования для просмотра".
Как технология Blazor проложила путь к масштабируемости
Blazor вышел на рынок примерно в это же время, и это была новая интерфейсная технология.
"Обещание сквозного использования C# в браузере с минимальным JavaScript было слишком хорошим, чтобы его игнорировать", — сказал МакЛоуз.
По словам МакЛоуза, использование C# между клиентской и серверной сторонами не только сделало разработку приложений "намного проще", но и сыграло решающую роль в том, чтобы сделать пользовательский интерфейс платформы BurnRate таким же надежным, как и ее вычисления.
Мы можем писать модульные тесты на том же языке, на котором пишем внутренний код. Это грандиозно! Почему бы вам не выполнять сборку таким образом? Это устранило тысячи строк кода и было интуитивно понятным для любого, кто провел хотя бы пять секунд в мире WPF".
С Blazor компания BurnRate смогла двигаться "очень, очень быстро". Вместо трех лет команда создала рабочий прототип Blazor за несколько недель и полностью перенесла несколько сотен тысяч строк кода менее чем за год.
Значительная часть этого времени была потрачена на создание новых инструментов с открытым исходным кодом, чтобы другие компании также могли быстрее создавать приложения Blazor — подход, который соответствует этике МакЛоуза.
Люди склонны забывать, что при создании такой платформы, как BurnRate, вам нужно не только приложение, ориентированное на клиента, но и приложение, стоящее за приложением, для внесения изменений в базу данных и администрирования системы", — сказал он.
"Итак, мы создали BlazorEssentials — библиотеку, которая включает архитектурный стиль "Модель — представление — модель представления" (MVVM) из XAML в Blazor. Это позволяет нам четко отделить сбор данных от отображения данных в наших приложениях. Это обеспечивает уровень простоты и согласованности в архитектуре наших приложений. Теперь 100 процентов нашей кодовой базы можно тестировать на одном языке с предсказуемыми шаблонами.
Использование Azure DevOps для высокоавтоматизированной непрерывной интеграции и непрерывной доставки (CI/CD) позволяет команде BurnRate двигаться еще быстрее.
"Будь то новое приложение или новая служебная программа для существующего приложения, мы можем отправить их в производство в считанные часы", — сказал МакЛоуз.
По мере расширения BurnRate требовалось обеспечить стабильность своего продукта, чтобы он все больше внедрялся в основные повседневные операции клиентов. МакЛоуз доверился Microsoft.
Доставка решений без компрометации
"Я выбрал Microsoft очень давно, и Microsoft никогда меня не подводила", — сказал он.
МакЛоуз — ветеран .NET с 23-летним стажем и пятикратный обладатель звания Microsoft MVP, его вклад в работу с открытым исходным кодом составил более 1,4 миллиарда загрузок. По сей день он продолжает развиваться вместе с корпорацией Майкрософт, зная, что есть ресурсы и сообщество для совместного создания великих результатов. С помощью Blazor команда BurnRate смогла создать приложение и реализовать видение McLaws без компромиссов.
По его мнению, "никогда не существовало никакой другой платформы, кроме .NET, которая могла бы поддерживать такой [уровень] стабильной масштабируемости". По его словам, Blazor помог его бережливой команде создавать умнее и быстрее.
Я ждал такого уровня производительности всю свою карьеру. С .NET Core и Blazor еще никогда не было так легко воплотить мои мечты в реальность".
Готовы приступить?
Наше пошаговое руководство поможет вам запустить Blazor на вашем компьютере.