Extensibility is a software engineering principle that allows for future growth and the ability to extend a system. So, how is software built to provide a strong core package that is cost effective, scalable, and stable while also allowing for rapid development and extensibility?
In a previous blog, I wrote about the decision to use commercial off the shelf software vs a custom solution, and how Camelot utilizes both with the power of Microsoft Dynamics 365 Business Central to bring value to our 3rd party logistics clients. But what does that really look like in practice?

Consider how extensibility can affect making feature additions or changes to software, starting with who can make development changes. A less extensible package may only allow for changes to be made by the original developer, pushed out to all end users at once during a scheduled update period. Being more extensible may allow for partners of the software company to add features or even end users on demand. Using our own software as an example, Camelot’s 3rd party logistics solution, Excalibur WMS, has opportunities that allow for anyone to participate in software changes.
Being extensible requires that a software be built from its core with this design pattern in mind. How can a software allow for such flexibility while also remaining stable and upgradeable? The answer for us was with Business Central’s extension capabilities. Extensions in Business Central allow for a developer to “add on” features to an existing page, or “inject” custom code into a standard software process, without ever touching the core code. This means Camelot can publish our core Excalibur WMS, then our team can further extend our own base product for unique requirements during implementation, and then our clients can add their own changes on top of all that if they want to get involved in development. Each extension to the software can be independently developed and updated without interfering with each other.
Extensions are a powerful way to be directly involved in a software’s core features but is not the only way that software can be extensible. A less direct approach that any modern software should also support is an API (Application Programming Interface). Whereas an extension would be additional programming inside the software package, an API would be programming in a separate software package to affect its behavior, such as a web service endpoint for submitting transactions or retrieving status updates. APIs are prevalent in nearly all software now, but to be truly extensible is to allow for rapid API publishing and customized APIs. Out of the box, Excalibur has the crowd-pleaser APIs that any partner would expect, but it also allows for publishing nearly every piece of data that a user can access. If the user can see it on the page, it can become an API. And with Business Central extensions, new custom APIs can be added by Camelot developers or even end users.
Extensibility is paramount for 3PLs when it comes to software decisions. The industry is defined by the need to adapt to as many new client requirements as quickly as possible. Every software offers some level of extensibility, but to what degree, and to what ease of use is what really sets a 3PL apart from the competition.