When discussing lean manufacturing concepts, it is impossible to avoid addressing the seven wastes that must be removed in order to increase total customer value at a lower cost and with a shorter lead time.
Defects add no value to the finished product, so why should a client pay for developers and testers to correct them? These defects are nothing more than waste that could have been avoided. Continuous testing strategies such as the ones listed below might assist to reduce defects (and hence expenses) like the ones indicated above:
Service virtualization: The QA team participates in the creation of automated tests based on service virtualization ideas from the start of the project.
Tests that are fully automated
Automated test database creation: This method collects data from production at regular intervals, masks or modifies customer sensitive data, and produces the test database.
Talent Utilization: Containers (Dockers, CoreOS) and configuration management tools (Chef, Puppet, Ansible, etc.) could be used to automate the creation of self-service environments and deployments, removing the need for software developers and testers to spend time on activities for which customers are unwilling to compensate.
The waiting time may be lowered in the following ways using DevOps:
1. The testing team uses a continuous testing strategy (Shift-Left) to automate the following and decrease the time spent waiting:
Creating a test environment
Provisioning in real time
Virtualization of services
Database automation for testing
2. Waiting time is reduced to a bare minimum when the operations team works as part of a Scrum Dev team (and hence, a DevOps team).
Over collaboration: The requirement for communication and coordination between the development and testing teams is essentially non-existent because the environment setup and deployments are automated. Additionally, because configuration management and deployments are automated, contact between operations and the Dev/QA team is reduced to a bare minimum. As a result, the cost of communication and cooperation is significantly reduced.
Resource utilization: The waste associated with the use of developers and testers in setting up environments and resolving configuration management difficulties is also reduced. The DevOps strategy guarantees that environment setup and configuration management processes are automated, allowing developers to focus on developing and testers to focus on testing, resulting in efficient use of Dev and QA resources.
Environments: Using containers like Dockers, CoreOS, and configuration management tools like Ansible, Chef, Puppet, and others, DevOps can totally automate the creation of self-service Dev and test environments. The waste associated with time and human engagement (and, hence, cost) in environment setup is fully avoided.
Deployments: Deployments in these phases with necessary artefacts, scripts, and settings need a lot of collaboration and communication between dev, testing, and operations employees as the application progresses along the value stream via testing, staging, and pre-production phases. If just the deployments through these phases were automated, it would reduce unnecessary collaboration/communication among stakeholders and allow them to focus on the work at hand in order to improve the ultimate product/solution.