“DevOps, the Intersection equals Collaborative Automation of Development, Quality Assurance and Operations.“
To a large extent, DevOps culture has got industry recognition. The agility achieved using Agile methodologies in Development and Testing; felt the need to optimize the Operations to match the same level of speed and agility; hence the birth of DevOps. Many organizations are still trying their hard to imbibe Lean Agile & DevOps culture and practices. Though, only a few organization have achieved DevOps maturity; while there are many who are still far from achieving agility through complete automation of software delivery pipeline.
“The continuous development, continuous integration, continuous testing, continuous delivery and continuous monitoring can be achieved with the help of combined Agile and DevOps practices.”
While the DevOps can be considered as the extension to Agile Development, which takes the Agile concepts and practices to beyond Development and Testing to Continuous Releases and Deployment, Environment Provisioning, Continuous Monitoring, Health Analytics, and Faults Remediation’s. Through the automation and proactive collaborative efforts among Development, Testing, Systems and Operations team; the operational part can become agiler to match with the developmental parts speed and agility. The automated continuous testing plays a very pivotal role in order to maintain the desired levels of quality and conformance to standards.
Continuous Agile Testing
To achieve Continuous Agile Testing requires cross functional collaboration and test automation. All the functions; whether development, testing or operations would need to work collaboratively to maximize the automation of whole value-stream delivering software products. Agile Testing is the one area where complete automation is still far from reality as it mostly depends on manual efforts; especially pre and post production deployment. There are many avenues to testing and test automation throughout the delivery pipeline; but most often only the unit tests are automated using xUnit; but complete automation to functional, integration, user acceptance, performance, load/stress testing are a bit tricky and often ignored.
DevOps stress upon maximizing the automation to match the speed and agility. So the Automated Testing need to be integral to development, should be considered from software design/architecture point itself. The importance of testers; increasingly being recognized as Test Architects to write automated testing.
Quality Assurance practice needs the same level of attention as that of Development and Operations. Hence, the future of DevTestOps needs to flourish giving emphasis to following points –
Equal importance to Development, Quality Assurance and Operational Support; balancing end-to-end software delivery pipeline
Take the Test-First and Test-Last concept to Continuous Testing – similar to Continuous Integration and Continuous Delivery
Encourage the Lean Delivery Framework, working on efficient quality delivery through end-to-end automation
Software product delivery by cross-functional integrated team using innovative tools with improved collaborations and communications
Achieve overall cost reduction by automation, reducing manual errors and testing efforts duplications
With fail-first, fail-fast and fail-often philosophy – early defects identification and remediation; the improved product quality has become reality
It would be argued that DevOps is a holistic approach encompassing the Development and Quality Assurance and Operations; that represents the different departments/sub-departments of an enterprise. By DevOps, ‘Ops’ is not only considered as ‘Operations Supports’ but also the integration of Systems, Infrastructures, Information Security, Operations, Marketing and other support functions. Though, this aspect is not quite apparent and explicit from ‘DevOps’ and understood as implicit to ‘Ops’ in general. Similarly, ‘Dev’ implicit to Development and Quality Assurance. Individually all functions are equally important in a product life and for the uninterrupted business continuity. Even post production deployment functions; like continuous monitoring and product optimization based on customer feedbacks do not weigh less. As Continuous Monitoring not only provide production data and metrics to Operations, QA and Development about the applications at different stages of the delivery cycle but also enables to react by enhancing or changing delivered product features or prepare future business plans to deliver them. And, with Continuous Customer Feedbacks and Product Optimization, DevOps allow business to be proactive in aligning plans, development to adjust delivery capabilities and operations to enhance the environment; thereby become agile and responsive to customer needs.
The importance of software testing and quality assurance does not malign with just naming DevOps; rather it encompass every aspect from end to end in software delivery cycle; covering every activities, practices, processes, tools and technologies etc. that are necessarily performed or followed from product idea generation to further product optimization and enhancements based on end-user feedbacks and changing business requirements.
As the DevOps is basically the extended collaboration among the Development, Quality Assurance and Operations team for achieving the holistic agility and desired speed across the software delivery pipeline; all these three components are equally important. Strongly, it makes sense to call it as DevTestOps. This gives raise to anti-agility patterns and proclamation towards Dev???Ops instead of just DevOps. It really does not matters, as long as the intended purpose behind DevOps is achieved so as organizations and software industry benefits from it.