AI TOOLS 2024.
The best approach to increase a piece of software’s functionality without altering its core is through extensions. Phil Lewis, senior vice president of cloud software giant Infor, stated to AIM in a recent interview that multi-tenancy cloud application modifications are no longer possible.
Customers may still have particular needs, he explained. In those cases, it’s critical to provide an extensible framework that enables them to develop what they require and make extensions rather than changes. “You can’t touch those data schemas or applications,” he said.
The goal is to shift the focus from “modifying code” to “extending functionality,” since it becomes very challenging to upgrade when someone has to completely rewrite the code to add a new feature or a small change.
Flexibility Matters – A Lot
A Hacker News user mentioned that enterprise software is too complex to work with and ends up confusing users. “If you look at the most successful software of all time, they are the complete antithesis of the Unix philosophy that so many designers and developers prefer,” he added.
One good example of extensible software is the Shopify App Store, which recently introduced an extensibility model that allows e-commerce businesses to add new features and functionalities to their online stores through apps available in the App Store. This enables merchants to customise their stores without modifying Shopify’s core code.
According to W3Techs, around 43.1% of all websites use WordPress, which is a great example of what can be achieved using the extension-based approach.
“You have much better control over your website with WordPress than any other platform… you can do everything with a huge number of plugins, change the PHP code of your theme, and change the look of the website with HTML, JS, and CSS,” mentioned a user, suggesting the level of flexibility that can be achieved using an extension-based platform.
While explaining why extensions are critically important in enterprise software, Lewis mentioned that if you think about an application with 1,00,000 lines of code and want to modify it, changing even 25% of those lines immediately turns it into a non-standard, modified solution.
“The alternative is to keep the 1,00,000 lines of code intact and build an extension on the side that does what you need. This extension gets compiled with the application, but you’re not modifying the core source code. You’re leaving that intact while building extensions,” he said.
“You can create multiple extensions, which can be applications, widgets for workspaces, or additions to reporting, but they remain independent extensions rather than modified code,” he added, further explaining how multiple extensions can be built to extend the functionality.
Extensibility is Good, But to What Extent?
While extensibility has multiple advantages, there’s one problem – it makes the software heavy. A good example is, again, WordPress, which works well until you add multiple extensions, as having too many plugins can significantly slow down your website, affecting its performance and user experience.
A Reddit user mentioned that once you finish the basics of Microsoft Power Platform, the complexity of managing the software increases dramatically, and unless you have enough development experience, you can not maintain it further.
The idea is to build a lightweight platform optimised enough to manage multiple plugins. For instance, VSCode is a lightweight IDE that relies heavily on extensions. Being a lightweight platform reduces the complexity of code and makes it easy for a developer to maintain the software.