DevOPS is not Dev2Ops
DevOps has now became a buzz world and almost every digital industries are claiming to have a DevOps approach. However, when refining the message, many companies identify a DevOps team and not a Devops process.
It can seems reasonable, for companies that have already non digital activities, to map the “development to production” paradigm to digital, by creating a DevOps team that have more or less the same mission than the industrialization team
However, DevOps is a full company process that promote the complete interaction of development and operation activities based on information sharing. This means that the process is not only a “dev 2 ops” transition, but a real loop connecting the two worlds.
What does it mean in detail ?
In development, the focus is most of the time on the accuracy of the functional behavior, the interaction of the components, the user experience (look&feel, interaction) and the input/output of the processes.
Specifications will define capabilities to be provided based on use cases defined and interactions with physical or digital actors. The behavior will then be refined in data entry between components and functions of the product.
System analysis will highlight the operational modes and degraded behavior when the system cannot perform with is full capacity. Of course, error processing will be defined to take into account any non nominal scenarios.
User experience will be decomposed like a movie into navigation, feedback and screen definition
In the production world, the focus is on the time, efficiency of the operation, availability and ability of the operator to quickly be trained, to use, update or repair the system.
In a physical world, production specification will mention number of tools used, number of operations, disparity of the needed spares …
In a digital world, those measures will be replaced by a number of clicks to perform an action, number of operations to connect/disconnect a system, numbers of assets needed to install the system or number of independent backup information required to restore a functional state.
In the same way, tool requirements, will be replaced by number of different softwares needed to build, install or operate the system …
Maintenance operation will substitute physical cleanup by digital cleanup (orphan files, temporary data …) and security/patch updates of the components
Performance is measured by reactivity, availability and stress of the physical system (communication, memory, CPU, …) with an important difference : in a pay per use world, the spare capability have to be considered as a waste.
Finally, measures that allow to assess the health of the system (alarms from sensors, failures, functional stability) are collected as product metrics and transferred to the appropriate human or machine processor.
As we can see, development and production approaches have complementary information on the product and will concur in a different way to the satisfaction and adoption of the customer (and on the cost of the creation/sustaining of the product)
The DevOps process also highlight the importance of addressing the different activity of transition in the life cycle of a product
- Specification
- Development
- Build
- Test
- Measure
- Feedback
You can have a look at this further tech-talk for the details of the information gathered at each step of the process, but, in summary, there is a strong benefits for the team if the company put the focus on 2 aspects :
- Automation of each activity
- Data and traceability of the information created
It is useful at this point to highlight the importance of automation as its value is not always fully embraced. Automation obvious goal is to reduce the execution time (measure of the time between the start and end of the activity) and the investment time (time spent on the activity by an operator).
However, automation benefit is also to increase the size and the quality of the data collected from each activity with a better average correlation to other activities.
This second aspect is an important leverage for the product owner to understand the internal and external rational of the cost and satisfaction of the productˋs users.
Despite many believes, the measure and importance of the satisfaction of users does not only apply to external users (customers). The internal users (dev/prod) are also indirect enablers of the customer satisfaction.
A satisfied development team will have a faster pace while adding or adapting a behavior of the product for new use case which will have a direct correlation to the time to market.
A satisfied production team will have a faster pace of deployment, problem solving or system restoration that will directly change the customer perception of the product maturity
Whereas it can be a reasonable temptation to create gates and separation between the activities, for team autonomy or security reasons, it is critical to embrace the DevOps process. Promotion of the communication of the information enables each actor in the product life cycle to understand the impact of their choices on the global product competitiveness and maturity perception which are the foundation for an healthy product.
Another highlight of the DevOps benefits on DevOps: Breaking the Development-Operations barrier