written by Jackson Oliveira
4 minutes reading

Its portfolio covers a wide range of critical functionalities, providing comprehensive support for: Financial Derivatives: end-to-end management of complex financial instruments.
Fixed Income: control and monitoring of debt securities.
Over-the-Counter (OTC) Trading: support for direct transactions between parties that take place outside traditional exchanges.
Current Accounts and Treasury: solutions for the internal financial management of institutions.
International Market Operations: tools to optimize transactions and investments abroad.
The quality and depth of its solutions ensure that Virtual Software counts among its main clients the largest banks and brokerage firms in Brazil, consolidating its position as a leader in providing technology for the demanding and dynamic national financial market.
Because it operates with software-based solutions and serves a market that demands high reliability and agility, Virtual Software needed to optimize its development cycle and continuous delivery process. At the time, the company used Team Foundation Server (TFS), a platform that began to present significant constraints:
Limited distributed collaboration: the TFS architecture made it difficult for multiple teams to work simultaneously on the same codebase, impacting scalability.
High maintenance costs: maintaining the on-premise TFS infrastructure required time and effort from the internal team, diverting focus from the core business.
Low traceability: the use of disconnected tools made version control a manual and error-prone process, especially critical in a regulated environment such as the financial sector.
With the goal of optimizing its continuous delivery processes for technology solutions and modernizing its engineering practices, the GitHub platform proved to be ideal due to its robust ecosystem, available in an open source format and backed by strong investment in innovation. The capabilities presented by the ilegra team were decisive in the platform selection, as they made it possible not only to complete the migration within a short timeframe, but also to optimize the release process of existing applications.
Although possible and extremely cost-effective, a migration using a lift-and-shift approach would not satisfactorily address the challenges identified. During the planning phase, the need to also modernize the release process was identified. We designed and implemented a new branching strategy based on GitHub Flow, integrating modern CI/CD practices from the very beginning of the migration.

Among the main elements of the new workflow, the following stand out:
Change requests: Virtual Software clients submit requests for new features through the support platform.
Backlog creation: through API calls, the system creates issues on the GitHub platform describing the work to be done.
Implementation: for each issue, a feature branch is created—an isolated version of the application that will receive the new functionalities. These branches are short-lived, existing only during implementation and validation.
Merge request: the moment when implemented changes are submitted and integrated into the main codebase. At this stage, quality criteria such as acceptance tests and code reviews are applied.
Release generation: all implemented functionalities are grouped into the main branch and generate a repository tag. From this immutable tag, a new application version is created, along with a release notes artifact containing all changes implemented since the last generated tag.
Packaging: based on the generated tag, an automated process creates a package that is made available for customers to install the application in their own infrastructure.
With the migration completed and the new workflow in place, Virtual Software reduced release generation time by more than 200%. With an integrated and automated process, it was possible to eliminate manual steps from the previous workflow, increasing end-to-end traceability. Gustavo Cury, Managing Partner at Virtual Software, highlights his perception of the new release process:
“On the TFS platform, the process of generating new versions depended on custom tools we developed. Detailing which changes were included in each version was a manual task that required checking information across different systems and groups of people. The pipeline on the GitHub platform automated 100% of this process.”
In addition, the ease of integration between different GitHub solutions based on APIs—such as GitHub Actions, GitHub Projects, Issues, and Pull Requests—allowed the team to start operating under the new working model shortly after the first repositories were migrated.