Open Source - The Crown Jewel of Enterprise Development
Why Open Source Matters Business today is all about adapting, pivoting and expanding quickly. Yesterday's IT processes are too unwieldy to succeed in the environment created by today's agile business requirements. Open source can reduce IT expenditures on licensing while decreasing development time. In contrast to proprietary software, open source solutions can be modified and adapted to meet the needs of a specific project.
More and more enterprises see the value of open source – estimates vary but it is safe to say that more than half of enterprises are contributing to open source software and using it within operations. However, open source is about more than just demand. For a technology to explode, you need people to use it. We are starting to see a new crop of developers who grew up using open source methodologies to develop open source components. As these developers make their way into enterprise IT departments, they are bringing their familiarity with and desire for open source with them.
IBM deeply believes that the future lies in open cloud and open source. We not only led the creation of the Apache Software Foundation in 1999, we have spent over $1B in the last five years developing and promoting open source solutions. We are seeing tremendous amounts of innovation come from open source projects. The momentum around open source is growing and the focus of many open source projects is on helping to solve the complex technology challenges that most businesses face today, such as how to work with big data and how to build the best cloud applications. Open source comprises a valuable set of tools and processes, helping IT respond more quickly to business challenges by giving staff a head start on coding.
Making Open Source Work for the Enterprise
In order to best leverage this head start, enterprises need to go about open source the right way. An enterprise requires more than just access to open source software components in order to field a successful open source development program. Components must be properly vetted, not just to make sure that they are well-written and do what they claim to do, but also to make sure that they are secure. A successful open source development program requires, finding quality open source components and feeding them to a development staff that can work with them. It is not just about the tools but also about the process. It starts by building an awareness of the value of open source and how to work with it. On top of that awareness add community tools, developer tools and a process that encompasses the enterprise development shop and the community as a whole. The development process is changing and a new model is taking shape. Enterprise developers do not just search for open source components, download them, and integrate them into current projects. Enterprise developers are becoming more active and directly engaging in the community process, by providing not only feedback, but also patches and blueprints for features and functions that they need. One fascinating aspect of community involvement is that many times enterprises share the community with their customers, competitors and partners. IBM fields services, such as DeveloperWorks Open, that protect developer interests while raising the standards for open source components.
Let us face it, there is a lot of garbage out there in the open source world. Businesses cannot afford to play with trash, they need assurances that the components they are downloading and using to build critical business processes are secure and bug free. They need to know that their developers are not spinning their wheels cleaning up someone else's bad code. They need reusable components that they actually want to use.
This is where the strength and vitality of the community become important. Strong communities flourish with the right guidance and create better software. Large established companies must put their strength behind building vibrant open source communities by contributing services, processes, and code.
A thriving community provides an avenue for open source collaboration and stimulates new development efforts focused on new technologies. This presents customers, partners and industry participants with the opportunity to not only download open source components, but ultimately to participate in the process of developing it. Successful open source projects are more than just code and include rich content, code samples, videos, developer stories, blogs, wikis, and more. Enterprises can drive this effort, as they successfully engage in open source development and become part of the community-driven culture of open source.
“Open source software has the potential to be extremely secure because the source code is available to a large global community of developers, who are constantly finding bugs and other vulnerabilities in the code and fixing them”
Security, Documentation, Culture – Turning Challenges Into Opportunities in Open Source
Security is a growing concern of open source developers, especially as open source components are making it into missioncritical and security-sensitive environments around the world. Open source software has the potential to be extremely secure because the source code is available to a large global community of developers, who are constantly finding bugs and other vulnerabilities in the code and fixing them.
Along those lines, there is also a proliferation of code patches, both for improved security and features/functionality. Enterprises need to know that they are working with the most current version of an open source component, which can be patched quickly and easily as part of a larger patch management program. Security policy should outline the best practices for implementing new components, while maintaining the integrity of the open source infrastructure. Code review goes a long way to assure security. Regular audits need to occur to verify that the most secure versions of components are being used.
Clear documentation is an essential part of any enterprise open source initiative. Reusable code must be well documented and cleanly written. Enterprises need to establish and enforce coding standards in order to get the most out of open source without duplicating effort and wasting time.
Last but not least, the biggest change that may be required in an organization is one of mindset. Tap into developers' creativity to turn them into contributors. Developers do not want to mechanically code to a tight specification, they want to solve problems creatively. Then they want to show off their creativity to the rest of the community. A creative developer is a happy developer. Get the most out of your open source initiative, by giving your developers the right tools and an atmosphere of creativity and problem-solving and see what they can do.
Enterprise adoption of open source software can only succeed with the right attitudes, solutions, policies, and procedures in place. Developers need a place to try things out and experiment in order to drive creativity, while management needs to know that code is secure and functional. Open source success is not just about the code, it is also about the people. The key to open source success in the enterprise is to empower your developers to build their own community and to give them the right tools to flourish.