The Client
Our client provides a broad range of traditional and alternative investment products and services to individuals, institutional investors, and advisors. They are one of Canada’s largest privately owned asset management firms, with their affiliate teams collectively managing over $110 billion in assets from offices across Canada, in Chicago, London, and Gurugram, India.
It operates through independent investment teams that provide scalable investment solutions. The company focuses on delivering seamless operational and distribution functions, allowing its skilled investment managers to concentrate on aligning with clients’ objectives and achieving tangible results.
They found themselves in a situation where their software development, deployment and project management processes were either lacking or different across the organization. To help them streamline processes, the client turned to Optimus and Microsoft Azure DevOps.
The Challenge
The absence of streamlined processes created several challenges throughout the organization related to their software development and deployment.
Disorganized Project Management: The client often had multiple projects underway simultaneously, which led to a lack of organization and coordination amongst the different teams. The disorganization negatively impacted collaboration, progress & project tracking, and standardization across projects.
Lack of Version Control and Traceability: Managing different versions of software and tracking changes across multiple projects was complex and highly error-prone. Ensuring that the correct code was deployed within the many different environments was difficult.
Inefficient Release Management: The existing release process was manual and mistake-ridden, often resulting in deployment and post-release issues. The absence of standardized release pipelines made it difficult to ensure consistent deployment procedures.
Time-Consuming Deployment Checks: To ensure the quality and stability of software releases required time-consuming pre-deployment and post-deployment checks, which further increased the risk of human error.
Security Concerns: Sensitive information, including passwords and API keys, needed to be securely managed and shared across different environments while maintaining high security. There were no reliable processes to handle this information.
Ineffective Code Review Process: The client did not have a structured code review process, which led to unstandardized and poor code quality and introduced the potential for bugs and vulnerabilities.
Our client needed outside support to transition to Azure DevOps and a third party to guide them through the process.
The Solution
To overcome these challenges and streamline their development and deployment processes, the client opted to implement Azure DevOps and chose Optimus as their partner. Because they were already on Azure and a heavy user of Microsoft tools, they should obviously use Azure DevOps to streamline their processes.
Why Optimus:
A Microsoft Solutions Partner, Optimus Is certified in Azure Infrastructure, Data & AI, and Digital and App Innovation (specializing in infra and database migration and enterprise application migration). When they initiated their project, Microsoft recommended Optimus for the job. Following the initial discussion, they felt confident in the expertise Optimus brought to the table and decided to move forward with their team.
Azure DevOps was a comprehensive solution that addressed their pain points by providing the following benefits:
Centralized Project Management: Azure DevOps Collections were deployed to organize projects into logical groups, allowing for efficient project management, resource grouping and allocation, and consistent collaboration amongst the different teams.
Version Control and Traceability: The client adopted semantic versioning (SemVer), which improved version control and allowed for clear communication of changes and consistent tracking of updates. This facilitated better coordination between the development, testing, and deployment teams.
Efficient Release Management: The client also implemented a release flow branching strategy and leveraged both Classic Release Pipelines and YAML-based pipelines. This gave them more flexibility and control over their release processes, resulting in standardized and automated deployment procedures.
Automated Deployment Checks: Azure DevOps’ pre-deployment and post-deployment checks allowed the client to automate validation steps, ensuring code quality, stability, and functionality across different environments.
Secret Management: The client also utilized Azure DevOps’ secret variables and integrated them with Azure Key Vault to enhance security by securely storing and managing sensitive information and reducing the risk of data exposure.
Structured Code Review Process: Finally, the Pull Request (PR) adoption provided them with a structured code review process, promoting collaboration, quality control, and better code transparency.
The Results
Today, our client has an efficient and streamlined software development process and framework.
By implementing Azure DevOps and adhering to the recommended best practices, the client successfully addressed their challenges, and the streamlined processes have led to improved project management, better version control, standardized release management, enhanced security, and efficient code review practices. Their strategic approach to the problem and utilization of Azure DevOps has significantly enhanced their software development lifecycle and deployment processes.
Contact Optimus to learn how we can help you leverage cloud services.