Continuous Release, Continuous Deployment & Why Your Shipping Software Can’t Live Without It
Hear from ProShip’s Manager of R&D on why Continuous Release is essential for today’s top brands
With over 80% of organizations expecting to trump the competition with a better Customer Experience (CX), software providers cannot afford to delay for several days, months, or even a year to release new software features into the hands of their customers.
The demands of online shoppers are constantly changing, and a brand’s Enterprise Software Stack (ESS) should be operating at its very best every day to keep pace with the technology required to adapt to these changes. This puts software developers under tremendous pressure and the frequency of software deployment at a necessary premium. The most important part of this whole process is aligning the available technology and strategy with the customer’s needs. To bring these needs to life, shipping software providers are leveraging a combination of delivery approaches with different technology to produce a flexible and automated software solution.
What is Continuous Release (CR)?
One of the trademarks of any top software solution is that it provides updates to their customers in a timely and automated manner. Elite shipping software providers employ a Continuous Release (CR) process, a method where the software is released on a continuous basis within short cycles. If you aren’t familiar with the technical nature of this, it means that smaller software updates are provided on a weekly or daily timeframe instead of in one big release every few months. With the demand high for digital innovations, it is vital to streamline the pipeline of these releases to facilitate not only software fluidity but allow for on-demand releases, unbound by a release schedule to get new technology to the customer.
Benefits of Continuous Release (CR)
There are numerous benefits to utilizing a CR process. The most obvious is that critical fixes are within the customer’s hands within days, or potentially even hours. Shippers do not need to wait for a major release date to get an urgent patch. Because the releases are typically smaller overall, they are also more stable, meaning shippers know precisely what each release will include. In addition, since releases are not comprised of many months’ worth of changes, the risk of a change inadvertently affecting current behavior is significantly smaller (Hint: Especially when you have automated regression testing, which ProShip does on a regular basis)! On the off chance there is an issue, it is a lot easier to troubleshoot because you generally only have to look back at the last several versions to know what has changed.
CR also enables better coordination between internal Development and Quality Assurance (QA) teams to shorten the in-progress timeline. Because each team is working on their projects individually, there is a lower chance of impeding the other’s progress and no need for an all-hands-on-deck situation to get an update released.
The Bottom Line: you can have multiple tasks in flight, enabling you to deliver more value more quickly.
Continuous Integration/Continuous Deployment (CI/CD)
The backbone of a successful CR software update process includes Continuous Integration (CI) and Continuous Deployment (CD), which help software owners to ensure quality within their releases. CI is continuously integrating (surprising, right?) and automating new changes into the existing main codebase. Practically speaking, this is done with a version control system that supports this and then tested with smaller conclusive changes. This is also where unit testing, a priority with elite shipping software providers, comes into play. Unit tests are automated code tests that developers write to verify their assumptions about the changes they are making within the existing code. All of this serves to provide a quality and stable code which is easier to integrate into the main branch. In addition, errors or risks are minimized and delays in delivery are avoided.
CD is deploying the changes that have been made in the CI process into release environments. The deployment step is where the code has a release created, and is sent to a QA environment for testing. This process is known as the CI/CD pipeline – it builds the code, runs the unit tests, creates a release, and deploys that release. All of this ensures a predictable process for delivering safely compiled code, lowering costs and improving the quality of the product overall. If this pipeline is automated (like ProShip’s), the process is much faster and leaves little space for human error. The CI/CD process (and CR for that matter) is cyclical; we are consistently and constantly churning through new changes and releases.
Let's Talk Carrier Changes
A good number of these releases are carrier changes (new rates, surcharges, etc.). A high-quality shipping software solution will analyze these changes and schedule out the implementation based on the level of effort required, typically within a couple weeks. One thing to note are any carrier compliance changes. These often include a long list of changes and at least a rough expectation from the carrier when those changes will become effective. [While compliance changes tend to take longer than other fixes, ProShip still follows the CI/CD cycle to ensure an end product of stable code. Other controls are in place, like carrier certification testing, that fill in the gaps.]
How ProShip uses Continuous Release
ProShip’s Research and Development team utilizes a number of technologies to provide transparency to customers as far as upcoming changes through Continuous Release. The PLEAS (ProShip Live Email Automation System) is the foremost means for customers to find out about our latest releases. [Reach out to your CSS today to be set up to receive those emails.]
ProShip also offers an online-based product reference guide, Procyclopedia, that allows customers to find answers to technical questions, obtain implementation instructions and more. Customers can also see upcoming rate changes from shipping carriers as well as other releases. For any compliance releases that are critical for customers, ProShip sends out advance notices directly to affected customers explaining all the details: what changes were made, why, and the component version.
ProShip has a resume of supporting customers when critical issues arise, and the numbers offer written proof. Critical fixes have hotfix releases out within 48 hours and urgent issues are fixed within the 24-36 hour range. Non-critical fixes have production releases out within a couple of weeks, depending on priority and complexity.
And that’s not all, ProShip’s 2021 numbers show the breadth and
strength of the Research and Development team, with 441 production releases including 11 new engines/components.
With so many releases, it may be assumed that downtime is required. However, nearly 99% of all ProShip releases (engines, core components, etc.) do not require any downtime. Certainly, no engine releases require downtime – a problem for so many software providers in our market segment.
Learn more: How Shipping Downtime during Peak Season is a Disaster waiting to Happen
In the age of the digital rapid release, the perfect software release does not exist. The factors that matter most to customers are usability, quick turnaround, and efficiency of the new release. Qualities that determine who can prevail are speed, innovation, and a team who knows what they are doing. If your shipping software partner has those, as well as a premier core product that can be adapt as the needs of your business change, then you are on your way to delivering a positive CX for all of your shipments.
Author Bio
Dan Scott is the Manager of Research & Development at ProShip, where he guides and facilitates the day-to-day activities of the ProShip development team to help deliver value to ProShip’s customer base. He has been with ProShip for several years primarily as a software developer before attaining his current position. He currently resides in Wisconsin.