Relationship between DevOps and Agile Development
Both DevOps and Agile (development) are terms that we frequently hear in the information system area. However, there are not many situations such as DevOps and Agile do not work well because they do not confuse the meaning or understand exactly.
DevOps is a combination of “Development” and “Operations” and represents the operations team and developments team, while agile is a development method that repeats development, release, and improvement with a short development period of ‘iteration (repetition)’. DevOps is an effort to build a cooperative relationship between these teams, to increase the business value of the product and enhance the user’s convenience.
According to a survey ‘Accelerating Velocity and Customer Value with Agile and DevOps’ in 2017 by CA Technologies, companies that have adopted Agile or DevOps throughout the enterprise are only one-third of all companies. On the other hand, 74% of companies that responded that they added DevOps to Agile’s implementation reported that employee retention and colonization improved, 57% of users using only agile for this It was. It has also been reported that companies that combine both Agile and DevOps have improved employee productivity by 45% compared to using Agile only.
In addition, companies that added DevOps to the agile work environment said that customer satisfaction was further improved by 29%. Also, 78% of users who combine Agile and DevOps have said they have improved their customer experience, but only Agile users are 58%.
Background against Agile Development
As an approach to breakthrough and prompt system construction required by users, ‘agile development method’ was born to repeat periodically and realize flexible system development, and users who use the system and developers urged the awareness reform of the side.
Operational Problems that Could Not Be Changed in Agile Development
However, in this consciousness reform (agile development), the viewpoint of operating the system was missing. Operation staff remained focused on stable operation and resulted in a difference in the release cycle speed of both parties.
After that, with the spread of cloud technology, this system will accelerate further, such as increasing the number of systems that users introduce mainly SaaS (Software as a Service) and not having the operation department involved. It can be said that the system is not responding to the user’s desire to rapidly develop new business.
DevOps Change, System Operation Automation
The idea of DevOps has become important from this background. DevOps aims to increase the agility of the whole work by mutual cooperation between developers and operation managers. For the operation side, as it has been put in the development flow so far, it is difficult to cope with the conventional process and it is also difficult to guarantee the quality.
Conversion from Waterfall type Development to Agile
Waterfall type development is a development method that has been used for a long time, but it has become unsuitable for rapid software change development in recent years. Of course, depending on the project, waterfall may be suitable even now. However, in order to carry out each step in order and proceed with the premise that there is no backtracking to the previous process, it is not unusual for a large manual reversion to be forced when a specification change or a bug occurs.
Therefore, agile method was proposed, and development method which can respond to change was created. Specifically, it is ‘Extreme Programming (XP)’. In Agile development, we will gradually build software by dividing software functions and repeating development and testing loop quickly. For this reason, rework due to specification changes and bugs is suppressed to be less.
Source code management by Git
In Agile development, modifications are made frequently to software. Therefore, source code control (SCM) is mandatory. Unmanaged source code will immediately conflict and cause bugs. Currently, the most popular SCM will be ‘Git’. A similar tool has ‘Subversion’, but as you can see it contrasts with Git’s popularity. While Subversion is getting less popular, Git’s popularity is still rising with the momentum of breakdown. One of the reasons for its popularity is that it is lightweight and it is easy to divide branches, but there is another big reason.
Points to Note on Maximizing ROI by utilizing Agile and DevOps
When applying agile or DevOps to an engineering project to obtain merit, it is necessary to pay particular attention to the things happening around. Simply put, applying Agile or DevOps to the unlikely event will not work.