BDD++ DevOps: Augmenting BDD with DevOps
Sundar Radhakrishnan
GTM/ Profitable Growth / Consulting led Tech Sales /Customer Success
My earlier blogs talked about why success in Digital is about delivering Quality@Speed. Behavior-Driven Development or BDD is an enabler for this shift. But to accelerate their digital transformation, enterprises need to augment BDD with DevOps. Fundamentally, both leverage fairly-high levels of automation and depend on teams that work together.
Gartner Glossary refers to DevOps as ‘…a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices.... DevOps emphasizes people (and culture) and seeks to improve collaboration primarily between operations and development teams.’ Dismantling silos between development and operations, DevOps builds in efficiencies, enhances configuration management, failover through automation, ultimately bringing into effect Continuous Integration/Continuous Development(CI/CD).
Why BDD & DevOps Go Together
While DevOps validates technical aspects to ensure shippable quality code; BDD ensures granular business focus and high quality for each acceptance criterion and user story.
BDD deploys Test-Driven Development to improve upstream quality by mandating unit automation. It also augments downstream quality by building end-to-end visibility of business goals. DevOps helps enterprises move beyond the ‘ticket system’ thinking and allows continuous development with continuous testing.
BDD adds the business edge to technical paradigm, when paired with DevOps. Together they signify just the right approach to drive quality at speed in Digital.
How BDD, in Conjunction with DevOps, Addresses Challenges in Digital:
- Deployment Frequency: The only way to “arrive” in Digital is to be there first. With feature-driven accelerated development and integrated tool reference architecture aligned to DevOps pipeline, enterprises can increase deployment frequency by up to 40%.
- Code Quality: Compared to traditional development methodologies, BDD, with test-driven development and automation-driven testing, builds in a better code quality. Further, instrumenting source code and then integrating it with a number of tools, provides for both static analysis and dynamic code coverage. These ensure structural defects are addressed and also measure of different aspects; run time coverage , branches and methods are already taken care of before the code comes in for testing.
- Agile Dashboard and Release Reliability: The live reporting feature in BDD helps track user stories and sprint level. When a DevOps-specific dashboard is integrated with BDD, it enables continuous feedback loops to reduce incidents, rework and increase the overall release stability.
- Continuous Testing for Quality @ Speed: According to Forrester Research, embedding Continuous Testing in DevOps is the way to drive quality at speed. Along with CI/CD, hypothesis-driven development has been called out as one of the key opportunities here.
We at Cognizant provide the breadth of full-stack automation to our clients. Our ecosystem based approach – Cognizant QA Hub? helps drive quality at speed across the lifecycle by rapidly orchestrating QA solutions, embedding automation and through a network effect created by communities of QE experts and practitioners.
Case in Point: Lifecycle Automation with Impact-Based Touch less Automation
Challenged with defects trickling down to the deployment stage, A U.S.-based home appliance retailer commissioned Cognizant to help it drive quality at speed.
Cognizant’s Quality Engineering-led BDD approach, in conjunction with DevOps, helped the client fix bugs earlier in the lifecycle. With an End to End tool architecture, Cognizant was able to automate across the lifecycle, increasing code coverage to 83% and removing 5% of dead code before it went for testing. The execution of test cases was cloud-based, which further accelerated releases by 70%. Our tightly-knit feedback loops delivered significant business value over a duration of three quarters.
The tools we leveraged here included Ant, Git, Artifactory, Sonar, Jacoco, Saucelabs and Jenkins.
Wrapping Up
There are lot of common elements between Devops and BDD. Collaboration, Communication, Common understanding, bringing teams together along with speed, automation and tools.
As the last installment in my BDD series, this blog ties together all the loose ends with a BDD- DevOps approach. Done right, BDD with DevOps could help a product/service succeed in the market since it designed keeping in mind what the customers want.
To know more about how we at Cognizant help our clients implement BDD successfully, get in touch with me.
Executive Director - Service Product Group | Product Director | Area Product Owner | Ex Deloitte USI | BOA Merrill Lynch
3 年Thank you for documenting this!????
Well written series!