Пока все сфокусировались на угрозах, исходящих от искусственного интеллекта, проблема «битого» кода отошла на задний план.
А меж тем это явление никуда не девалась. Наоборот, с расширением автоматизации в различных отраслях, оно лишь масштабируется, а цена ошибки — растет. Приведем лишь несколько примеров.
Кейс первый. В городе Гранд-Рапидс, Мичиган, пациенты медицинского центра «Милосердие Святой Марии» ошибочно получили сообщение о своей смерти. И все бы ничего, если бы эти данные параллельно не отправлялись в социальные структуры и страховые компании...
Но гораздо драматичнее события развивались в британской компании Horizon. Из-за ошибок программа выдавала информацию о недостачах у сотрудников. И похоже, что все это длилось как минимум 14 лет! В результате некоторые из работников пытались компенсировать ущерб закладывая дома, а некоторые и вовсе оказались в тюрьме!
Понятное дело, деньги любят тишину и большинство компаний стараются уладить подобные ситуации в досудебном порядке, поэтому общественности становятся известны лишь единицы из них.
Но баги — это лишь одна из проблем. Самая очевидная. Есть и другие. Например, незаконная передача ПО конкурентам. Взять хотя бы события начала этого года — когда в интернете засветились исходники проектов Яндекса. Причем в компании подтвердили их подлинность, но отрицали факт взлома. А ведь подобная история уже имела место быть в 2015 году, когда бывший сотрудник этой компании пытался продать алгоритмы Яндекс.Поиска...
Что уж говорить о таких, менее очевидных для заказчиков вещах, как Spaghetti Code (трудный для понимания другими программистами код), Dirty Hack (простые решения, опасные в долгосрочной перспективе), Monkey Code (использование куска чужого кода без учета специфики задачи) и т.д. и т.п.
Простите, дорогие читатели, что опять вас кошмарим, но из песни слов не выкинешь. Риски разработки действительно высоки, а в некоторых отраслях бизнеса, например, в сфере инвестиций или медицины, особенно высока и цена ошибок.
Так как же заказчику ПО быть уверенным, что никаких проблем с кодом не возникнет?
Об этом и многом другом мы решили поговорить с Андреем Машуковым.
Андрей Машуков, генеральный директор и основатель Open Soft, специализирующейся на IT-аутсорсинге. Компания существует в России с 2020 года, имеет филиалы в Индонезии, на Бали.
Андрей — «технарь до мозга костей»: владеет языками программирования Go, C#, PHP, JavaScript и другими. Активно помогает командам с принятием ключевых решений при разработке архитектуры ПО, баз данных, а также с выстраиванием рабочих процессов на каждом проекте в Open Soft.
Сегодня для тех, кому требуется IT-команда на аутсорсе, попытаемся разобраться:
Как выбирать надежного партнера на услуги по программированию;
Как устроен процесс IT-аутсорсинга;
Как повысить шансы на получение «чистого» кода;
Зачем нужно тестирование и каким оно может быть;
Существуют ли гарантии на программное обеспечение и что они могут в себя включать.
А тем, кому IT-аутсорсинг интересен как бизнес, также расскажем об изнанке, в частности про:
Маржинальность этого вида бизнеса;
Подход к продвижению таких услуг;
Сроках окупаемости бизнеса.
Затронем и другие интересные темы...
Поехали!
На различных, включая банковский сектор, электронную коммерцию, здравоохранение, логистику и криптовалюты. Но периодически мы адаптируемся и к клиентам из других отраслей, при условии, что проекты соответствуют и законодательству, и нашим этическим стандартам.
Мы сосредоточены на создании высококачественных продуктов, поэтому в проектах участвуют исключительно опытные специалисты уровня Middle+ и выше.
Типичный проект в Open Soft обычно подразумевает минимальный месячный бюджет от 700 000 рублей.
Продолжительность проекта варьируется в зависимости от его сложности и объема, но обычно они занимают от нескольких месяцев до года. Каждый проект включает в себя команду, состоящую из проджект-менеджера, одного или нескольких разработчиков, тестировщиков и техлида, который может работать одновременно над несколькими проектами.
В Open Soft мы сталкиваемся с широким спектром задач, но наиболее частые обращения связаны с разработкой и модернизацией сложных систем, включая интеграцию с существующими IT-структурами заказчиков, создание масштабируемых веб-приложений и разработку программного обеспечения для автоматизации бизнес-процессов.
Также мы часто работаем над проектами, связанными с облачными технологиями, разработкой мобильных приложений и внедрением систем безопасности. Что касается технологического стека, наиболее востребованными являются Go (Golang), PHP, C#, TypeScript и JavaScript.
В области фреймворков мы часто работаем с Symfony, Vue.js, React и Laravel. Эти технологии позволяют нам реализовывать сложные и функционально насыщенные решения, соответствующие современным требованиям рынка и предпочтениям наших клиентов.
Мы всегда пишем автотесты для каждой разработки, проводим код-ревью и используем методологии CI/CD на всех проектах. Также мы активно участвуем в мозговых штурмах с нашими клиентами и внимательно планируем каждый аспект работы.
По моему опыту (когда я был разработчиком, а не основателем бизнеса), лишь
Этот проект мы реализовали для ООО Ипотех. Основной сложностью здесь было создание системы, способной обрабатывать большие объемы финансовых данных с высокой степенью точности и безопасности. Мы разработали приложение, которое не только упрощает процесс получения ипотеки для клиентов, но и предоставляет брокерам эффективные инструменты для управления заявками и взаимодействия с банками.
Мы создали масштабируемый сайт для промышленного маркетплейса. Здесь ключевой задачей было обеспечения плавного взаимодействия между продавцами и покупателями на платформе, что требовало интеграции различных платежных систем и обеспечения высокой производительности сайта.
Да, мы сделали приложение для автоматизации складского учета, систему, которая позволяет автоматически отслеживать запасы, управлять заказами и координировать логистические операции. Наше решение значительно упростило складской учет и повысило эффективность логистических операций.
Это внутренний проект. Команда делала его по моему внутреннему заказу, да и что стесняться, я вместе с командой принимал участие и направлял ребят в правильном направлении. Тема трейдинга мне давно интересна, еще с Ковида. Я тогда очень хорошо заработал на обвалившихся акциях американских компаний.
Проект по большей части направлен на международный рынок, он фактически является разработкой моей второй компании Open Soft Asia, которая находится в Индонезии, на Бали. Если вы даже зайдете на сайт, то увидите что русского языка там нет, система исключительно на английском. Но я думаю, это не будет проблемой для опытных криптовалютчиков. Люди всегда найдут способ перевести деньги на свой спотовый кошелек на бинан. К тому же, есть же и другие биржи, где люди за рубль смогут купить крипту.
После обращения потенциального клиента в Open Soft запускается процесс, состоящий из нескольких этапов.
Первичное интервью с заказчиком. Мы проводим беседу с клиентом, чтобы понять его потребности и требования к проекту. Это помогает нам определить структуру приложения и сделать предварительный верхнеуровневый расчет стоимости и сроков.
Подписание договора. После согласования первичных условий и предоставления оценки, мы переходим к подписанию договора с клиентом.
Детальное планирование проекта. На этом этапе мы формируем техническое задание (ТЗ) вместе с клиентом. Это включает в себя определение конкретных задач и требований.
Грумминг и планирование (для SCRUM). Если работа ведется по методологии SCRUM, мы проводим грумминг, на котором команда разработки встречается с заказчиком для обсуждения предстоящих задач. Затем команда участвует в планировании спринта, где оцениваются и определяются задачи для включения в спринт.
Реализация проекта. Работа над проектом ведется в соответствии с выбранной методологией (SCRUM или Kanban). В случае SCRUM, проект делится на спринты, каждый из которых заканчивается проверкой и выдачей результатов. Для Kanban процесс более гибкий, с постоянным приемом и выполнением задач.
Тестирование и реализация. В конце каждого спринта или по завершении определенных этапов работы проводится тестирование для обеспечения качества и соответствия ТЗ.
Завершение проекта и доставка. После завершения всех этапов разработки и успешного прохождения тестирования проект считается завершенным и передается заказчику.
Поддержка и обслуживание. После завершения проекта мы также предлагаем услуги поддержки и обслуживания для обеспечения стабильной работы продукта.
Да, все 18 сотрудников в Open Soft являются штатными работниками. Это высококвалифицированные профессионалы, которые постоянно работают над текущими проектами компании.
Но мы всегда готовы к новым вызовам и задачам. В зависимости от объема и специфики предстоящего проекта, мы можем оперативно перераспределить ресурсы и выделить необходимое количество сотрудников для работы над новым проектом. В случае крупного проекта, который требует большего числа специалистов, чем доступно в данный момент, мы можем быстро набрать дополнительную команду, благодаря нашим процессам подбора персонала. Мой опыт и знание рынка позволяют мне эффективно и быстро организовывать команды под конкретные проекты, учитывая их уникальные требования и технологический стек.
У нас есть как список резервных кандидатов (которые прошли интервью, но их не наняли потому, что не было ставки или был нанят другой кандидат), так и разработчики на бэнче (это когда разработчик получает минимальную ставку и ждет распределения на проект), так и возможность перекинуть разработчика временно с другого проекта. Словом, есть большое количество вариантов, вплоть до набора команды с нуля чисто под нужный стек проекта.
В Open Soft мы придерживаемся тщательно продуманного и прозрачного подхода к подсчетам и оплате за наши услуги. Основным инструментом в этом процессе является методология «Planning Poker», которая широко используется в AGILE-разработке. Этот метод позволяет команде разработчиков голосовать анонимно по каждой задаче или функциональности проекта, что способствует обеспечению точной и объективной оценки трудоемкости работ.
Честно говоря, мы не отслеживаем, как устроено у других, у нас свой путь, и свой подход к оценке проектов. Когда мы дали оценку и начали спринт, даже если работы было сделано больше, чем было в первоначальной оценке, заказчик может быть спокоен — мы берем эти риски на себя. Цена для заказчика остается такой, как было оговорено на старте итерации (спринта, квартала, проекта).
Пожалуй, главный минус, это риск нарваться на «студентов» которые открыли как модно сейчас говорить «диджитал агентство», но реального опыта не имеют.
Однако также есть возможность найти действительно сильную команду, которая будет иметь все необходимые позиции, сильный бэкграунд и эффективно управляться. В этом случае заказчикам не нужно переживать о ФОТ, эффективном управлении и куда потом девать эту команду, если надо закрыть/приостановить проект.
При этом у заказчика также нет головной боли в виде операционных бюрократических задач (уплата налогов, отчислений и т.д.). Он может сконцентрироваться на других бизнес-задачах, а разработкой занимаются профессионалы, причем плечом к плечу с другими сотрудниками заказчика.
Наш успех в достижении контрактов с такими крупными брендами во многом обусловлен нашей способностью адаптироваться и проявлять инновационный подход.
А ещё во многих случаях мы работали через субподряды, что позволило нам накапливать опыт и постепенно доказывать нашу компетентность крупным игрокам на рынке.
Также немаловажную роль сыграл опыт, который наши сотрудники приобрели, работая в различных компаниях до присоединения к Open Soft.
Вот некоторые из них:
Успешное преодоление кризиса COVID-19. Мы открылись в 2020 году, в начале пандемии, и смогли успешно преодолеть вызовы, связанные с этим периодом. Наша команда быстро адаптировалась к удаленной работе, что позволило нам не только сохранить стабильность, но и продолжить рост.
Рост и развитие команды. За короткое время мы значительно расширили нашу команду, привлекая высококлассных специалистов. Это позволило нам расширить спектр предлагаемых услуг и укрепить наши позиции на рынке.
Успешное выполнение крупных проектов. Мы успешно реализовали ряд крупных и сложных проектов для значимых клиентов, включая разработку систем в таких сферах как банковские технологии, электронная коммерция и логистика.
Постоянное развитие и инновации. Мы постоянно инвестируем в развитие наших технологий и методологий работы. Это позволяет нам оставаться на переднем крае инноваций и предлагать нашим клиентам самые актуальные и эффективные решения.
Да, работа со стартапами действительно связана с определенными рисками. Были случаи, когда стартапы сталкивались с финансовыми трудностями и не могли оплатить последний счет. В таких ситуациях мы всегда стремимся найти обоюдно приемлемое решение, так как понимаем, что гибкость и партнерский подход имеют ключевое значение в работе со стартапами.
Не буду называть конкретных цифр. Скажу лишь, что это бюджет с шестью нулями. :)
Лично я как учредитель пока не начал зарабатывать денег в своей компании. :)
Все заработанные компанией деньги идут на команду, ее развитие и найм новых сильных специалистов. Компания это в первую очередь люди. Наши специалисты — это наша ценность. Именно они производят классные продукты, которые обеспечивают компании возможность существовать.
От 20% до 40% от стоимости проекта. Этот показатель зависит от многих факторов, например, таких как обеспечении гарантии, отпуска, точности оценки и т.д.
От 5 до 10 крупных проектов. В данный момент их 5.
Отдела продаж как такового нет. Я или мой заместитель лично проводим встречи с заказчиками и обсуждаем проекты, а также консультируем заказчиков на ранних этапах, до того, как за проектом закрепляется конкретный менеджер.
Мы много в маркетинг не вкладываем. Как я говорил ранее, большая часть клиентов приходит к нам по рекомендации. Лучшее вложение в маркетинг на мой взгляд — это оказание качественных услуг на рынке. Когда у вас есть репутация, маркетинг особо не нужен.
Стоит смотреть на множество факторов, запросить резюме членов команды, запросить рекомендации прошлых заказчиков, поискать отзывы в интернете и посмотреть, не находится ли компания в списке недобросовестных поставщиков. Вопрос серьезный и к нему надо подходить комплексно. Как показывает практика, обычно люди идут сначала к знакомым. Большая часть наших проектов была реализована для клиентов, пришедших по рекомендации.
В Open Soft у нас нет других вариантов, кроме как выдвигать самые высокие требования к сотрудникам. Мы ищем кандидатов, которые обладают не только глубокими техническими знаниями и коммерческим опытом от 4 лет, но и способностью самостоятельно принимать решения и брать на себя ответственность за выполнение задач.
Важными качествами также являются умение писать автотесты и глубокое понимание требуемого стека технологий. Процесс отбора кандидатов включает несколько этапов.
Начинается он с первичного интервью с нашим HR-специалистом или моим заместителем. Это позволяет нам оценить общие качества и соответствие кандидата культуре нашей компании.
Следующим шагом является техническое интервью, которое я провожу лично. Этот этап включает в себя четыре секции: SQL, алгоритмы, архитектура и проверка софт скиллов. На первых трех этапах кандидаты выполняют задания, пишут код во время интервью, что позволяет нам оценить их практические навыки и способность к решению реальных задач.
В среднем каждый кандидат проходит два основных этапа интервью. Число кандидатов, которых мы оцениваем перед закрытием одной вакансии, варьируется в зависимости от специфики позиции, но мы стремимся к тщательному отбору.
По статистике из нашего кабинета из hh.ru мы нанимаем только 12% кандидатов. Техническое интервью успешно проходит примерно каждый
В Open Soft мы в основном фокусируемся на привлечении сеньоров и мидл-уровневых специалистов, так как они обладают необходимым уровнем знаний и опыта для работы над сложными и крупными проектами. Ведь именно на таких проектах мы и специализируемся.
Однако, мы также видим ценность в вовлечении джуниоров в некоторые проекты, особенно в качестве поддержки более опытных коллег и для выполнения менее сложных задач. Это не только способствует их профессиональному развитию, но и добавляет свежие идеи и подходы к нашей работе.
Включение джуниоров в команду также позволяет нам формировать будущее нашей компании, воспитывая следующее поколение высококвалифицированных IT-специалистов. Тем не менее, наш основной фокус остается на сеньорах и мидлах, так как они составляют основу наших команд и играют ключевую роль в успешной реализации наших проектов
Да, в Open Soft мы предлагаем определенные виды редкой IT-экспертизы, которые выделяют нас на рынке.
Одной из таких областей является контейнеризация, важная для современных масштабируемых и гибких приложений. Мы также специализируемся на автоматизации тестирования и реализации непрерывной интеграции (CI/CD), что является ключевым аспектом для обеспечения качества и эффективности разработки.
Кроме того, мы активно используем подход Test-Driven Development (TDD), который позволяет повысить качество кода и упростить процесс разработки. Этот подход особенно ценится в проектах, где требуется высокий уровень надежности и безопасности.
У нас уже реализованы проекты, где эти экспертизы были ключевыми. Например, мы успешно разработали несколько проектов, где использовалась контейнеризация для обеспечения высокой доступности и масштабируемости приложений. Также во многих наших проектах мы применяли автоматизированное тестирование и CI/CD для ускорения процесса разработки и повышения его эффективности. Эти специализированные навыки и знания позволяют нам выделяться на рынке и предлагать нашим клиентам решения, соответствующие самым современным требованиям IT-индустрии.
Наиболее распространенными являются проблемы совместимости, особенно в проектах с множественными интеграциями. Также часто встречаются ошибки в бизнес-логике, которые могут быть пропущены на этапе разработки.
Тестирование в процессе разработки часто фокусируется на отдельных модулях и функциях, в то время как финальное тестирование направлено на проверку всего продукта в целом. Финальное тестирование также включает в себя проверку производительности, безопасности и пользовательского опыта.
Правильнее будет сказать, что у нас разработка с тестированием предоставляется по средней цене разработки без тестирования на рынке.
У нас не только пишутся автотесты и настроен CI/CD на каждом проекте, но также есть отдельный отдел QA (тестировщики) которые проверяют каждую задачу перед сдачаей заказчику и каждый релиз (проводят регресс) перед его выпуском. Тем самым снимается нагрузка с заказчика — риск выявления бага на приемке сведен к нулю.
Самым сложным в плане тестирования был проект в области финтеха, где требовалась высокая степень безопасности и точности. Сложность заключалась в тестировании сложных финансовых алгоритмов и обеспечении безопасности данных. Мы преодолели эти сложности, тесно сотрудничая с клиентом и применяя методы автоматизированного и ручного тестирования.
Да, конечно. Одна из запоминающихся ситуаций была связана с проектом в сфере здравоохранения. Мы обнаружили критическую уязвимость, которая могла привести к утечке чувствительных данных. Благодаря нашим усилиям по тестированию, проблема была выявлена и устранена до запуска продукта
Я считаю, что такой подход может быть эффективным для обеспечения объективности и независимости в тестировании. Однако, это требует дополнительного времени и ресурсов для координации между разными командами, а также может привести к проблемам в коммуникации. В Open Soft мы предпочитаем интегрированный подход, где разработка и тестирование тесно связаны, что обеспечивает более эффективный и скоординированный процесс работы над проектом.
По факту мало кто может предоставить гарантию на IT-продукты. Для этого нужно быть на 100% уверенным в своей команде, а также иметь на это ресурсы. Бесплатная гарантия для заказчика порой обходится исполнителю очень дорого. По крайней мере, без глубокого погружения на ранних стадиях. Мы предоставляем гарантию только лишь благодаря серьезному тестированию на стадии разработки и технологии непрерывной интеграции (CI/CD).
Наши гарантии означают, что функции приложения будут строго соответствовать поставленным требованиям. Если вдруг обнаружится, что приложение или программа работает не так, как требовалось, мы бесплатно устраняем такие недочеты за свой счет в срочном порядке.
Ровно так, как я описал выше, только юридическим языком.
Если нас просят работать без тестирования, то мы просто такой проект не берем. Мы дорожим своей репутацией. Как говорят в IT: «Первый баг появляется с первой строчкой кода». Без тестов не написать по-настоящему рабочую и стабильную программу.
Мы даем гарантии нашему заказчику. Если мы субподрядчик, то гарантии мы даем подрядчику (нашему заказчику).
Лучше этот вопрос задать нашим заказчикам, я не имею права отвечать за них. Я лишь могу сказать, что Open Soft всегда выполняет свои обязательства и на нас можно положиться. Это могут подтвердить Ипотех, Онлайнсклад, Электрояр и многие другие наши клиенты.
Есть такое. Мы предоставляем бесплатную гарантию на разработанное нами программное обеспечение сроком на 6 месяцев.
Так мы демонстрируем нашу уверенность в качестве нашего продукта и нашу приверженность долгосрочным отношениям с клиентами. Мы стремимся предоставлять нашим клиентам не только высококачественные решения, но и дополнительную ценность и поддержку, чтобы обеспечить их успех и удовлетворенность.