Simply Integrating Open Source Packages

MagicAh, the tempting lure of open source packages. The El Dorado of software development, open source packages promise all of the advanced features users crave with absolutely none of the cost. The software is often even free to modify to suit any need – all we need is for that obstinate developer to simply tweak it to our application – what is their issue against using open source software anyway?

Having worked with a large variety of open source packages, operating systems, frameworks, and tools, I can certainly understand that sentiment. As one of the early aficionados of Linux “before it was cool” – I have personally both fallen for the siren call of poorly written open source packages, and also leveraged open source technology for many successful implementations. From Linux kernel hacking, to custom PHP compilers, to Java bytecode development, to many of the essential applications that help support our business, the customization and flexibility of open source software is unparalleled. Don’t like a feature? Change it. Need additional functionality? Built it. Open source software has helped revolutionize the very foundation of software development.

Our development team loves open source software – we are constantly customizing OSS applications for both ourselves and our clients. In addition to the obvious frameworks and development tools such as Node.js, PHP, Rails, jQuery, and even .NET, whose source we sniff on a regular basis, several pre-built applications such as WordPress and Magento help make our lives much easier. WordPress is the world’s most popular blogging application, and its wide breadth of plugins and ease of customization enables excellent integration for social media and blogging on our client sites. Magento, the leading open-source online store, provides a stable and effective platform for our customers’ digital business. Although both of these applications are open source, they do require a significant investment of time to learn the nuances and system architecture of the software for advanced integration and customization.

There are also several open source, fully compartmentalized tools that help simplify certain aspects of development. TinyMCE, for instance, offers a fantastic web-based text editor. jQuery UI has advanced user interface web controls such as date-time pickers and pop-up boxes. Flot.js is a great charting library. These tools usually require only minimal customization of the source, and have an architecture that makes them easy to plug-in to web systems.

What is difficult for developers to do effectively, however, is integration of new open-source packages that require significant customization. These projects may require rework of a major module – such as authentication and user management, large-scale integration of several features and functions, or database changes and new fields. Although these projects are certainly possibly, project stakeholders may perceive these integration projects to be “easy”, since the software is free. These changes often quickly rise to a cost greater than custom-developing the original software for a specific business case, and the modified software core usually becomes incompatible with the open-source package’s updates and upgrades. Complex customization of open-source packages should be a path carefully treaded – both clients and developers should be aware of the potential pitfalls and problems that might occur.

In sum, open-source software provides an excellent opportunity for many business applications. As the open-source movement continually grows in both user base and maturity, the prospects for future implementations are only improving. As the tools and frameworks for these systems approach a similar set of patterns and practices, someday, hopefully soon, all open-source software implementations will truly be “simple.”

Written by Andrew Palczewski

About the Author
Andrew Palczewski is CEO of apHarmony, a Chicago software development company. He holds a Master's degree in Computer Engineering from the University of Illinois at Urbana-Champaign and has over ten years' experience in managing development of software projects.
Google+

RSS Twitter LinkedIn Facebook Email

Leave a Reply

Your email address will not be published. Required fields are marked *