Introduction to Agile Development and DevOps Practices

Unofficial Content

Agile Development is a philosophy and it is not only about increasing productivity and releasing software more frequently: it’s about working differently. Nowadays, this term has gained a lot of popularity within the Dev community due to the notable results it brings to the projects. It allows us to work more efficiently and deliver value to the customers more rapidly therefore it provides us an opportunity for gaining a competitive advantage on the market. Thanks to the new version of GXtest, implementing Agile methodologies in GeneXus projects is possible! In order to understand how, first you will need to understand a few concepts…

What is Continuous Delivery?

Continuous Delivery (CD) is a software development strategy which allows companies to deliver new functionalities to customers as fast and effectively as possible. This means, that the product is incrementally improving due to the constant feedback received by the different types of tests executed. The main goal of applying a CD approach to the software development is to decrease the risks of releasing, and deliverying to the users a high quality product.

Along with the Continuous Delivery concept, it comes the pipeline. In software, a pipeline represents a chain of processing elements arranged so that the output of each element is the input of the next. This implies that the pipeline breaks down the software delivery into several stages which verify the quality of the new features and prevent bugs from affecting users. The goal of the pipeline is that if issues are detected, feedback is generated to the development team in each stage of the process.

 

With the purpose of implementing a pipeline approach, it is imperative to automate everything you can in each stage. The stages must have the automation to run tests, provision, deploy, set up, and configure the testing and staging environment because that is the way developers are going to be able to receive feedback. Everytime code is added to the pipeline, a method of validation must be defined. As the code is passing through the stages, it is being tested and providing feedback of the status of it.

Tools such as Jenkins and Bamboo allow us to orchestrate the pipeline process and integrate the several other frameworks and tools that are being used.

We will learn more about this on the Continuous Integration in GX using Jenkins article.

Another very important concept you will need to understand is DevOps.

DevOps Practices help foster collaboration between the teams that create and test software with those that maintain them in production environments. They promote an effective communication using tools and methods, where the main idea is to include the infrastructure and monitoring people, to the development process.

Statistics show that DevOps teams work 30 times faster, fail 60 times less, and recover 160 times quicker from failures.

A culture of trust and a feeling of fellowship where sharing ideas, issues, processes, tools, and goals, are the fundamental bases of the DevOps Practices and it’s important to keep them aligned in order to have less conflicts in the team.

There are hundreds of tools you can use to enhance your DevOps team and work efficiently to deliver a high quality product rapidly to your clients.