EOF - Open-Source Use Accelerates Software Development
Many software developers share some common traits. Besides copious caffeine and creative work schedules, developers like working on interesting, new problems. They like to be as efficient and productive in their work as possible. They never want to start from scratch either; they prefer to cut, paste, modify and extend.
The best developers today are the ones that can most effectively find, assemble and then optimize re-usable software components—whether those components are open source or were developed within their own organization. A developer's skill with Google and SourceForge is now as important as his or her knowledge of software architecture and implementation.
This new “assembly” model is fundamentally changing the way software is designed and developed. It accelerates development, improves software quality and reduces costs. In short, it's changing everything.
Software now consists of a mix of company-owned code, open-source and commercial libraries, and code provided by outsourcers. By combining external components with their proprietary technology, companies create a set of mixed intellectual property, or mixed-IP assets. Best practices for managing software licensing in this new mixed-IP environment are now emerging.
All software—whether commercial or open source—carries licensing obligations that companies must comply with. This new, mixed-IP environment adds complexity to the process by mixing together licenses of all kinds. Managing these licenses and their restrictions needs to be done correctly in order to keep companies—and individual developers—out of trouble.
Following is a set of software compliance management “best practices” that were developed through discussions I've had with companies that are best in the world at leveraging this new environment:
Re-use existing components—to lower development costs, accelerate time to market, improve quality and reduce business risk, use existing internal and external components wherever appropriate. Explicitly consider functionality, performance, reliability, maturity, risk, sensitivity and license obligations.
Track and control changes to internal components—to establish and maintain the provenance of all internal components, to identify and protect critical IP and to avoid inadvertent violations of licenses, trademarks, patents, copyrights and trade secrets. Track internal component creation and modification and control the modification of those that are sensitive.
Control re-use of sensitive or external components—to avoid last-minute surprises, guesswork, compromises and risk-taking, and to prevent the loss of intellectual property and facilitate timely and effective remediation. Review and approve the use of any external or sensitive internal components or fragments in a project.
Verify every build and release—to assure prompt discovery of materials inadvertently included in a project and unapproved or precluded modifications to components. Identify and remediate all unapproved components or fragments and changes made to any of those components. Record the metadata for all external components in the associated bill of materials.
Review compliance at project phase transitions—to prevent loss of intellectual property and to assure prompt discovery of new components inadvertently included in the project. At major development milestones, verify that no unapproved components are used in the project or were changed and then used. Review the license obligations of all external components used in the project and ensure compliance with them.
Control component contribution and disposition—to avoid license violations and the attendant disruptions and to constrain the propagation of risky software. Before contributing any component or fragment to an open-source project or transferring ownership to another party, assess the sensitivity of that material. Verify your rights to make that contribution or transfer.
Assess software components before acquisition—to prevent negative post-acquisition surprises. Before buying a software component, identify all internal and external components used in that asset. Identify all external components used in any active project and assess their license obligations with respect to compliance, business objectives and legal policies. Assess the impact of any required rework or change on cost, revenue, quality and so forth.
These best practices encourage the use of open source and re-use of software components, while assuring compliance with license obligations. They also protect an organization's intellectual property assets. In addition to adopting these best practices, many organizations are using commercially available automated solutions as platforms on which to establish and manage these processes.
Open-source software and component re-use are here to stay. Now is the time for companies to begin thinking about how they will alter their management of software IP so they can capitalize on this new development model. By doing so, they will get ahead of the issue and put the power of open source to work for their organizations.
Palle Pedersen is CTO of Black Duck Software, the leading provider of software compliance management solutions (www.blackducksoftware.com).
|Updates from LinuxCon and ContainerCon, Toronto, August 2016||Aug 23, 2016|
|NVMe over Fabrics Support Coming to the Linux 4.8 Kernel||Aug 22, 2016|
|What I Wish I’d Known When I Was an Embedded Linux Newbie||Aug 18, 2016|
|Pandas||Aug 17, 2016|
|Juniper Systems' Geode||Aug 16, 2016|
|Analyzing Data||Aug 15, 2016|
- Updates from LinuxCon and ContainerCon, Toronto, August 2016
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- What I Wish I’d Known When I Was an Embedded Linux Newbie
- NVMe over Fabrics Support Coming to the Linux 4.8 Kernel
- Tech Tip: Really Simple HTTP Server with Python
- All about printf
- A New Project for Linux at 25
- New Version of GParted
- Writing a Simple USB Driver
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide