Original article: garnichaud
The latest trend in software development is the devops culture, that is, developers and operators work together to ensure that the software runs at the lowest failure rate.
Many organizations find that they are faced with the challenge of rapid release as cloud Web applications develop to respond to problems or requests from the user community in a timely manner. Responding to user requirements in a timely manner is the goal of each software development team, but it puts pressure on functional teams in the Organization. Stress often leads to more defects and interruptions to team continuity. Devops tries to solve this problem by building a relationship between development and operation (that is the origin of the devops name. In this structure, the development team supports operation requirements, such as deployment scripts, exception diagnostics, and load and performance tests from the beginning of the cycle. Before the operation team deploys the software, provide knowledge support and timely feedback to the development team during and after deployment.
Devops is the way forward for many software development teams. They have endured the pressure from the Organization to produce high-quality code in the absence of time tests by QA. Devops is a new environment. If developers want to succeed, they have to make adjustments. Compression within the deadline can be divided into development, QA, and product story walls, which have become a hindrance to agility. Devops tries to break this wall. Now, teamwork is as important as technical skills. Therefore, focus on the end user experience to see how it affects the business. Devops is not a new tool or organization, but a new culture and process. It accelerates development and solves problems by working with developers, QA, and operations.
Why do developers need devops?
Devops is a good thing for developers. There are three main reasons why developers want to work in a devops-oriented organization:
Better quality of life. Developers in the devops mode rarely receive calls to solve product problems in the middle of the night. This is because the problem has been discovered before it is disastrous, and active monitoring is much better than passive warning.
Ownership. In the traditional software process, once the software is deployed, it will be "thrown to QA" and then thrown to the product environment. Therefore, what the end user sees may be totally different from what the developer writes. However, in the devops mode, the code is published, because developers can continue to view and access the code after the code is handed over to QA or even to the product environment. In other words, developers have ownership of the entire delivery process from creation to implementation.
More related work. Like most humans, developers are more satisfied with jobs in the real world. Because developers in traditional organizations are isolated, they often create user scenarios to simulate problems. When a problem occurs, they can only try to simulate approaching the problem. In the devops mode, the scenario is true. The environment is tested by load. For example, before the software is put into the product environment, the system tests whether the software works correctly. Another example is that the test script itself can test your product environment, not just a simulated environment. Sharing the test results with developers gives developers the opportunity to view the performance of the code they have written under real conditions.
What does devops mean?
Maybe your organization has adopted the devops model. There are three problems that you can clearly understand the implementation of devops:
As a developer, can you obtain fault information in real time?
Is the development team testing and other tools used in the product environment to verify that the product environment works properly?
As a developer, do you consider the network team as your partner?
If these answers are "no", you have not actually implemented devops. Some suggestions can be made to improve the situation. Start with the tool. Devops is a culture and process that is higher than the organization, and tools can help implement best practices. In particular, sharing fault information across teams. This requires that more detection information be added to the software to view the implementation of the software in the QA and product environments, not just the development environment. These codes capture errors, check system parameters, report function timeout, return other values during program execution, and write them into the log file.
In an isolated environment, once the code is released to the product environment, developers are often unable to view these log files. In the devops world, developers can view log files in any environment, whether it is development environment, QA environment or product environment. In this way, you can not only quickly fix defects, but also avoid the same defects from being released in the future. This makes the development itself faster and more responsive to the business, and introduces agile quality to agile development.
Break old habits
Devops also requires breaking old habits. For example, the natural tendency is to use the number of software bugs as a way to measure quality. However, fixing a single bug does not mean faster creation of bug-free software. A better measure is the bug handling process. In other words, which part of the process introduced this bug? For example, is the developer's local Build Environment inconsistent with the QA environment or product environment? Or is code behavior inconsistent in different environments because something cannot be displayed in some environments?
Unless the code versions are closely synchronized across different environments and these environments are also closely synchronized, it is hard to figure out whether a problem is a logical problem, a data problem, or an environment problem, or other problems. The tool ensures its consistency. That is, the tool can automatically deploy the same code to multiple environments at a time.
Partner or condemned?
The biggest change developers need to make may be to have daily interactions with other team members. Do developers actively solve software problems (such as through routine monitoring operation logs), or wait for the problem to be reported to them? How can a problem be solved? Are the team members a partner or a condemned person?
Many of them depend on leadership. Regardless of how the management team preaching the devops vision, set an example to provide necessary training and support to reward the team contributions of developers, not just technical capabilities. Devops requires a band command. Even if your current job is not your work area, you should accept it. What should be understood to implement the devops environment is important for management; is it faster to release? Is the quality higher? Are developers more responsible for their code? These are related to the devops environment.
Neil garnichaud is the host solutions business manager of smartbear, responsible for product development and software development.
What is devops?