Since demands for Rapid Application Development have increased over the years, it has never been more important to release value-added applications quickly. Thanks to low code software platforms, we can decrease our time to deliver usable software. However, these applications still need mature practices like CI/CD (Continuous Integration / Continuous Delivery) to minimize the risk that each new feature introduces to the solution. CI/CD is critical to ensuring that new development does not break the existing features, thereby mitigating the risk to the business.
The Cost Of Errors In Ongoing Development
Avoiding errors in business-critical applications is extremely important. Instabilities and outages can cost companies anywhere from $100,000 to well over $300,000 per hour (Gartner), based on how critical the application is for the business and its scale. For example, if a customer on-boarding application processing hundreds of high-value clients per day becomes unusable, the cost may be on the higher side of the range. In this situation, the responsible employees will not be able to efficiently do their jobs, which can negatively affect business growth. Downtime for a capital expenditure request application, alternatively, may not cause as much disruption.
New development further compounds the risk for errors; adding new features introduces potential new failure points. For example, in most development paradigms, and especially Appian, applications share components to build features. A component can be a button layout that is used across different user interfaces, or graphs to present data to a user. When new features are added to a component, every object that uses the component must be thoroughly tested each release to ensure stability. Unfortunately, even effective testing teams make occasional mistakes. With automated testing in a CI/CD pipeline, defects can be detected much sooner, thereby reducing the risk of destabilizing the application and impacting the business.
Using CI/CD To Face Risk With Confidence
In our practice, we have made CI/CD (Continuous Integration / Continuous Delivery) and TDD (Test Driven Development) a core part of our delivery methodology. We have been able to produce stable applications with confidence quickly. Just like professional airline pilots will never embark on a flight without running through a specific and repeatable checklist, software should not be “launched” without following a similar protocol. However, running through these checklists is not as easy as performing a visual inspection, and must be carefully followed every time. Cost concerns and deadlines make it challenging to run through growing testing checklists manually, opening the possibility for human error. CI/CD solutions ensure that the mandatory checklists (automated tests) are followed every launch (takeoff). These solutions are essential for businesses that need to continually add features to their applications or upgrade their applications to the latest Appian release.
The majority of production defects can be caught by thoroughly testing an application before release. The sooner a defect is found, the less costly the fix will be. To assist with detecting defects early in the development process, Appian provides designers a set of methods (technically known as step definitions) using the behavior-driven testing framework, Cucumber. This framework allows business and technical users to write test cases in plain English. The open-source Cucumber framework has been around for over ten years and is widely used within the development community, and the testing possibilities are with this tool are comprehensive. While powerful on its own, Cucumber excels once it is integrated into a CI/CD pipeline.
Other Considerations + Closing Thoughts
Repeatable testing checklists are essential for ensuring consistent application stability and quality. Without an automated solution to run through testing steps early and often, the risk for defects and instabilities increases, so it is essential to have a plan to mitigate that risk. CI/CD software is that solution and will continue to help Appian software solutions grow.
In our next part of the series, we will cover how to set up your Cucumber test environment with Appian.