Azure DevOps invites us to develop software quickly and easily, but is it possible to apply CMMI using Azure DevOps? Can we follow different frameworks? How do you combine Azure DevOps with an adaptive methodology like ... GMO? If you doubt it, you do not believe it, you are considering using it or you have already embarked on it, in this article we share our learnings institutionalizing methods and software work processes through Azure DevOps. We are going to surprise you.
Are Microsoft Azure and Azure DevOps the same?
(Or whatever they are called when you read this article)
Microsoft Azure is an ecosystem formed by a set of services or resources in the cloud, free or pay-per-use, and low shared responsibility models (IaaS, PaaS, SaaS). In Azure own services / products coexist harmoniously, extensions via Marketplace and multiple integrations with third parties that -together- allow us to adapt to any software solution that we want to conceive, build, deploy or commercialize (“put into production”).
Therefore, Azure provides a standardized environment with which you can coordinate workflows, generate and manage software assets, environments, development and production infrastructures of any project, whether they are web applications, mobile, storage, virtual machines, networks, IoT services. or algorithms. The bomb! Not?
Azure has no limits and it's easy to get started,
but it is delicate to squeeze because
To get the most out of it, you need method and expertise
Within the Azure ecosystem we have Azure DevOpsplatforms, Application Life Cycle Management (ALM) of Microsoft, with which manage all phases of the life cycle of a software product, from its conception (design), creation, implementation and maintenance (development), to its implementation (deployment) and exploitation (operation). Yes what also the assurance of product quality It would be more!
"Quality software in less time"
ALMBOK motto, Application Lifecycle Management Body of Knowledge
How to deploy a methodology with Azure DevOps?
Typically during the life cycle of a software product we will need to manage various work processes, such as the design and implementation of requirements, change management, development monitoring, testing and incidents, code management, along with its security. , integrations and deployments as frequent as possible.
Coordinating all of this development activity is critical to sustaining consistent value delivery. Therefore we use Azure Boards to establish the reference framework. Depending on the chosen framework, when generating the project we select between four process templates: Basic, Scrum, Agile and CMMI. In essence, these templates differ from each other by the type of “work itemThey contain, their format and workflow statuses.
The necessary communication and constant feedback in the teams are excellent with Azure DevOps, thanks to the communication and interaction facilities between members that it includes as standard. This, added to the management capacity that it provides for the different work groups or teams, such as development teams, IT operations, tests, etc., with individual Kanban boards for each of them within the same project, greatly facilitates the implementation of the methodologies and, therefore, the institutional use of Azure in our projects.
How to use process templates in Azure Boards?
With Basic process template we establish a simplified working model, with only one type of element ("work item") For the definition ("issue"), Another for homework ("task") And another for anomalies ("bugs,"):
With scrum process template We can reinforce the team's commitment to apply this framework.
Azure Boards Used in conjunction with the Wiki and other extensions provided by Azure DevOps, it greatly facilitates the prototyping or definition of the project and the monitoring of the various Scrum actions, such as retrospectives or the planning of each iteration (“Sprint planning”). If you practice estimating with story points, you can do so by relying on the available extensions:
With Agile process template, we have more complete metrics and it is consistent with larger development environments that include test teams. User stories are the star element. In short, managing with Azure Boards we make sure to plan from the “backlog”Of the product and keep track of work and testing. Thus, defining types of tasks and estimating times in their "work items”, We achieve incremental progress with the use of“sprints”As short iterations.
Broadcasting information to those involved is facilitated from Kanban boards, where you can see the "sprints"In progress, its breakdown by team or at the level of detail that interests you, either from a more functional point of view (with the epics) or more technical (with the tasks of the"user stories").
With the "work items”Available you can manage all the work of each member and / or teams. We can also customize the different processes, analyze the workflows and build a global visualization of the "Sprints”To easily view the content of each delivery (the«Releases”). In addition to supporting extensions, this tool also works with very powerful queries about the "work items”, Which makes it very easy for us to generate reports and graphs. We use it to develop metrics and monitor work processes and software development.
And finally, with the CMMI process template classic we focus on extreme traceability, that is why it is the one with the greatest weight and fields to fill.
Yes, you read that correctly, if you apply a very detailed methodology and with a lot focus on generate artifacts to evidence audits of your service or software product, Azure DevOps offers a good starting point.
However, CMMI is much better than artifacts, evidence, or continuous auditing. If you are interested, we encourage you to contact us, we will be happy to share our learnings with you. After all, in 2011, Panel was the first European company to simultaneously certify its software development methodology (OGMA) in ISO 15504 and CMMI Dev L3. And we haven't stopped rowing: in 2020 Panel is successfully evaluated on the CMMI v2.0 model. for Development and Services at maturity level 3.
Available in the Azure DevOps documentation is a more detail on each of these process templates.
And what about DevOps processes in Azure?
Azure DevOps allows us total code management, from its implementation, managing the code and automated tests, executing compilations in various environments (development, integration, certification, etc.) to monitoring the system in production.
And all this how? Well, with a series of tools that allow you to manage the entire life cycle of the code following the processes of Continuous Integration (CI), continuous deployment and continuous delivery (CD). These tools are Pipelines, Test Plans, Boards, Repos y Artifacts. In this other article we explain how to get going in 5 minutes: Azure DevOps, all a click away.
En particular we want to highlight the tool Azure Test Plans, with which we can manage the different software test plans. We highlight it for the importance it has in automating the tests to execute them in the pipelines, at every moment of the software's life. We also use it for functional and acceptance testing. Continuing with DevOps tests, these ensure progress in each phase of the software life cycle, mainly dealing with unit, integration, functional and performance tests.
In summary, the DevOps philosophy and Azure DevOps, living up to its name, seek efficiency from the automation of processes and routine tasks, requiring a high level of automation that the Microsoft tool facilitates a lot with its different modules. As in Agile, also in DevOps environments the continuous improvement of processes is promoted, identifying and increasing those that can be programmed, reducing programming time and increasing the productivity of developers and system administrators, with total control over the life cycle. of the applications.
In conclusion, Azure DevOps is a cloud solution that offers you a great capacity for customization, automation and integration of your workflows with any type of software development project, making collaboration and software delivery very easy, thanks also to the Microsoft Azure service environment and its integrations.
With the use of its agile tools and DevOps, we facilitate the inclusion of these frameworks in companies, managing to develop software solutions in a very competitive way, with frequent delivery and ensuring their quality. For commenting some against, the edition of the wiki is perhaps not the most Agile What are you waiting for, since you have to edit it in source language (markdown) … Everything will go!
Therefore, it is possible to apply CMMI using Azure DevOps. But you have to fix it.
Y YES, we can institutionalize various frameworks for software development. We do it and we recommend it. It is the path to productivity and customer satisfaction, thanks to the frequent delivery of expected value.