How to manage feature flags in ASP.NET Core apps with Azure?
No matter how simple or complex an application is, choosing the right configuration provider right at the start will mak...
In my last two articles I described the concept of DevOps and introduced Azure DevOps, a Microsoft platform designed to help maintain its best practices. In this final part, I will go over how we follow these practices and benefit from them at Predica.
This is our very own DevOps case study. Let’s see how to bring these principles to life.
Before I get into DevOps, I want to touch on our company culture. Ownership, persistence and transparency are our core values. They are what each of our Predicans, especially Project Owners, lives by.
In fact, the role of a Project Owner at Predica has two main responsibilities: to collaborate with development teams and maintain a high degree of service quality, and to remove any obstacles that stand in the way of delivery. It plays an essential part in a DevOps-driven service model.
“Predica Agile” is our in-house framework that ensures a standardized and efficient approach to managing projects. It also helps us to achieve the following:
The entire model can be illustrated in this way:
We utilize the Product Backlog and have our delivery team work in sprints. This way, they have a clear plan for what to do each week and Project Owners can easily track their progress:
Our DevOps Center of Excellence is a dedicated team responsible for managing DevOps best practices across our organization. We publish our processes, standards and best practices on a Wiki page in an Azure DevOps project. There, we gather information on the following:
The above sections contain various standardization details. For instance, in “Branch policies”, you can find the following:
Each part of our standardization has its own description related to DevOps practices.
Project Owners are responsible for both tracking progress and managing the client relationship.
Once we collect requirements, a Project Owner creates a Product Backlog. This is where we keep all requirements and features for any given solution.
Based on the backlog, they coordinate the sprint planning process, where we prioritize the features which we will deliver in the upcoming sprint.
Each project has a dashboard configured to display project statistics:
Once we develop a new feature, a Development Team member creates pull requests so that other members can review the changes and provide feedback.
Besides code reviews, Development Team also uses Azure DevOps Pipelines to automate application builds and releases. This way, our test teams always have a fresh build to work with.
Our main collaboration and communication tool used by both Project Owners and development teams is Microsoft Teams. Let’s go over a few best practices that we have adopted at Predica with respect to both DevOps and Microsoft Teams.
Azure DevOps or GitHub? Find out which one to choose
We organize our status meetings in Microsoft Teams. During each meeting, the development team shares what they have completed, what they are working on, and current obstacles. We can also display the current sprint directly from Azure DevOps for everyone to see and discuss.
We can display project stats in both Azure DevOps and Microsoft Teams. We leverage the integration with Microsoft Teams to access project health data right within the app. There are several channels with project data: we have a build channel that shows build statuses with dates, and a bugs channel that lists reported issues/defects.
As you can see, there are a lot of ways to help maintain best DevOps practices. We touched on just a few of them: team collaboration, deployment automation and version control. Our DevOps Center of Excellence promotes best practices and standards, and every member has a chance to contribute to it.
In summary, DevOps is the combination of cultural philosophies, practices, and tools. Which is exactly what we use! Our “Predica Agile” Framework, Center of Excellence and tools like MS Teams or Azure DevOps help us to improve our development process.
Hopefully, our DevOps case study has convinced you to try out this practice. And if you’re still unsure, you can check out our dedicated service!
Read similar articles