When you think of technology what comes to you mind? Personal computers, filament lightbulbs, the automobile assembly line? The past one-hundred years have been the most progressive in the history of mankind yet there is still so much to do and learn. How about open source software (I will commonly refer to this as OSS), do you think of this global phenomenon as a trend that can truly change the way companies and people think of their software applications? I do, and hopefully after reading this article you will too.
OSS is the term for any software that can be distributed with any number of BSD, GPL, LGPL, etc. licenses and the source code can be viewable as well as changed. A community of developers and users then become supporters of the software to form an open source community for any number of OSS projects/products. The inherent power of OSS is that it is changeable by its users. This is a clean break from proprietary software vendors who sell you a monolithic package with a license-to-use (LTU) purchase. While these companies are not necessarily bad or evil what they do their customers is certainly an injustice. With proprietary software you are at the mercy of the company and its closed band of developers. If you purchase an operating system that limits your ability to be productive and you cannot change said operating system to serve you it is holding up production. Here lies the power of OSS! With OSS you are able to change the software to serve your needs and not the other way around.
Whether it is an operating system, middleware, or an application development platform if it is open sourced there is transparency and collaboration. A community who rallies around ANYTHING is essentially a fan base whether be a football team or an application system and sometimes these feelings can be as strong as a religion. These large communities greatly enhance the speed of development because instead of a finite number of developers working for Big Software what we have with OSS is literally thousands of people who are available to write and check code. Acceleration is also the name of the game when it comes to getting a product out on time. Imagine if you will a concept car going from development to production and the design team only has ten people who are designing and building the car. Even though this happens often, how much longer do you think it will take this auto to get to the showroom versus having a thousand people design and build it? Exactly.
OSS is about empowerment and change. These are both powerful motivations for customers who consider their application environments as a means to an end - not the end result. Today's software architectures are very complex with many different avenues for connection, serviceability, and execution. Recently, there has been a new way to build enterprise software structures with service-oriented architecture (SOA). At the its most base form SOA is a way to allow the service executables to be shared by applications like resource pooling. If your applications can share process management or transaction firing without being written into the program it can run in an outer silo and not be tied to the application. Thus the services can be modular and reusable allowing for the applications to be lighter and the services to be shared across the enterprise.
For instance, if you have application "A" that calculates employee benefits from payroll and application "B" deducts state tax they can both use the same business process management (BPM) and rules engine that tell both applications to get employee info and social security number. This is a simple illustration but since this intelligence is not written into the application it allows the core services to do focus on primary functions while allowing BPM and rules to be used and reused by both applications.Just like in kindergarten...it's better to share.