
E-Invoices in Salesforce – What are ZUGFeRD & XInvoice?
E-invoice, XRechnung (XInvoice)*, XML invoice, PDF invoices, and … ZUGFeRD? E-invoicing is currently a hot topic in Germany. ...
In this blog post, we will discuss what CI/CD (Continuous Integration and Continuous Deployment) is and how it helps us in our commitment to excellence. Moreover, we will use examples from our development process for apps for the Salesforce AppExchange.
We always strive to provide our customers with the best solutions that their business requires, thereby building trust in our company as a team of high-tech product developers.
And as an extra bonus, you’ll discover how Continuous Integration relates to the panicking feeling when you realize you’ve lost your keys 😱🔓 – and the relief you feel when you remember that you heard that *clink* … still in your friend’s garden.
First, the technical version: CI/CD stands for Continuous Integration (CI) and Continuous Deployment (CD). It is a set of practices aimed at automating and optimizing the software development and delivery process.
While CI and CD are often mentioned together, there are significant differences:
Continuous Integration focuses on integrating code changes and performing automated tests. The primary goal is to detect and resolve integration issues early. Instead of having a few big integrations of large changes (see Big Bang Integration below), CI involves continuously integrating small changes into the software. This makes it much easier to identify and fix problems that inevitably occur during software development.
A Metaphor: CI as Knowing Where You Lost Your Keys: Imagine you’re returning home after a delightful visit with a friend. As you reach your door, you realize your keys are missing. 😱😰 Panic sets in, but then you recall hearing a distinct clinking sound just after you left your friend’s place. Relief washes over you because now, instead of retracing every step from their house to yours, you know exactly where to search – right in front of their home. Similarly, by integrating smaller code changes continuously, CI helps you quickly pinpoint and resolve issues, saving time and reducing frustration.
Another way to understand what CI is about is comparing it to Big Bang Integration.
Big Bang Integration: When you work on the different parts of a complex system, such as software, individually and then try to bring them back together days, weeks, or even months later, this is also known as big bang integration. It usually doesn’t work well and leads to extreme inefficiencies.
Continuous Integration: CI tries to prevent exactly that. A function is implemented, tested, and integrated into a running system as quickly as possible. Development progress is therefore continuously integrated.
A Salesforce-Specific Example: To illustrate, consider a common scenario in Salesforce development: imagine you’ve added a new field to a page layout. During CI, this change is continuously integrated into the shared codebase. However, if you forget to retrieve this field during deployment but still include the layout, CI tools will flag this discrepancy, alerting you to the missing field. This is a simple yet powerful example of how CI ensures that small, incremental changes are correctly integrated, minimizing the risk of errors during later stages.
Despite thorough testing during CI, some errors might still occur. These errors can stem from:
For us, the most common issues stem from API changes made by third parties, though Salesforce updates can occasionally cause problems as well, although this is quite rare.
Leveraging Past Errors: To continuously improve our CI pipeline, we make a concerted effort to integrate errors that weren’t caught during initial automated testing into our future tests. We review and enhance our CI pipeline every six months to ensure it remains robust and effective.
While CI helps catch most issues early, it doesn’t guarantee a flawless product, particularly since it only covers everything up to the pre-deployment testing phase (meaning the software hasn’t yet reached the customer). This is where Continuous Deployment comes into play.
Continuous Deployment focuses on automatically deploying the code to the production environment. The principle is the same as it was for CI: instead of having one big deployment, you try to make the deployment process more continuous. The primary goal is to ensure the code is always ready to go live.
CI/CD pipelines help to understand the differences between CI and CD.
A CI/CD pipeline is an automated series of steps performed to move software from development to production. This pipeline typically includes:
CI/CD pipelines at Cloudwharf: In our CI/CD pipeline, we follow a structured approach: all development is initially done in a development sandbox. Once the code is validated here, it is moved to the stage sandbox for further validation in an environment that closely resembles production. Here, both our team and our customers can check if everything works as expected. Finally, after passing these checks, the code is deployed to the production environment. This ensures that potential issues are identified and resolved at the earliest possible stage, minimizing the risk of problems in the live environment.
CI/CD is crucial for several reasons:
Implementing CI/CD offers numerous benefits:
At Cloudwharf, we have integrated CI/CD into our development process. Here are some specific benefits we experience:
By implementing CI/CD at Cloudwharf, we have increased our efficiency, improved the quality of our products, and made our customers more satisfied. We are confident that CI/CD can also be highly beneficial for your firm to optimize project execution and improve team communication. If you’re looking to implement CI/CD at your company, our team lead, Sergey, offers this advice:
Start by integrating the most essential checks into your pipeline, even if you’ve never used CI/CD before. Gradually build upon these basics by incrementally increasing the scope and coverage of your tests over time.
E-invoice, XRechnung (XInvoice)*, XML invoice, PDF invoices, and … ZUGFeRD? E-invoicing is currently a hot topic in Germany. ...
Since the decision of the Federal Labor Court (Bundesarbeitsgericht) in Germany in late 2022, it has been clear: employers ...
In this post, we explain what the Salesforce Experience / Community Cloud is. We also provide an example of its use and highlight ...
We look forward to hearing from you and will usually reply within one business day!