As a cross-platform mobile developer I am interested in every technology that allows me to design mobile applications: Native, Xamarin, Flutter, the list goes on! This also means I’m a fan of languages like Java, Swift or C.
However, when it comes to software design there have always been two worlds: development and operations. DevOps aims to unite these two worlds by making them work together. The goal is, of course, to deliver software faster and more securely. In this way, people, processes and technologies are linked to providing continuous value.
I wanted to share with you my Azure DevOps experience for several reasons, beginning with the fact that it allows me to combine several Microsoft technologies, development languages, and tools, thus making it a perfect candidate for adopting DevOps.
In future articles in this series, I’ll note that to compile a mobile application, some obstacles make cross-platform development somewhat complicated, and I’ll show how Azure DevOps helps overcome these complications. Finally, if you consider the large number of tools that can interface with Azure DevOps (including Visual Studio, App Center, and Azure), you can imagine the perfect cocktail to set up a DevOps environment with ease and without reducing your options.
A quick reminder about the basics of DevOps
Why do we need DevOps?
Developing software can often be a very manual process. As a result, this results in a large number of errors, both within the code and in the deployment. Often development and exploitation, as well as the associated teams, are out of sync. This in turn leads to delays in delivery and, in the context of a services company, this delay will cause disappointment among some stakeholders.
DevOps improves visibility, builds on more precise requirements and encourages better communication, all of which will accelerate the time to market.
What is the difference between DevOps and other development practices?
In the software development process, several tasks (including build, deployment, interface testing, and unit testing) are repetitive and time-consuming, and sometimes bring little end-value to the product.
In a world where acceleration to market is prized, it is increasingly important to save time by delegating certain tasks to a computer and then automating those tasks. DevOps puts its focus here to reduce the human errors that can be so time-consuming.
What is the philosophy of DevOps?
DevOps is not just a tool; it is a philosophy and an ideology.
DevOps role is to smooth communication and exchanges between two worlds: development and exploitation. It is a combination of tools, agile methods and – above all – common sense.
To achieve this, you have to break the silos and promote collaboration between teams. DevOps attempts to eliminate conflicts (inter-team and intra-team), risks (bugs and errors) and constraints (timetables and technology) to improve delivery both from a time perspective, as well as in terms of quality.
Want to know more? Read former Witekio System Architect Tangi Colin’s article on software factory infrastructure.