Today's software applications are increasingly complex, containing a mix of proprietary, third party and open source components. Smart developers are no longer coding from scratch but are grabbing snippets here and there and incorporating them into their code base, freeing up those developers to work on core software development.
The practice of code reuse, allows developers to produce software more quickly, thereby feeding the demands of today’s consumers. However, there is a lot to consider when modifying code that wasn’t originally yours. For instance, are you complying with the guidelines imparted by the code’s license? Could you be infringing on intellectual property rights? The importance of regularly auditing the open source code you use is paramount to avoiding legal snafus and a slew of wasted resources.
It is important to understanding both the benefits of code reuse and the repercussions of failing to follow the established guidelines.
The Benefits of Code Reuse
Accelerated time to market: You can reduce the time to market for your new software or app greatly when you integrate code reuse into your software development process. Code reuse enables developers to work with specific aspects of code created for another program but applicable to a current project. Developers save time by avoiding the common redundancies that can accompany developing code, and can focus on their core software development.
Keeping up with demand: The size of the nation’s embedded code base is increasing at approximately three times the rate of the number of embedded software developers being hired. This growth indicates that, in order to keep up with the ever-increasing demands of code, code reuse will become an increasingly viable option, allowing, as it does, for much quicker production of software.
The Drawbacks of Code Reuse
Continual audit process: When working on any software code, you must abide by certain licenses and obligations. To ensure that you don’t find yourself in a legal bind, you must audit the code regularly. Manual audits take time, slowing down your software’s time to market; they’re also prone to inaccuracies and expensive. Automated solutions speed up the process, giving a range of reporting capabilities and can be integrated and different stages of the software development process.
Lack of flexibility: The practice of code reuse is great for implementing commonly used assets into your own code. By reusing code, the developer is working with specific sections of code originally designed for another piece of software. This proves to be useful by helping developers reduce redundancies within their coding, thus saving them time. However, these same lines of code used for a variety of projects don’t lend themselves to be flexible. Developers may find it difficult to expand upon or customize this code. With this in mind, developers should consider implementing code reuse for more basic elements of their code such as the framework, design patterns and components.
The only way for organizations to satisfy the increasing demand for the volume and complexity of todays software is to share and reuse code within and across application domains. To ensure success, it is critical that the code is properly audited and abides by all the obligations associated with the licenses and known open source security vulnerabilities that make up the software portfolio.
Today, the decision to use open source versus developing proprietary software, has not only been widely accepted among developers and businesses alike but it has become instrumental in the continuity of successful software production. There are increased pressures on developers and it is hard to survive in today’s software development world without the use of open source.
Companies that continue to develop proprietary software will be looking at higher expenses, software vendor lock-in, and reduced ability to adapt code quickly for security reasons. Eventually, failure to adopt an open source strategy in your organization could negatively affect your business.
Software utilizing open source encourages innovation as developers are able to focus on core business development, resulting in a faster time to market. No software has been developed to date with perfectly secure code—whether open or proprietary—so chances are that the software you are using has some risks. However, reports indicate that open source software projects have fewer defects, on average, than proprietary ones. This is the result of having a large group of capable developers collaborate on the code, rather than relying on a lone developer through the original vendor.
Another downfall of proprietary software are the fees associated with it. When using proprietary software, the user pays for the initial license, and then an ongoing licensing fee. These costs add up over time, as opposed to open source where you pay the initial fee but have no ongoing costs.
Product changes through proprietary software are also much more difficult to accomplish. To make a modification to the software, the change must first be approved by the original vendor. If the change doesn’t add value, in the vendor’s mind, then it will not be approved and you are now stuck with the original, less-than-optimal software that was provided to you.
Open source software is everywhere. With widespread use of open source software present in almost every technology segment and all organizations, the sensitivity to code ownership and the need for compliance with open source software licenses has increased. Businesses that use open source save themselves money and headaches as they have an enhanced awareness of inherent security vulnerabilities associated with any software. Businesses need to harness the power of open source while managing the obligations and vulnerabilities that come with its adoption.
For Stephen Hawking, speaking is a process. It requires elaborate software that enables the professor to input text, send commands to apps on his computer, and verbally communicate using voice synthesis. Assistive Context-Aware Toolkit (ACAT) is the software that enables all this. It was originally invented by Intel as proprietary software to specifically improve upon how Hawking interacted with his computer. Recently, Intel released the software to the open source community. This amazing piece of software is now available under a free software license to be downloaded, tinkered with and re-distributed by developers across the globe.
The software is specifically geared toward users who have disabilities. With Hawking, for example, it analyzes the movement in his cheek muscles, and from there sends a command to the computer to interpret the words he wants to use. The goal of open sourcing the software is to enable developers to improve upon it by leveraging what has taken Intel years to develop.
With open source software, collaborations such as these can lead to future innovations. Developers have the basis to create new and innovative applications without having to reinvent the wheel, leveraging open source software to create new assistive technologies. However, it is important to keep in mind that open source software comes with a myriad of stringent rules. A licensing policy—to be established by Intel—will dictate the terms and conditions by which contributors must abide. Not adhering to the established rules can result in a legal battle, so developers must make sure they are in compliance when accessing open source software.
We have disccused before the critical role that open source plays in facilitating developers to create assistive technologies that directly improve the day-to-day lives of members of the special needs community or individuals who have physical disabilities.
To learn more about how to better manage your compliance and protect the integrity of open-sourced software, click here.
Open source development has had a significant impact on many industries as it's very nature breeds more collaborative and innovative software. Once software is “open” (vs. proprietary), it becomes accessible to contributions from developers worldwide. One of the benefits of open source is an influx of innovative ideas – mainly due to the increased number of developers contributing to a project.
Nowhere is this need for innovation more critical than in the healthcare industry, where there currently exists a lag between today’s technological advances and optimal patient care.
Open source software development has facilitated the production of a variety of apps and software aimed at improving patient care, as well as more comprehensive patient data aggregation and research. The major benefit of utilizing software and apps produced in an open-sourced format is that hundreds or thousands of developers can contribute to them. With so many minds collaborating on one project, there is a much greater potential for innovative enhancements and features.
In an effort to further expand the ever growing desire for open sourced software, IBM released a new platform, “DeveloperWorks Open”, that enables developers to work on open sourced apps in a community-oriented format. With this new platform, developers are able to provide the healthcare industry with software and mobile apps developed in the cloud. One example of these apps is "Physio": a mobile application that bridges the gap between the physician and the patient. Features of the app will help improve the level of care the patient is receiving while reducing the time the physician has to spend with the patient.
With open-source software now becoming increasingly available, innovations in healthcare are expected to continue for years to come with more and more eHealth organizations turning to open source software to accelerate development and reduce costs. This adoption needs to be managed with a solution that gives developers a clear understanding of the open source and other third party components within their code. This management will allow for innovations likely resulting in intuitive technologies that will further streamline patient data aggregations and research efforts.
More questions about open source adoption in the Healthcare industry? Read our recent whitepaper, Healthcare Driven by Open Source.
Open source code has paved the way for a bright and innovative future for video game development. Developers are no longer limited by their imaginations alone, as open source makes it possible for any individual to contribute to video game code creation, helping shape and bring the games to life.
Our previous blog post, which looked at the evolution of “MVP Baseball 2005,” is a prime example of how open source code is making waves in the gaming industry. However, while “MVP Baseball 2005” licenses and code were free to the public due to an expired contract, this isn’t the case for every game.
Video games are at the forefront of the entertainment market, with 155 million Americans playing them, according to a study done by the Entertainment Software Association. Video games must constantly evolve to meet consumers’ demands for bigger and better gaming experiences. There are a lot of moving parts involved when creating a game: the creative portion, the technology used to create the game, and the business model used to distribute it. Each separate facet of game creation poses a challenge to those who wish to utilize open source code to develop the game further. Licenses and trademarks are put in place to ensure that changes to the game adhere to the original copyright. It is essential to eliminate any uncertainty around compliance and this can be done by scanning to automatically detect open source and other third party components within the portfolio.
To protect the developers’ work, stringent laws have been established to preserve their intellectual property (IP). An IP policy addresses the tools used to create video games as well as the content used within the game. A copyright creates a safeguard around the creative and artistic aspects of the game code. If a developer wants to make a new game based from a pre-existing code, he or she must first obtain the appropriate licenses from the original copyright holder. For example, say a developer wanted to create a video game for the newest James Bond movie “Spectre”, the game developer would first have to obtain the rights to do so from the rights holders of the original movie.
Once a developer decides to facilitate the development of a video game using open source, they should be aware of the risks associated with failure to adhere to the guidelines set in place by the open source license. For instance, all changes made to the game must be passed through the facilitator for approval because, while open source code allows for freedom and innovation in the gaming world, it isn’t a free-for-all. Every aspect of the game is tied back to the original IP policy and copyright, so not following those guidelines could be costly.
When developing any product it is essential to have a clear idea of exactly what is in the software portfolio. Game developers also recognise that there are many IP issues to be aware of when creating new gaming packages. Eliminating issues around open source vulnerability, security vulnerability and compliance is critical and can be done by scanning to automatically detect open source and other third party components within the portfolio.
In 2005, a licensing deal between Major League Baseball (MLB) and Take-Two Interactive, a rival developer of EA Sports, permanently disenfranchised EA Sports from leveraging MLB related assets in its products. EA Sports’ “MVP Baseball 2005” became the last official title in the company’s 2K video game series. The game received glowing reviews at the time of its release. However, it was off the market for good, since Take-Two Interactive had the gaming rights from the MLB. Yet, “MVP Baseball 2015” for the PC lived on, and has remained one of the top baseball video games, even with no involvement from EA Sports.
How is it possible that the video game EA Sports created lived on after the company lost the deal? The answer is, open source coding.
In short, open source coding enables a group of contributors to write changes to pre-existing code. These changes, or branches, are sent to the host or maintainer for review. In the unique case of “MVP Baseball 2005,” the community’s joint efforts are managed on a forum created by the dedicated contributors who choose to devote their time to updating all aspects of the game through open source code. Because EA Sports lost its license, the game is now malleable, as the code became open to the public for continued development.
This community of contributors divides responsibilities from a long list of intricate and complicated tasks. Some coders handle uniform design, some update roster changes, while others work on re-creating the ballpark layouts. Additional tasks include updating player faces and statistics, switching out the voices of announcers and, for some developers, creating new leagues entirely.
For instance, open source coders were able to create additions, such as “MVP Caribe,” to the original game. It offered a complete digital version of the real-life, Caribbean series; a tournament that features champions of the Cuban, Dominican, Mexican, Puerto Rican and Venezuelan leagues. Converting this famous baseball tournament into a popular function within “MVP Baseball 2005” was a massive undertaking rewarded by consumer appreciation.
The contributors who make this game possible include historians, developers and baseball enthusiasts—most of whom have never met but are still able to collaborate and contribute to the game from around the world. The open source environment makes it possible for anyone to work from anywhere, making changes to the code at whim (as long as the branches are approved by the maintainer first).
The utilization of open source coding has made it possible for “MVP Baseball 2005” to become, and remain, the best baseball video game on the market. Its continuation is a true testament to the creativity and dedication of the open source contributors.
What does this mean for future games? That can’t be answered, but “MVP Baseball 2005” certainly points toward a more interactive and engaging future for video games.
How is open source used in the large enterprise environment? A recent study from WIPRO and Oxford Economics titled “The Open Source Era” provided insights into that question. The report revealed that 21 percent of enterprises use open source software and 25 percent have deployed it in a business unit. However, 54 percent are in the planning phase of open source adoption.
These results point to the fact that, while open source is on the rise and has many benefits to offer, it still has barriers to overcome in the enterprise environment before it achieves full-scale adoption.
Resistance to Change: Many enterprises are firmly embedded in maintaining the status quo and also don’t move quickly to adopt new systems or processes. This is highlighted by the fact that, while 61 percent of survey respondents think open source will give them a competitive advantage and 75 percent find that the greatest barrier to open source adoption is the complexity of integration with existing systems. Even though open source has great benefits to offer enterprises, they have extensive, complex and expensive proprietary systems already in place. In many cases, it will require a complete shift on the part of an enterprise to make integrating open source software into the business model a reality. Particularly when it comes time to renew licensing fees, upgrade, or scale, the open source model may become more attractive because it represents such cost savings.
Even so, integration is likely to remain a problem for enterprises for some time moving forward. Open source communities vary, and some open options integrate with on-premise systems better than others. However, as more big-name companies and developers turn to the open source model for innovating and producing new software, these concerns will likely decrease.
Open Source Perceptions: Companies at the enterprise level may perceive that the low cost of open source software means it is not as reliable or that it won’t perform as well. Also, most enterprises have large IT structures and strict corporate standards that may not mesh with the community-based nature and accessibility of open source code. It’s up to enterprises to make open source standards part of their corporate cultures and use them to create a more agile, responsive and innovative IT environment. The open source model proves that technology doesn’t have to be expensive to work well.
Security Concerns: The fact that open source code is available for anyone to access and modify may raise security concerns for enterprises. Rather than trusting that their software and systems are locked down, they may fear that the nature of open source will increase their risk of a security breach. However, because open source is able to be modified in order to suit the needs of a particular business, it can also be flexible and easily changed to respond to the latest threats.
With the increased use of open source software within Enterprises, automated management becomes critical. Learn how Protecode can help enterprises manage open source effectively to address and avoid some of the above concerns.
Recently, Lockheed Martin open sourced its in-house cyber threat detection tool. The platform, called Laika BOSS, will soon be accessible to the open source community at large. This advanced malware detection tool has shown such powerful performance at Lockheed that the defense company knew it had the potential to benefit many other businesses. After successfully rolling it out to external customers, the company decided to make it openly available to the security community as an effective weapon against cybercrime.
As cyber threats increase exponentially, putting nearly every company at risk, this open source tool will give developers and businesses that focus on security a resource which they can leverage to improve overall security. Every company is at risk for a security breach, and this open source tool provided by Lockheed will enable developers and security professionals alike to add another effective resource to their arsenal. Strengthening their cybersecurity measures, as well as allowing them to modify the tool to fit the individual needs of their businesses.
Laika BOSS, unlike other malware detection programs, can look at all the different elements of a piece of data in order to break it down and search for malware infection. For example, the tool can assess the text of an email, its attachments, and the different parts of the attachments themselves, analyzing each at the atomic level rather than as a big block of data. This makes it more difficult for cybercriminals to hide malicious software and makes it more likely that malware will be discovered before it harms the network.
Lockheed’s move points to the power of open source, particularly when it comes to big overreaching issues such as cybersecurity. Rather than Lockheed keeping their tool as internal proprietary software and requiring others to license or purchase it, they recognized the potential their innovation holds for the greater good. This represents a huge step for both the open source and cybersecurity communities.
At the recent Open Daylight Summit, Margaret Chiosi, the Distinguished Network Architect said, “We don’t need money. We need participants. We need people to work on use cases and bust things out.” In other words, the open source community is at a point where it needs involvement more than dollars.
Open source increasingly depends on end-users who will create code, contribute documentation, and innovate to make open source projects relevant and useful. In order for open source to continue its upwards trajectory, fully engaged end-users that together create a vibrant and active community are necessary.
Open source adoption is expected to continue to expand, with many high-profile companies either making their source code available and accessible to others or making the move to using open source software in their projects. However, this growth and wider acceptance has also put the open source community at somewhat of a crossroads. It’s all well and good for developers, executives and network architects to embrace open source however, the energy of the open source standard depends on end-users to propel its success by making real contributions.
Open source is in need of more than money to guarantee its continued use and growth. Open source depends on changes in company culture, acceptance across a wide range of users and integration with the ways people work and use software to continue growing. This means the community needs to focus on attaining end-users who will continue to put their own mark on the software they use by modifying the code, writing new functionality and providing documentation that allows other users to get on board and understand how it works.
The next frontier of innovation for open source code isn’t about spending more money, but about dedicating more time and energy at the community level. End-users must move beyond passive use of product and grow their own skills, capabilities and interests to become active members of a thriving and innovative open source community.
Open source software is creating a strong presence in nearly every industry and market imaginable, from healthcare to telecommunications to government—and now, the sciences. Open source is being leveraged in scientific fields to improve procedures, data analysis and collaboration for researchers and scientists.
The sciences, like open source, thrives on innovation and the exploration of new ways to manipulate matter or raw data. Recently, we have seen instances in the science world where open source software is making waves. Below are just a handful of ways in which the sciences are benefitting from open source:
Meteorology Open source technology is making it possible for students and instructors in weather forecasting to more effectively share and process data. Using open source allows data to be shared and visualized by everyone in the meteorology community, enabling the entire community to use one tool to visualize data and track the weather, rather than being tied to numerous proprietary systems.
Sea Navigation OpenCPN, an open source tool that does plot charting and navigation for both pleasure and commercial seagoing vessels, allows sailors to more effectively and accurately navigate without having to rely on proprietary tools. This allows experienced sailors on vessels of all sizes, shapes, and types to access high-level charting and navigation data and collaborate and share information across vessels, improving safety and accuracy on the seas.
Night Sky Exploration It used to be that scientists, both amateur and professional, had to go without realistic views of the nighttime sky if they didn’t live near an observatory. Now, the open source Stellarium software allows students and scientists to view a realistic night sky in 3D on a computer, similar to what they’d see through a telescope. The open source tool creates a realistic planetarium experience on a smartphone or tablet as well.
US Air Force Lab An open source project provides a platform that allows local and remote users to share data and participate virtually on research projects. OpenSim is virtual reality software used to create a “virtual” lab space for scientists and engineers to collaborate in.